Sto cercando di aggiungere uno dei set di dati inclusi con GeoServer a una mappa OpenLayers. Ho seguito i tutorial di OpenGeo, ho visto un thread simile qui, ma non riesco a romperlo. Qualcuno può dare un'occhiata al mio codice e alla configurazione di GeoServer e dirmi dove sto andando storto?
Ecco il mio codice:
//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();
Dettagli GeoServer: workspace name = medford, Namespace URI = http://medford.opengeo.org Per il tipo di funzione ho provato "Parks" e "Medford: Parks"
Il livello è abilitato, pubblicizzato e ha un limite di restituzione di 30 funzioni.
Sto lottando per mettere insieme una semplice mappa.
Soluzione aggiornata. Funzionando Adesso.
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
})
Non è necessario specificare il nome della geometria nella definizione del livello. Dal momento che Native SRS era nullo nel nostro set di dati, se manteniamo geometryName di quello che richiede di default, ma senza di esso, utilizza la proiezione della mappa (27700- nel nostro caso).