2017-06-28 66 views
0

我寫下面的代碼從GeoJSON的獲得特點:獲取功能陣列中的OpenLayers 3

this.map.getLayers().forEach(element => { 
    if (element.get('title') === 'water') {   
     var features = element.getSource().getFeatures(); 
     console.log("Length :: "+features.length); // Getting 0 
    } 
}); 

我不能夠得到的特徵陣列。 我也試過如下: var feates = new ol.format.GeoJSON().readFeatures(element.get('source'), { featureProjection: 'EPSG:3857' }); console.log(feates.length); // Getting 0

+0

您應該顯示將geojson加載到地圖圖層的代碼。格式對於你的geojson是否正確? geojson規範https://tools.ietf.org/html/rfc7946顯示問題的jsfiddle示例通常可以快速解決問題。 – GoinOff

回答

0

我使用加載GeoJSON的下面的代碼到圖層:

this.waterways_vecLayer = new ol.layer.Vector({ 
    title: 'water', 
    visible: false, 
    source: new ol.source.Vector({ 
    projection: 'EPSG:3857', 
    url: this.geojsonPath +'water.geojson', 
    format: new ol.format.GeoJSON(), 
    }),  
    style: [lineStyle] 
}); 

,然後當我寫下面的代碼,爲什麼會出現0的功能?:

this.map.getLayers().forEach(element => { 
if (element.get('title') === 'water') {   
    var features = element.getSource().getFeatures(); 
    console.log("Length :: "+features.length); // Getting 0 
}}); 
+0

請指導! – user6730740