J'essaie d'ajouter l'un des ensembles de données inclus avec GeoServer à une carte OpenLayers. J'ai suivi les tutoriels OpenGeo, vu un fil similaire ici, mais je n'arrive pas à le casser. Quelqu'un peut-il jeter un coup d'œil à mon code et à la configuration de GeoServer et me dire où je me trompe?
Voici mon 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();
Détails du GeoServer: workspace name = medford, Namespace URI = http://medford.opengeo.org Pour le type d' entité, j'ai essayé "parks" et "medford: parks"
La couche est activée, publiée et a une limite de retour de 30 fonctionnalités.
J'ai du mal à assembler une carte simple.
Solution mise à jour. Travaille maintenant.
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
})
N'a pas besoin de spécifier le nom de la géométrie dans la définition de la couche. Étant donné que Native SRS était nul dans notre jeu de données, si nous conservons geometryName par rapport à celui par défaut, mais sans lui, il utilise la projection cartographique (27700- dans notre cas).