Bagaimana saya bisa menggunakan WFS dari Geoserver dengan OpenLayers 3?

8

Saya telah mencoba dengan berbagai pengaturan dan format, tetapi tidak berhasil.

Dengan pembakar, saya bisa melihat bahwa data json dimuat, tetapi tidak ada yang muncul di peta.

Adakah yang punya pengalaman dengan geoserver dan wfs di openlayers 3?

var layer_ojd_vector = new ol.layer.Vector({
 source: new ol.source.Vector({
  parser: new ol.parser.GeoJSON(),
  url: http://SERVER:8080/geoserver/NS/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=NS:LAYER&maxFeatures=50&outputFormat=json
 }),
 style: new ol.style.Style({rules: [
  new ol.style.Rule({
   filter: 'geometryType("point")',
   symbolizers: [
     new ol.style.Shape({
       fillColor: '#013',
       size: 40
     })
   ]
 })
]})  
});
Trond Thorbjørnsen
sumber

Jawaban:

3

Saya telah melihat ini menjawab sedikit di sini.

Anda harus menjalankan file HTML dari server web dan akses dengan:

SERVER: 8080 / geoserver / index.html

atau bagaimanapun milik Anda sudah siap.

Anda tidak bisa hanya mengklik dua kali file HTML dan melihat layer WFS.

ianbroad
sumber
File dengan javascript ini diakses melalui server web.
Trond Thorbjørnsen
BAIK! Sekarang saya mengerti: Saya tidak dapat mengakses data wfs dari server web lain, saya harus memiliki file html di server web geoserver.
Trond Thorbjørnsen
4
@ GISer "Saya sudah melihat ini menjawab sedikit di sini." Betulkah? Ini adalah satu-satunya posting yang saya lihat yang secara khusus menargetkan OL3. Tidak keberatan melihat beberapa dokumentasi yang lebih baik tentang ini karena dokumentasi OL3 masih sangat banyak pekerjaan yang sedang berjalan.
Kyle
1
Ini tidak masuk akal. Apakah Anda mengatakan jika Anda memiliki data GeoJSON jarak jauh yang harus dijalankan pada server yang sama yang melayani peta? Jika Anda melihat beberapa contoh OpenLayers di situs web mereka, data spasial tidak harus berada di server yang sama dengan server peta yang menampilkan data.
user3657279
3

Saya setuju dengan Kyle. Bahkan setahun kemudian butuh beberapa saat untuk menemukan contoh yang bagus dengan penjelasan yang dapat dengan mudah direproduksi.

Saya suka contoh-contoh dari 'buku openlayers 3'. Sayangnya saya tidak memiliki akses ke buku itu sendiri tetapi saya percaya itu ditulis dengan baik dilihat dari contoh-contohnya.

Contoh ini untuk ol 3.4

http://acanimal.github.io/thebookofopenlayers3/chapter03_07_query_wfs.html

Saya punya beberapa masalah dalam mereplikasi contoh master 3,5 vektor-wfs dari halaman contoh openlayers. Masalah-masalah ini mungkin sudah diperbaiki sekarang.

http://openlayers.org/en/master/examples/vector-wfs.html

Saya membuat tiga jsfiddle untuk mendemonstrasikan panggilan 3.5.0 melalui AJAX untuk ol.format.GeoJSON (JSON dan JSONP) serta ol.format.WFS.

WFS (akses CORS harus diaktifkan di server web, misalnya untuk Apache Tomcat )

http://jsfiddle.net/goldrydigital/9d3jzpna/

JSON (Akses CORS harus diaktifkan di server web, mis. Untuk Apache Tomcat )

http://jsfiddle.net/goldrydigital/ucspgvx0/

JSONP (JSONP perlu diaktifkan di Geoserver )

http://jsfiddle.net/goldrydigital/08zzh9n9/

Dennis Bauszus
sumber
Nah, jawabannya memang datang dua tahun setelah jawaban yang diterima, dan jawaban yang diterima adalah benar sejauh ia pergi. Tapi ini jauh lebih berguna.
Auspex
0

Saya pikir yang Anda butuhkan adalah ini:
REST konfigurasi API referensi
Dengan REST Anda dapat memanggil data antar server (atau antara misalnya Apache pada port 80 dan geoserver di port 8080 jika itu server yang sama).

António Cabral
sumber