2013-02-14 26 views
1

我正在使用openLayers並創建一個OSM基礎層。默認情況下,圖層使用EPSG:900913,座標以米爲單位。我想用在度座標與EPSG:4326,所以我用來初始化層:使用OSM和EPSG:4326與openlayers增加近90度的緯度。爲什麼?

base_layer.addOptions({ sphericalMercator: true, 
    projection: new OpenLayers.Projection('EPSG:4326')}, true); 

現在地圖使用度,但有一個問題:隨着緯度37.296和經度-5.929(http://www.openstreetmap.org/?lat=37.296&lon=-5.929&zoom=12&layers=Q#和相同的座標點在Google地圖中)在我看來(移動地圖並在螢火蟲中執行map.getCenter())。 -49.75,lon。 -5.929。

爲什麼?如何使用與openstreetmap.org中相同度座標的OSM圖層以及nominatim.openstreetmap.org所返回的?

回答

2

當你正在顯示的圖塊實際上在EPSG:3857中呈現時,你不能只聲稱圖層爲EPSG:4326。這是無意義的。

我不太清楚你在這裏要做的是誠實的,但它可能有助於將displayProjection設置爲EPSG:4326,這將導致OpenLayers在向用戶傳遞/從用戶傳遞值時使用度。

如果要讀取或設置代碼中的地圖位置,則需要通過調用transform方法的位置值來重新投影從getCenter獲得的值或者給予setCenter

+0

我明白了。我認爲,如果我宣佈EPSG:4226 openLayers將轉換座標,而不是由我自己做。任何時候我都不需要使用set/getCenter來明確地轉換每個座標。 – francadaval 2013-02-15 10:58:17

相關問題