OSM,OpenLayers和Google地图始终设置为lon / lat(0,0)

时间:2014-11-01 08:04:47

标签: google-maps openlayers openstreetmap

我正在尝试调整以下OSM / OpenLayers示例,该示例将Google地图用于我的项目

http://openlayers.org/en/v3.0.0/examples/google-map.html

我构建了以下页面,非常简单:

http://185.8.104.235/testOSM/testOSM.html

问题是当我加载页面时,地图总是设置为lon / lat(0,0),当我想缩放到不同的坐标时。
IOW,view.setZoom(5)工作,而view.setCenter([47,3])不...

有什么建议吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您正在以度为单位设置中心(因为您可能认为坐标在EPSG中:4326)而OpenLayers 3中的defaut坐标使用EPSG:3857又称球形墨卡托。

您必须从EPSG:4326转换为EPSG:3857

在您的代码中,

var center = ol.proj.transform(view.getCenter(), 'EPSG:3857', 'EPSG:4326');

应该是

var center = ol.proj.transform(view.getCenter(), 'EPSG:4326', 'EPSG:3857');

view.setCenter([47, 3]);

应该是

view.setCenter(ol.proj.transform([47, 3], 'EPSG:4326', 'EPSG:3857'));