Question

Je peux le faire avec succès:

point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));

Pour un point qui est au format Google (en mètres), mais quand je veux faire l'inverse:

point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));

à un point qui est en 4326 (le format régulier latitude / longitude), j'ai quelques questions.

Toute valeur négative semble devenir NaN (pas un nombre) quand je fais la transformation. Y at-il quelque chose au sujet de la transformation en sens inverse que je ne comprends pas?

Edit: Pire encore, quand je n'ai pas des valeurs négatives, les coordonnées semblent hors tension. Je reçois les coordonnées en dessinant un carré sur l'écran, puis d'enregistrer les coordonnées à une base de données et de les charger plus tard. Je peux dessiner un carré à proximité de la pointe de l'Afrique (coordonnées positives), puis lors de son chargement, il est près du sommet de l'Afrique, de l'océan Atlantique. Je fais vraiment quelque chose de mal ....

Edit: Voici mon code: http://pastie.org/911524

Plus précisément: voilà comment j'initialiser mon carte:

 var navControl = new OpenLayers.Control.Navigation();
                 map = new OpenLayers.Map('map', {

                // restrictedExtent: bounds.clone(),


                 }); 
       //actually draws the map 
        layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
        displayOutsideMaxExtent: false,
        wrapDateLine: true
        //numZoomLevels: 10
        });
Était-ce utile?

La solution

Ah, j'ai tout compris:

À un moment donné dans mon code je confondais la latitude et la longitude il a été tout chambouler.

Autres conseils

Si vous voulez vraiment utiliser toute la puissance de transformation de coordonnées, vous devez améliorer OpenLayers avec proj4js http://proj4js.org/ un cadre de transformation de coordonnées complète.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top