我的应用中有矢量图层如下:
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
答案 0 :(得分:8)
您已经达成了解决方案,因此请注册解决方案。
当您传递url
参数时,ol.source.Vector
被异步(AJAX)加载,因此您必须等到它完全加载:
vectorSource.on('change', function(evt){
var source=evt.target;
if(source.getState() === 'ready'){
console.info(vectorSource.getFeatures());
}
});