Bir OpenLayers haritaya GeoServer ile dahil veri kümelerinden birini eklemeye çalışıyorum. OpenGeo eğitimlerini takip ettim, burada benzer bir iş parçacığı gördüm, ancak çatlayamıyorum. Birisi koduma ve GeoServer kurulumuma bir bakabilir ve bana nerede yanlış yaptığımı söyleyebilir mi?
İşte benim kod:
//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 ayrıntıları: çalışma alanı adı = medford, Ad Alanı URI = http://medford.opengeo.org Özellik türü için "parklar" ve "medford: parklar" ı denedim
Katman etkinleştirilir, reklamı yapılır ve 30 özellik dönüş sınırı vardır.
Basit bir harita oluşturmak için uğraşıyorum.
Güncellenmiş Çözüm. Şimdi çalışıyor.
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
})
Katman tanımında Ad geometrisini belirtmenize gerek yoktur. Veri setimizde Native SRS boş olduğu için geometriName'i varsayılandan daha fazla tutarsak, ancak onsuz harita projeksiyonu kullanır (bizim durumumuzda 27700).