2014-07-18 82 views
0

我想重新加載一個GeoExt.data.FeatureStore更改url。這是我的代碼:GeoExt重新加載FeatureStore更改url

var vecLayer = new OpenLayers.Layer.Vector("vector", { 
      protocol: new OpenLayers.Protocol.HTTP({ 
       url: '/url', 
       format: new OpenLayers.Format.GeoJSON() 
      }), 
      strategies: [new OpenLayers.Strategy.Fixed()] 
     }); 

var store = Ext.create('GeoExt.data.FeatureStore', { 
     layer: vecLayer, 
     fields: [ 
      {name: 'name', type: 'string'}, 
      {name: 'elevation', type: 'float'} 
     ], 
     autoLoad: true 
    }); 

mycombo.addListener('change', function() { 
      vecLayer.protocol.url = "/url2"; 
      vecLayer.refresh(); 
     }); 

我可以看到reqeust在Firebug的控制檯製造,但URL爲「/ URL」不「/ URL2」如我所料。 與

store.proxy.url = "url2"; 

而且tryied因爲FeatureStore從Ext.data.Store,但沒有運氣繼承。

回答

0

我懂了!我必須更換協議:

mycombo.addListener('change', function() { 
     var proto = new OpenLayers.Protocol.HTTP({ 
      url: new_url, 
      format: new OpenLayers.Format.GeoJSON() 
     }); 
     vecLayer.protocol = proto; 
     vecLayer.refresh(); 
}); 
相關問題