OSM,的OpenLayers和谷歌,地图总是被设置为经度/纬度(0,0)

问题描述:

我试图适应使用谷歌地图在我的一个项目OSM,的OpenLayers和谷歌,地图总是被设置为经度/纬度(0,0)

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

我建立以下OSM /例如的OpenLayers下页这是非常简单的:

http://185.8.104.235/testOSM/testOSM.html 

的问题是,在地图总是被设置为经度/纬度(0,0),在页面加载时,当我想放大到不同的坐标。
IOW,view.setZoom(5)可以工作,而view.setCenter([47,3])不会...

任何建议?
在此先感谢。

+0

请在问题中提供(有问题的代码的简化但可执行版本),而不是在服务器上。事实上,一旦你取下你的测试服务器,这个问题对于未来的读者就没用了。 – 2014-11-02 01:44:33

您正在设置以度为单位的中心(因为您可能认为坐标位于EPSG:4326中),而OpenLayers 3中的默认坐标使用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')); 
+0

感谢您的回复。实际上,我只需要根据你的建议来改变我的脚本的第二行(view.setCenter([47,3])),使得一切都正常运行,就像你在链接上看到的一样。 – donalduck 2014-11-04 16:14:06