Openlayers 3 向量源在source.getFeatures()中返回空
我的应用程序中有向量层,如下所示:Openlayers 3 向量源在source.getFeatures()中返回空,openlayers-3,Openlayers 3,我的应用程序中有向量层,如下所示: var vectorSource = new ol.source.Vector({ format: new ol.format.GeoJSON(), crossOrigin:"Anonymous", url: 'http://localhost:8080/geoserver/wfs?service=WFS&' + 'version=1.0.0&request=GetFeature&typename=genes
var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
crossOrigin:"Anonymous",
url: 'http://localhost:8080/geoserver/wfs?service=WFS&' +
'version=1.0.0&request=GetFeature&typename=genesis:Building_WGS&' +
'outputFormat=application/json&srsname=EPSG:4326'
});
var vector1 = new ol.layer.Vector({
source: vectorSource,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'rgba(0, 0, 255, 1.0)',
width: 2
})
})
});
当我运行图层时,我可以在地图上看到它。但问题是,当我使用警报消息检查我看到的功能信息为空时。我得了这样的感冒:
alert(vectorSource.getFeatures());
有人能告诉我我做错了什么吗?任何帮助都是宝贵的
AJ您已经找到了一个解决方案,因此需要注册该解决方案 当您传递
url
param时,它是异步(AJAX)加载的,因此您必须等待它完全加载:
vectorSource.on('change', function(evt){
var source=evt.target;
if(source.getState() === 'ready'){
console.info(vectorSource.getFeatures());
}
});
您确定wfs请求返回的数据正确吗?是的,我可以在地图上看到图层。看起来他们的处境也很好。你能告诉我这里出了什么问题吗?哦,对不起,我不完全明白问题出在哪里。vectorSource.getFeatures()返回空数组是否有问题?是的,这就是问题所在。因为我需要在鼠标单击或类似操作时访问该功能。您何时发出警报(vectorSource.getFeatures())?如果你在地图上看到你的数据,getFeatures几乎不可能返回空的。正如我在上面的评论中提到的,我已经达到了你在这里提到的解决方案。你能帮我解决这个问题吗