[英]Openlayers3 get map coordinates on change event
當用戶與地圖進行交互時,我使用地圖事件來檢查地圖的坐標。 然后,我將此新地圖坐標傳遞給Cookie,以便下次用戶訪問地圖時記住該坐標。
我在檢索正確的緯度和經度投影時遇到問題。 我正在使用mapbox作為源。
這是初始坐標:
[55.378051, -3.43597299999999] = UK
然后,我使用地圖更改事件來獲取地圖中心的坐標。
map.getView().on('change:center', function) {
var coord = ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326');
var lon = coord[1];
var lat = coord[0];
Cookies.set(_myLonCoord, lon);
Cookies.set(_myLatCoord, lat);
});
如果我將地圖移到德國,這就是我得到的坐標:[8.686417,50.057008999999994]這似乎是完全正確的。
然后,我再次加載頁面,地圖視圖在南非的海岸外。 這里有一些投影問題。
我一直在控制台上出現錯誤,並且嘗試過多次更改投影變換。
ol.js:249 Uncaught TypeError: Failed to execute 'putImageData' on 'CanvasRenderingContext2D': The provided double value is non-finite.
確保將這個cookie坐標轉換回EPSG:3857
,並確保您正在處理numbers
而不是string
,請參閱parseFloat()
:
// a helper function
function to3857(coord) {
return ol.proj.transform(
[parseFloat(coord[0]), parseFloat(coord[1])],
'EPSG:4326', 'EPSG:3857'
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.