OpenLayers Proyecciones
-
25-09-2019 - |
Pregunta
éxito que puedo hacer:
point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
Para un punto que está en el formato de Google (en metros), pero cuando quiero hacer lo contrario:
point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
a un punto que se encuentra en 4326 (formato regular de latitud / longitud), estoy teniendo algunos problemas.
Cualquier valor negativo parece ser NaN (no un número) cuando lo haga la transformación. ¿Hay algo acerca de la transformación a la inversa que no entiendo?
Edit: Lo que es peor, cuando no tengo valores negativos, las coordenadas parecen fuera. Estoy recibiendo las coordenadas dibujando un cuadrado en la pantalla, a continuación, guardar las coordenadas a una base de datos y cargarlos más tarde. Puedo dibujar un cuadrado cerca de la punta de África (coordenadas positivas) y, a continuación, cuando se carga está cerca de la parte superior de África, en el Océano Atlántico. Definitivamente estoy haciendo algo mal ....
Edit: Aquí está mi código: http://pastie.org/911524
En concreto: así es como me inicializar mi mapa:
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
});
Solución
Ah, lo he descubierto:
En un momento en mi código que confunde latitud y longitud que estaba jugando todo.
Otros consejos
Si realmente desea utilizar todo el poder de transformación de coordenadas, debe mejorar openlayers con proj4js http://proj4js.org/ una coordenada de estructura totalmente transformación.