Ich versuche, einer OpenLayers-Karte einen der in GeoServer enthaltenen Datasets hinzuzufügen. Ich habe die OpenGeo-Tutorials befolgt und hier einen ähnlichen Thread gesehen, aber ich kann ihn scheinbar nicht knacken. Kann jemand einen Blick auf meinen Code und mein GeoServer-Setup werfen und mir sagen, wo ich falsch liege?
Hier ist mein Code:
//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();
GeoServer-Details: Name des Arbeitsbereichs = medford, Namespace URI = http://medford.opengeo.org Für den Feature-Typ habe ich "parks" und "medford: parks" ausprobiert.
Der Layer ist aktiviert, angekündigt und hat ein Rückgabelimit von 30 Features.
Ich habe Mühe, eine einfache Karte zusammenzustellen.
Aktualisierte Lösung. Arbeite jetzt.
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
})
Der Geometriename muss nicht in der Ebenendefinition angegeben werden. Da Native SRS in unserem Dataset null war, wird bei Beibehaltung von geometryName die Standardeinstellung verwendet, ohne diese jedoch die Kartenprojektion (in unserem Fall 27700-).