Estoy experimentando problemas en la proyección con la siguiente configuración:
- GeoServer con ESPG:4326 basado en shape (*.shp)
- OpenJump para editar mis archivos de forma
- Openlayers con EPSG:900913 capas base
- GeoServer proporciona los archivos de forma como WMS a OpenLayers.
Aquí está mi código fuente:
<html>
<head>
<title>Openplanning mit Geoserver</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<script type='text/javascript' src='http://www.openlayers.org/api/OpenLayers.js'></script>
</head>
<body>
<div id="map-id"></div>
<script>
var geographic = new OpenLayers.Projection("EPSG:4326");
var mercator = new OpenLayers.Projection("EPSG:900913");
var world = new OpenLayers.Bounds(-180, -89, 180, 89).transform(
geographic, mercator
);
var vienna_center = new OpenLayers.LonLat(16.3670, 48.205333).transform(
geographic, mercator
);
var options = {
projection: mercator,
displayProjection: geographic,
units: "m",
maxExtent: world,
maxResolution: 156543.0399
};
var map = new OpenLayers.Map("map-id",options);
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
var vienna = new OpenLayers.Layer.WMS(
"Vienna Calling",
"http://localhost:8888/geoserver/wms?",
{layers: "topp:ma_vienna",
transparent: true}
);
map.addLayer(vienna);
map.setCenter(vienna_center, 8);
map.addControl(new OpenLayers.Control.LayerSwitcher());
//zeigt die Koordinaten der aktuellen Mause-Position an
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(featureInfo);
featureInfo.activate();
</script>
</div>
</body>
</html>
Parece que GeoServer es la conversión de la ESPG:4326 a EPSG:900913 internamente. Aquí puedes ver un ejemplo de solicitud de Viena (que es enviado por mi OpenLayers aplicación a GeoServer):
http://localhost:8888/geoserver/wms?LAYERS=topp:ma_vienna&SRS=EPSG:900913&TRANSPARENT=TRUE&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image/png&BBOX=1800244.8899219,6116147.6705496,1839380.6483984,6155283.4290261&WIDTH=256&HEIGHT=256
Mi problema: el archivo solicitado se ve distored, como se puede ver aquí:
En caso de que se me abra la capa WMS en el OpenLayers vista previa de GeoServer, se ve bien:
La pregunta es: ¿por Qué es mi archivo de forma distorsionada en mi OpenLayers de la aplicación, pero no en el GeoServer previa? Como se puede ver, el GeoServer vista previa de los usos EPSG:4326 y mi OpenLayers aplicación EPSG:900913 (Actualización: EPSG:4326; coordenadas del ratón se muestra como latitud/longitud). Pero, sin embargo, como GeoServer proporciona un WMS interfaz con EPSG:900913 capacidades, no debería reproyectar correctamente mi vector de fuentes?
Gracias por las respuestas de antemano, Rainer.