Saya ingin menggunakan server GeoServer WMS untuk gaya kustom. Katakanlah saya memiliki area sebagai poligon dalam sebuah shapefile, tetapi saya tidak memiliki suhu area ini sebagai atribut. Dari layanan web saya mengumpulkan titik suhu di dalam area itu. Sekarang saya ingin GeoServer mewarnai area ini sesuai dengan titik suhu dinamis ini.
Berikut ini sebuah contoh:
Jika mungkin, saya bahkan ingin menempatkan batas ini pada gambar dan beberapa penjelasan tentang warna di sisi kanan. Bagaimana saya bisa mengirim titik suhu ini ke GeoServer WMS. Dan bisakah saya melakukan pewarnaan khusus menurut parameter dinamis ini?
Saya tidak tahu cara mengonversi data titik ini ke warna area.
Pertanyaan saya berikutnya mirip tetapi tanpa poin, dapatkah saya mewarnai poligon dengan atribut dinamis yang tidak ada di shapefile.
Berikut adalah contoh saya ingin mewarnai poligon ini sesuai dengan jenis produk mereka, tetapi seperti pertanyaan sebelumnya, jenis produk ini dikumpulkan secara dinamis.
Saya harap ini mungkin.
sumber
Jawaban:
Pada pertanyaan kedua Anda :
SLD dapat dibuat secara dinamis, yang artinya dapat mendesain peta menggunakan data dinamis. Agar ini berfungsi, Anda perlu mengetahui ID poligon yang Anda coba gaya dan Anda juga perlu mengubah / memperluas layanan web Anda.
Minta layanan web Anda menghasilkan SLD dengan cepat alih-alih hanya mengembalikan data. Ini cukup sederhana menggunakan .NET, Java, PHP dll. SLD yang Anda hasilkan akan memiliki aturan untuk setiap pita warna yang ingin Anda tampilkan. Setiap aturan akan mengidentifikasi poligon yang warna berlaku oleh ID mereka. Setiap blok filter aturan akan berisi
PropertyIsEqualTo 1 OR PropertyIsEqualTo 2 OR ...
. Setiap aturan gaya poligon dengan warna apa pun yang Anda pilih untuk mewakili nilai. Anda kemudian memiliki dua opsi untuk memberi tahu GeoServer untuk menggunakan SLD dinamis Anda.'http://geoserver/wms?request=GetMap...&sld=' + encodeURIComponent('http://web-service/generateSLD?and=any-parameters-that-influence-sld-generation')
. Ketika GeoServer mendapatkan permintaan WMS itu akan mendekode parameter dan permintaan URL ini untuk SLD. Dari perspektif GeoServer ini tidak berbeda dengan permintaan untuk SLD statis yang diadakan pada server file.Kedua pendekatan dapat diuji menggunakan SLD statis yang Anda buat untuk pengujian, sehingga Anda tahu seberapa sukses ini sebelum melakukan upaya pada layanan web Anda. Kedua pendekatan dapat digunakan untuk meminta GeoServer untuk grafik legenda, yang kemudian akan mewakili aturan yang sama (namun jika Anda menggunakan opsi 1, mungkin data yang digunakan untuk membuat SLD Anda telah berubah setelah membuat peta).
Saya pikir ini adalah pilihan terbaik Anda untuk pertanyaan 2.
Pada pertanyaan pertama Anda :
Apakah titik suhu selalu mewakili lokasi yang sama? Jika ya, bisakah Anda mencari tahu terlebih dahulu poligon mana dari titik-titik temperatur itu? Jika ya, Anda dapat menggunakan kembali pendekatan yang diuraikan di atas, dengan skrip generasi SLD Anda menerjemahkan poin menjadi ID poligon.
EDIT Saya baru saja melihat ini dirujuk dalam pertanyaan lain: http://pypi.python.org/pypi/python-sld/
sumber
Jawaban singkatnya adalah - ya, sangat mungkin! Sebenarnya ada berbagai cara Anda bisa mengatasi masalah ini. Inilah salah satu cara yang bisa saya pikirkan.
Ada 2 bagian untuk pertanyaan Anda di sini.
1) Mewakili data Statis DAN Dinamis yang berasal dari sumber eksternal di GeoServer.
Buat grup layer katakan "Peta Regional" dengan 2 layer. Layer 1 (Static) adalah "Peta Regional - dilayani dari Database read-only atau Shapefile Layer 2 (Dynamic) adalah" Weather "- yang dapat menyajikan data dinamis melalui cascading WMS. URL cascade WMS sebenarnya dapat dilingkarkan kembali ke GeoServer Anda, dan Anda dapat melayani suhu atau atribut dinamis lainnya dengan memanggil layanan jarak jauh menggunakan protokol apa pun yang Anda gunakan - REST, SOAP, TCP dll.
Dengan cara ini Anda bisa menambahkan atribut ke lapisan secara dinamis di masa depan tanpa menambahkan barang ke DB.
2) Melakukan gaya khusus ** Taruhan terbaik Anda di sini adalah menggunakan ** Style Layer Descriptor (SLD) . Ada banyak dokumentasi tentang cara mendesain menggunakan SLD. Sangat kuat! Anda dapat mengontrol gaya menggunakan warna, tingkat zoom, ambang batas nilai (> 40C berwarna merah,> 35 berwarna oranye) dan memiliki aturan berdasarkan nilai dari berbagai atribut dan label. Styling tersedia untuk sebagian besar geometri - titik, garis, area, dll. Anda dapat menggunakan editor gaya seperti Atlas, atau editor yang disertakan dengan OpenGeo - GeoExplorer, untuk menguji berbagai kondisi data.
Keindahan dengan pendekatan ini adalah Anda dapat mengontrol gaya dari Layer1 dan Layer2 yang tidak saling tergantung. Anda dapat membuat legenda di UI (JavaScript) Anda, di luar GeoServer. GeoServer akan menggabungkan semua aturan gaya untuk menghasilkan overlay yang benar. Bergantung pada kinerja yang Anda dapatkan dari layer dan Styling, Anda juga dapat mempertimbangkan untuk menambahkan solusi caching ubin seperti GeoWebCache atau HTTP Cache seperti Varnish.
Bersulang,
Ramesh
sumber