Lapisan vektor OpenLayers WFS

8

Saya mencoba menambahkan layer vektor dengan layer WFS dan tidak berfungsi. Adakah yang bisa menunjukkan solusi?

Kode OpenLayers:

var wfs = new OpenLayers.Layer.Vector(
                "Stavros Features",
                {
                    strategies: [new OpenLayers.Strategy.BBOX()]
                    ,projection: new OpenLayers.Projection("EPSG:4326")
                    ,protocol: new OpenLayers.Protocol.WFS({
                        version: "1.1.0"
                        ,srsName: "EPSG:4326"
                        ,url: "http://localhost:8080/geoserver/wfs"
                        ,featureNS :  "http://postgis.org"
                        ,featureType: "polygon"
                        ,geometryName: "the_geom"
                    })
                });

Dalam konfigurasi GeoServer, saya memiliki ruang kerja 'myWorkspace' , toko 'myStore' dan lapisan 'myLayer' dan WFS diaktifkan. Juga di tab 'publishing' pada layer saya di 'WMS Settings Default Style' Saya telah memilih 'polygon' karena myLayer adalah multipolygon.

Apa yang saya lakukan salah?

Apakah saya harus menentukan nama ruang kerja di properti 'featureNS'?

Apakah ada tutorial yang bagus untuk OpenLayers?
Saya telah membaca dokumen yang sangat buruk dan contoh-contohnya tidak selalu membantu saya. Saya juga telah membaca manual pengguna GeoServer dan saya merasa sangat baik.

Argiropoulos Stavros
sumber
1
Apakah aplikasi OpenLayers Anda berjalan di port 80 atau port 8080?
geografi
1
dapatkah Anda melihat hasil dari permintaan di firebug?
Ian Turton

Jawaban:

13

Oke beberapa hal yang akan saya ubah dan coba lagi:

  1. Pastikan nilai featureNS Anda ada di "Edit Halaman Ruang Kerja di bawah Namespace URI" di GEOSERVER Anda. Jangan menggunakan sesuatu yang generik seperti " http://postgis.org ". Gunakan sesuatu seperti " http: // yourdomain / application / catalogLayer " atau sesuatu yang unik seperti itu. Anda dapat meningkatkan URI ini, cukup buat unik.
  2. Anda memiliki BBOX baru () sebagai strategi tetapi kotak apa yang dimiliki sebagai dimensi? Saya akan mengubahnya menjadi [OpenLayers.Strategy.Fixed ()] baru untuk pengujian.
  3. featureType sebenarnya bukan tipe geometri, itu adalah "Layer Name" Anda di GEOSERVER (saya tahu, menyesatkan).
  4. geometryName adalah nama bidang dalam database postgis Anda yang memiliki tipe data Geometri. Di GEOSERVER, Di bawah "Edit Layer" Anda dapat melihat di bagian bawah "Rincian Tipe Fitur". Di sana Anda akan melihat bidang dengan tipe "Geometri". Gunakan nilai di bawah kolom properti.

featureNS

masukkan deskripsi gambar di sini

featureType

masukkan deskripsi gambar di sini

geometryName

masukkan deskripsi gambar di sini

CaptDragon
sumber
1
Kerja bagus, terima kasih sudah berbagi itu. Saya merasa sangat penting untuk menetapkan NS agar benar, dan BUKAN menggunakan karakter khusus seperti: dalam nama layer.
JayCrossler