Tôi đang cố gắng thêm một trong các bộ dữ liệu được bao gồm với GeoServer vào bản đồ OpenLayers. Tôi đã theo dõi các hướng dẫn OpenGeo, thấy chủ đề tương tự ở đây, nhưng tôi dường như không thể bẻ khóa được. Ai đó có thể lướt qua mã của tôi và thiết lập GeoServer và cho tôi biết tôi đang sai ở đâu không?
Đây là mã của tôi:
//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();
Chi tiết GeoServer: tên không gian làm việc = medford, Namespace URI = http://medford.opengeo.org Đối với loại tính năng tôi đã thử "park" và "medford: park"
Lớp được kích hoạt, quảng cáo và có giới hạn trả lại 30 tính năng.
Tôi đang vật lộn để đặt một bản đồ đơn giản lại với nhau.
Giải pháp cập nhật. Đang làm việc.
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
})
Không cần chỉ định Tên hình học trong định nghĩa Lớp. Vì SRS bản địa là null trong tập dữ liệu của chúng tôi, nếu chúng tôi giữ hình họcName hơn mặc định, nhưng không có nó, nó sử dụng phép chiếu bản đồ (trong trường hợp của chúng tôi là 27700-).