Saya mencoba menambahkan salah satu dataset yang disertakan dengan GeoServer ke peta OpenLayers. Saya telah mengikuti tutorial OpenGeo, melihat utas serupa di sini, tapi sepertinya saya tidak bisa memecahkannya. Dapatkah seseorang melihat kode saya dan pengaturan GeoServer dan memberi tahu saya di mana saya salah?
Ini kode saya:
//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();
Detail GeoServer: workspace name = medford, Namespace URI = http://medford.opengeo.org Untuk tipe fitur saya telah mencoba "taman" dan "medford: taman"
Lapisan diaktifkan, diiklankan dan memiliki batas pengembalian fitur 30.
Saya berjuang untuk menyatukan peta sederhana.
Solusi Terbaru. Sedang bekerja sekarang
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
})
Tidak perlu menentukan Nama geometri dalam definisi Layer. Karena Native SRS adalah null dalam dataset kami, jika kami menjaga geometriName daripada yang diperlukan, tetapi tanpa itu, ia menggunakan proyeksi peta (27700- dalam kasus kami).
sumber
workspace
(ini akan membawa Anda ke halamanEdit Workspace
.Name
Apa yang dimasukkanfeaturePrefix
. DanNamespace URI
apa yang Anda masukkanfeatureNS
. Juga, tidak yakin apakahfile:///c:
lokasi akan mengharuskan Anda untuk menggunakan proxy. Tapi saya akan membuat file tinggal dihttp://localhost
untuk menguji dan memastikan<wfs:FeatureCollection numberOfFeatures="30"...
elemen induk, bukan?Hal pertama yang perlu diperiksa: apakah halaman web server / test Anda di 'medford.opengeo.org'? Jika tidak, Anda tidak akan dapat mengakses WFS karena Kebijakan Asal yang Sama . Anda secara teknis dapat menggunakan proxy untuk memperbaikinya. (meskipun menurut saya ini hanya kasus WFS menjadi protokol yang dirancang dengan buruk)
sumber
Masalah Anda adalah bahwa Anda memiliki awalan pada nama fitur dan namespace yang membingungkan GeoServer (dan / atau OpenLayers).
Mencoba:
Saya punya beberapa contoh WFS di http://ian01.geog.psu.edu/geoserver/www/wfs/index.html dengan kode sumber komentar yang dapat Anda pelajari.
sumber
perbaiki tipe properti Anda dari "medford: taman" ke "taman"
Lihat jsfiddle sebagai contoh: http://jsfiddle.net/expedio/ucrtthya/
sumber
Kode Anda baik-baik saja. Anda hanya perlu mengubah alamat browser halaman Anda. Arahkan halaman browser Anda melalui "localhost: 8080 / geoserver / www / your_file_name.html" alih-alih "file: \ c ......"
Maka layer vektor akan merender dengan sempurna.
sumber