2014-11-01 30 views
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

回答

0

您正在設置以度爲單位的中心(因爲您可能認爲座標位於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

相關問題