2016-03-02 54 views
1

我需要訪問矢量圖層的屬性,因爲它包含的信息我將在邏輯上在我的OL3實現中使用。OpenLayers 3無需向地圖添加圖層即可獲取矢量特徵/屬性

我能做到這一點,如下所示:

//Adding local layer 
var layer_to_return = new ol.layer.Vector({ 
     source: new ol.source.Vector({ 
     url: "/positional_data/Flight_Test_Position_Data_GEOJSON_point.geojson", 
      format: new ol.format.GeoJSON(), 
      style:Custom_Style, 
      visible:false 
    }) 
}); 

map.addLayer(layer_to_return); 

注意,我已經設置可見:假的。看來,我需要的層,以便與下面的訪問屬性添加到地圖:

​​

如果我不包括map.addLayer(layer_to_return)聲明那麼上面沒有按」不工作,它只是不運行整個變化事件。

如果我將change事件處理程序帶走,則time變量返回空白,可能是因爲該層尚未加載。

有沒有辦法在不將圖層添加到地圖的情況下訪問圖層屬性?

回答

2

只是發出post-get請求來獲取您的json文件,然後使用ol.format.GeoJSON類來解析功能。類似的東西應該可以做你的工作。

$.ajax('/positional_data/Flight_Test_Position_Data_GEOJSON_point.geojson', { 
     type: 'GET'    
    }).done(function (geojson) { 
//HERE IS YOUR KEY CLASS 
var features = new ol.format.GeoJSON().readFeatures(geojson); 
//NOW YOU CAN ITERATE THROUGH YOUR FEATURES AND GET ATTR 
//LIKE 
for (var i=0;i<features.length;i++){ 
var attr = features[i].get('attr'); 
} 
}).fail(function (jqXHR, textStatus) { 
alert('geojson fail to load'); 
});) 
+0

完美謝謝 –

+0

很高興幫助ragazzi – pavlos

相關問題