OpenLayers Proiezioni
-
25-09-2019 - |
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
});
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.