Saya berencana membuat peta online dengan openlayers (2 atau 3) atau leaflet. Saya harus menunjukkan beberapa titik / spidol (~ 30.000), poligon (~ 500) dan garis di atas peta OSM dalam beberapa lapisan. Poin dan poligon tersebut harus berisi data meta (setidaknya ID) untuk menunjukkan informasi tambahan kepada pengguna tentang aktivitas mouse, klik, atau sentuh. Sekarang saya sedang mencari cara terbaik untuk mengirim data ke klien. Seluruh area, di mana fitur-fitur ini ditempatkan, dibagi menjadi beberapa bagian dan sebagian besar waktu, pengguna bekerja dalam satu bagian (membaca informasi - menulis adalah kasus yang sangat langka, yang tidak akan diimplementasikan sekarang). Tetapi bagian-bagian ini ditempatkan bersebelahan dan sebagian besar waktu setidaknya 3 bagian terlihat. Juga titik-titik dapat dikelompokkan atau disembunyikan di tingkat zoom yang lebih tinggi.
Saya pernah mendengar tentang WFS, tetapi saya tidak bisa melihat kelebihan dibandingkan GeoJSON atau KML. Apakah mungkin untuk hanya mengambil fitur dalam kotak pembatas dari tampilan saat ini dengan WFS? Kami punya database MSSQL dan layanan web antara database dan aplikasi web dan jika itu tidak benar-benar keuntungan, kami tidak ingin mengatur GeoServer dan Postgres DB. Juga tidak akan menjadi masalah untuk memberitahu layanan web: Beri saya semua fitur lapisan L antara X1, Y1 dan X2, Y2 (seperti GeoJSON, KML atau apa pun). Apa kelebihan WFS? Apa jalannya, Anda akan pergi atau informasi apa lagi yang relevan untuk keputusan ini?
What are the advantages of WFS?
itu adalah antarmuka standar (layanan) yang dapat memberi Andaall features of layer L between X1,Y1 and X2,Y2 (as GeoJSON, KML or whatever)
.Jawaban:
Perlu diingat bahwa WFS sudah merupakan layanan yang mengembalikan format datanya (campuran standar OGC). GeoJSON dan KML hanya format data, Anda harus membangun layanan untuk mengembalikan data.
Jadi yang disertakan dengan WFS adalah kemampuan penyaringan yang sudah maju seperti filter temporal, filter spasial (intersect, touches, overlaps ...) serta operator logis dan pembanding ... dan seterusnya. Ya, Anda dapat menentukan untuk memuat ulang hasil untuk BBox serta pengguna menavigasi peta. Ini semua di luar kotak . Maka tentu saja ini adalah standar yang digunakan secara luas yang dapat dibaca oleh banyak server, klien, dan aplikasi dengan memungkinkan mereka untuk secara otomatis menanyakan data ini seperti yang dikatakan.
Jadi pertanyaan yang harus Anda tanyakan pada diri sendiri adalah apakah Anda ingin mengekspos data ini ke klien lain, aplikasi dan server? Apakah layanan "Beri saya semua fitur lapisan L antara X1, Y1 dan X2, Y2" Anda sudah cukup? Apakah itu yang kamu butuhkan? Jika itu yang Anda butuhkan maka tidak ada alasan untuk menggunakan WFS. Opsi GeoJSON atau KML mungkin akan lebih cepat tanpa semua overhead. Tetapi jika Anda ingin melakukan pemfilteran lanjutan dalam gaya SOA di masa mendatang, WFS adalah cara yang harus dilakukan.
sumber
Pertama-tama, saya sarankan Anda untuk membaca spec . Pro WFS terbesar adalah cara resmi dan standar untuk mengakses data vektor. Itu berarti ketika Anda menggunakan WFS, Anda tidak harus menemukan kembali ke roda (mis. Apa yang harus terjadi ketika dua orang mengedit fitur yang sama pada waktu yang sama?). Berbagi data melalui WFS juga jauh lebih mudah daripada menggunakan GeoJSON atau KML (sekali lagi, Anda tidak harus menulis fungsi yang mengembalikan data yang diminta pengguna karena sudah menjadi bagian dari spesifikasi WFS).
Jika Anda akan menyajikan layer untuk akses hanya baca, mengapa Anda tidak menggunakan WMS? Seharusnya benar-benar baik untuk keperluan Anda.
Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya, saya sendiri yang tengah memutuskan dilema ini dan selalu menyenangkan untuk membaca pendapat orang lain.
sumber
WFS memberi klien Anda (OpenLayers) opsi untuk melakukan panggilan menggunakan Strategi berbeda untuk Panggilan WFS:
Strategi BBOX biasa digunakan. Layer Vector hanya akan meminta fitur dari WFS yang ada di viewport dan ketika viewport diubah, fitur tambahan secara otomatis dimuat secara transparan.
Seperti yang dinyatakan oleh CaptDragon dan saya sebutkan dalam pertanyaan Anda sebelumnya, jumlah fitur akan membunuh OpenLayers, kemungkinan besar, atau membuat pengalaman pengguna tidak bisa dipertahankan.
Anda bisa memasukkan data ke dalam database MSSQL, lalu menulis rutinitas Sisi Server untuk mengembalikan data melalui panggilan Ajax dan memperbarui sendiri layer-layer tersebut. Klien Anda memberikan batasan Viewport dalam Panggilan Ajax. Basis data harus sadar secara spasial agar ini berfungsi.
WMS akan menghasilkan petak dari sumber data yang sama. Keuntungannya adalah implementasi yang sangat cepat, gaya sisi server dan tidak ada pengunduhan data ke klien untuk ditampilkan, selain ubin. Anda juga dapat menggunakan WFS dengan WMS untuk mendapatkan informasi fitur ketika pengguna mengklik suatu titik.
Dimungkinkan juga untuk menyajikan data dari file bentuk alih-alih database dalam semua skenario ini.
sumber