ฉันกำลังพยายามเพิ่มหนึ่งในชุดข้อมูลที่รวมกับ 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: workspace name = medford, Namespace 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 เป็นโมฆะในชุดข้อมูลของเราถ้าเราเก็บชื่อเรขาคณิตไว้มากกว่าค่าเริ่มต้น แต่หากไม่มีมันก็จะใช้การฉายแผนที่ (27700- ในกรณีของเรา)