OpenLayers v3.5.0地图,使用bbox策略加载GeoJSON中的功能

时间:2015-06-09 14:30:54

标签: angularjs openlayers-3

我正在尝试使用this question中描述的方法,但我没有使用jQuery来执行ajax请求,而是使用angularJS $ http方法。我已经验证了,并且这些功能正被加载到图层的源中,但没有显示任何内容。

以下是来源的定义:

var vectorSource = new ol.source.Vector({
  loader: function(extent, resolution){   
     $http.get(url).success(function(data){

     var formatGeo = new ol.format.GeoJSON();

     var features = formatGeo.readFeatures(data,
       {featureProjection: 'EPSG:4326'});

    vectorSource.addFeatures(features);
    console.log(vectorSource.getFeatures().length);
  })},
    strategy: ol.loadingstrategy.bbox
});

使用angularJS和openlayers是否存在任何不兼容问题?

1 个答案:

答案 0 :(得分:1)

问题是我的GeoJSON(EPSG:4326)和地图(OpenLayers3默认,EPSG:3857)中的数据投影不匹配。

为了解决这个问题,我将用于构建GeoJSON的数据投影改为EPSG:3857。由于数据存储在postGis数据库中,我使用函数ST_Transform来更改包含对象的geom列的投影。