Domanda

posso fare con successo:

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

Per un punto che è nel formato di Google (in metri), ma quando voglio fare il contrario:

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

ad un punto che si trova in 4326 (formato regolare lat / lon), Sto avendo alcuni problemi.

L'eventuale residuo negativo sembra diventare NaN (non un numero) quando faccio la trasformazione. C'è qualcosa circa la trasformazione in senso inverso che non capisco?

Modifica: Ancora peggio, quando non ho valori negativi, le coordinate sembrano fuori. Io sono sempre le coordinate disegnando un quadrato sullo schermo, salvando quelle coordinate a un database e di caricarli in seguito. Posso disegnare un quadrato vicino alla punta dell'Africa (coordinate positivi), e poi, quando si carica è vicino alla parte superiore di Africa, nell'Oceano Atlantico. Sono sicuramente facendo qualcosa di sbagliato ....

Edit: Ecco il mio codice: http://pastie.org/911524

In particolare: questo è come mi inizializzare la mia mappa:

 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
        });
È stato utile?

Soluzione

Ah, ho capito:

A un certo punto nel mio codice ho confuso latitudine e longitudine si è in disordine tutto.

Altri suggerimenti

Se davvero si vuole utilizzare tutte le coordinate potere di trasformazione, si dovrebbe migliorare OpenLayers con proj4js http://proj4js.org/ una coordinata intero quadro trasformazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top