J'utilise OpenLayers 3 pour interagir avec certaines cartes. Je déclare d'abord ma carte:
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
})
});
J'ai un événement qui déclenche une action, pour changer le centre de vue de ma carte. De cette façon, (mes coordonnées sont au EPSG:4326
format):
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
}));
}
Lorsque la fonction s'exécute, je l'obtiens sur la console de l'explorateur:
Lat: 9.0412851667 Long: -79.5658145000
Mais les cartes vont à [0,0]
, est-ce que quelqu'un sait pourquoi cela se produit?
Uncaught TypeError: Failed to execute 'putImageData' on 'CanvasRenderingContext2D': float parameter 3 is non-finite. ol.js:457 2Uncaught RangeError: Invalid array length
. Et je pense que c'est parce que mes coordonnées sont trop longues. Si je le change car[131.044922, -25.363882]
ça marche bien. Mes coordonnées sont-elles trop longues ??J'ai un nouveau compte d'échange de pile et je n'ai pas une réputation suffisamment élevée pour commenter le "Uncaught TypeError: échec de l'exécution de" putImageData "sur" CanvasRenderingContext2D ": le paramètre flottant 3 n'est pas fini." Erreur. Cela se produit car vous avez les entrées lat et long en arrière.
devrait être:
au cas où quelqu'un d'autre aurait ce problème.
la source
Pour une utilisation uniquement par navigateur:
Pour une utilisation js-app
la source