Używam OpenLayers 3 do interakcji z niektórymi mapami. Najpierw deklaruję swoją mapę:
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
})
});
Mam zdarzenie, które wyzwala akcję, aby zmienić centrum widoku mojej mapy. W ten sposób (moje współrzędne są w EPSG:4326
formacie):
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
}));
}
Po uruchomieniu funkcji otrzymuję to w konsoli eksploratora:
Lat: 9.0412851667 Long: -79.5658145000
Ale mapy idą do tego [0,0]
, czy ktoś wie, dlaczego tak się dzieje?
źródło
Uncaught TypeError: Failed to execute 'putImageData' on 'CanvasRenderingContext2D': float parameter 3 is non-finite. ol.js:457 2Uncaught RangeError: Invalid array length
. Myślę, że dzieje się tak, ponieważ moje współrzędne są za długie. Jeśli to zmienię,[131.044922, -25.363882]
to działa dobrze. Czy moje współrzędne są za długie?Mam nowe konto wymiany stosów i nie mam wystarczająco wysokiej reputacji, aby skomentować błąd „Uncaught TypeError: Nie można wykonać polecenia„ putImageData ”na kanwie„ CanvasRenderingContext2D ”: parametr float 3 jest nieskończony.” błąd. Dzieje się tak, ponieważ masz wejście łacińskie i długie do tyłu.
Powinien być:
na wypadek, gdyby ktokolwiek miał ten problem.
źródło
Do użytku tylko w przeglądarce:
Do użytku z aplikacją js
źródło