Pregunta

Quiero conjunto "EPSG: 4326" como la proyección de un mapa OpenLayers, pero cuando lo intento, siempre me dan "EPSG: 900913".

function init() {

    var options = {
            projection: new OpenLayers.Projection("EPSG:4326")  // ignored
    };

    map = new OpenLayers.Map('map', options);

    var layer = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
    map.addLayer(layer);

    ...

    alert(map.getProjection());  // returns "EPSG:900913"

    ...

}

El mapa base es abierta plano de la ciudad.

¿Cómo puedo configurar la proyección de EPSG: 4326

¿Fue útil?

Solución

Es Osmarender que tiene una proyección 900913, nada que hacer al respecto hardcoded. Pero ha considerado tomar las cosas al revés? La transformación de las coordenadas o capa a EPSG: 900913? Consulte la documentación aquí: http://docs.openlayers.org/library/spherical_mercator.html

Otros consejos

milovanderlinden ha señalado, hay que transformar los valores / latitud longitud (tal como se utiliza en los mapas de Google o Bing), antes de que el se puede aplicar en capas de OpenStreetMap likeOsmarenderorMapnik:

var datapoint = new OpenLayers.LonLat(-71.0, 42.0);
var proj_1 = new OpenLayers.Projection("EPSG:4326");
var proj_2 = new OpenLayers.Projection("EPSG:900913");
datapoint.transform(proj_1, proj_2);

¿Qué es la capa de base. ¿Estás tratando de dibujar en GMaps o Bing Maps? Si es así, OpenLayers pueden estar tratando de obtener los datos para que coincida con la proyección de la capa de base, de manera que quede alineada correctamente.

No es un insecto, él es una característica. Esférico Mercator es una proyección de píxeles cuadrados, por lo que sus OpenLayers características vectoriales se pueden colocar con precisión en el mapa - este no es el caso con WSG-84 (EPSG: 4326)

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