Estoy tratando de agregar uno de los conjuntos de datos incluidos con GeoServer a un mapa de OpenLayers. He seguido los tutoriales de OpenGeo, he visto un hilo similar aquí, pero parece que no puedo descifrarlo. ¿Alguien puede echar un vistazo a mi código y a la configuración de GeoServer y decirme dónde me voy mal?
Aquí está mi código:
//WMS map
world = new OpenLayers.Layer.WMS("Global Imagery", "http://maps.opengeo.org/geowebcache/service/wms", {
layers : "openstreetmap",
format : "image/png"
});
map.addLayer(world);
//WFS
parks = new OpenLayers.Layer.Vector("WFS", {
strategies : [new OpenLayers.Strategy.BBOX()],
protocol : new OpenLayers.Protocol.WFS({
url : "http://localhost:8081/geoserver/wfs",
featureType : "medford:parks",
featureNS : "http://medford.opengeo.org/medford"
})
});
map.addLayer(parks);
map.zoomToMaxExtent();
Detalles de GeoServer: nombre del espacio de trabajo = medford, URI del espacio de nombres = enlace Para el tipo de función he probado "parks" y "medford: parks"
La capa está habilitada, anunciada y tiene un límite de retorno de 30 funciones.
Estoy luchando para armar un mapa simple.
Solución actualizada. Trabajando ahora.
wfs = new OpenLayers.Layer.Vector("Fields_WFS", {
strategies : [new OpenLayers.Strategy.Fixed()],
protocol : new OpenLayers.Protocol.WFS({
version : "1.1.0",
url : GEOSERVER_HOST + ":" + GEOSERVER_PORT + "/geoserver/wfs",
featurePrefix : "rpid",
featureType : "FIELDS_SUBSET_BNG_OSGB36_1",
featureNS : "<namespace>",
//geometryName : "GEOM", type "Geometry"
srsName : "EPSG:27700"
}),
renderers : renderer
})
No es necesario especificar el nombre de la geometría en la definición de capa. Dado que el SRS nativo era nulo en nuestro conjunto de datos, si mantenemos geometryName el valor predeterminado, pero sin él, utiliza la proyección de mapas (27700- en nuestro caso).