Cambio de proyección en OpenLayers Mapa
-
28-09-2019 - |
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
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 likeOsmarender
orMapnik
:
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)