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
        });
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top