Frage

Ich kann erfolgreich tun:

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

Um einen Punkt, der in dem Google-Format (in Metern), aber wenn ich will das Gegenteil tun:

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

zu einem Punkt, der in 4326 (regular lat / lon-Format) ist, habe ich ein paar Probleme habe.

Ein negativer Wert scheint NaN (keine Zahl) zu werden, wenn ich die Transformation zu tun. Gibt es etwas, über die Transformation in umgekehrter Richtung, dass ich nicht verstehe?

Edit: Noch schlimmer ist, wenn ich keine negativen Werte haben, scheinen die Koordinaten ab. Ich erhalte die Koordinaten durch ein Quadrat auf dem Bildschirm zeichnen, dann diese Koordinaten in einer Datenbank speichern und zu einem späteren Zeitpunkt geladen werden. Ich kann einen Platz in der Nähe der Spitze Afrikas (positive Koordinaten) zeichnen, und dann, wenn sie es in der Nähe der Spitze von Afrika, im Atlantik lädt. Ich bin auf jeden Fall etwas falsch machen ....

Edit: Hier ist mein Code: http://pastie.org/911524

Im Einzelnen: Das ist, wie ich meine Karte initialisieren:

 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
        });
War es hilfreich?

Lösung

Ach, ich es herausgefunden:

An einem Punkt in meinem Code ich verwirrte Breiten- und Längen es alles wurde, durcheinander.

Andere Tipps

Wenn Sie wirklich wollen alle die Koordinatentransformation Macht nutzen, sollten Sie verbessern mit Openlayers proj4js http://proj4js.org/ eine vollständige Transformation Framework koordinieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top