マップイベントを使用して、ユーザーがマップの座標を確認します。次に、この新しいマップ座標をクッキーに渡して、次にユーザーがマップにアクセスするときに座標を記憶するようにします。Openlayers3変更イベントのマップ座標を取得
正しい緯度と経度の投影を取得する際に問題が発生しています。私はソースに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.
を新しい座標私はこれを行う必要がありますか? 'EPSG:4326'、 'EPSG:3857')。map.getView()。setCenter(ol.proj.transform(to3867([Cookies.get(_myLonCoord、lon)、Cookies.get(_myLatCoord、lat)]) ;)? –
@NicolasT番号 'map.getView().setCenter(to3867([Cookies.get(_myLonCoord、lon)、Cookies.get(_myLatCoord、lat)]))' –
ありがとう@JonatasWalker。 !! ありがとうございました! –