我正在尝试使用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是否存在任何不兼容问题?
答案 0 :(得分:1)
问题是我的GeoJSON(EPSG:4326)和地图(OpenLayers3默认,EPSG:3857)中的数据投影不匹配。
为了解决这个问题,我将用于构建GeoJSON的数据投影改为EPSG:3857。由于数据存储在postGis数据库中,我使用函数ST_Transform来更改包含对象的geom列的投影。