矢量源在source.getFeatures()中返回空

时间:2015-09-14 09:45:23

标签: 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=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

1 个答案:

答案 0 :(得分:8)

您已经达成了解决方案,因此请注册解决方案。

当您传递url参数时,ol.source.Vector被异步(AJAX)加载,因此您必须等到它完全加载:

vectorSource.on('change', function(evt){
    var source=evt.target;
    if(source.getState() === 'ready'){
        console.info(vectorSource.getFeatures());
    }
});