我正在尝试将GeoServer包含的数据集之一添加到OpenLayers映射中。我遵循了OpenGeo教程,在这里看到了类似的主题,但是我似乎无法破解。有人可以看一下我的代码和GeoServer设置,并告诉我我要去哪里哪里吗?
这是我的代码:
//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详细信息:工作空间名称= medford,命名空间URI = http://medford.opengeo.org 对于要素类型,我尝试了“ parks”和“ medford:parks”
该图层已启用,发布,并且具有30个要素返回限制。
我正在努力将一张简单的地图放在一起。
更新的解决方案。现在工作。
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
})
不需要在“图层定义”中指定几何名称。由于本机数据集中的Native SRS为null,因此如果我们保留geometryName,则默认值是默认值,但是如果没有使用它,它将使用地图投影(本例中为27700-)。