OpenLayers 3을 사용하여 일부 맵과 상호 작용하고 있습니다. 먼저 내지도를 선언합니다.
map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
지도의 뷰 센터를 변경하기 위해 액션을 트리거하는 이벤트가 있습니다. 이 방법으로 (내 좌표는 EPSG:4326
형식입니다) :
function CenterMap(lat, long) {
console.log("Lat: " + lat + " Long: " + long);
map.setView(new ol.View({
center: ol.proj.transform([lat, long], 'EPSG:3857', 'EPSG:4326'),
zoom: 5
}));
}
함수가 실행될 때 탐색기 콘솔에서 이것을 얻습니다.
Lat: 9.0412851667 Long: -79.5658145000
그러나지도는로 이동합니다 [0,0]
. 왜 이런 일이 발생하는지 아는 사람이 있습니까?
Uncaught TypeError: Failed to execute 'putImageData' on 'CanvasRenderingContext2D': float parameter 3 is non-finite. ol.js:457 2Uncaught RangeError: Invalid array length
합니다. 좌표가 너무 길기 때문입니다. 변경하면[131.044922, -25.363882]
정상적으로 작동합니다. 좌표가 너무 길어요?