openlayers 4 从 ol.layer.Vector 获取特征



我是OpenLayers的新手,所以我在这里有点迷茫。我正在尝试从 kml 矢量图层获取所有要素,但一直无法做到。我只是不明白我做错了什么。

这是我的代码:

var vector2 = new ol.layer.Vector({
    source: new ol.source.Vector({
        url: './energeticos.kml',
        format: new ol.format.KML()
    })
});
var features = vector2.getSource().getFeatures();
alert(features.length); //this alerts '0', but there's more than 50 features!!
for (var i in features) {
    var feature = features[i];
    var featureName = feature.get('name');
    $("#containerLeft").append('<li>' + featureName + '</li>');
}

KML 图层已正确显示在地图上,正如代码中提到的,当我使用 getFeatures 函数时,它不会得到任何内容。

任何帮助将不胜感激。

附言我会试着睡一觉,所以我会在几个小时后回来。

我刚刚在这里找到了一个解决方案:

getFeatures(( 为空

我不得不添加一个事件侦听器,因为 KML 文件的加载将以异步方式进行,正如该答案中所解释的那样。

您可以在

控制台上单独键入vector2.getSource().getFeatures()。似乎渲染 KML 是异步的。

最新更新