Bagaimana cara mempertahankan topologi saat mengedit poligon di OpenLayers?


9

Saya menghadapi masalah ini: Saya memiliki peta chloropleth berdasarkan seperangkat poligon dengan beberapa data. Menggunakan WFS-T (postgis, geoserver, openlayers) saya dapat mengedit geometri poligon. Ini berfungsi dengan baik.

Poligon saya terlihat seperti batas negara. Mereka telah berbagi simpul perbatasan. Ketika saya mengedit geometri beberapa poligon (mis., Pindahkan simpul menggunakan modifyFeature), saya perlu memengaruhi geometri setiap poligon tetangga. Seharusnya tidak ada lubang atau tumpang tindih.

Apakah mungkin untuk melakukannya?

Terima kasih


Mungkin;) Saya tidak percaya OpenLayers mendukung hal seperti ini di luar kotak, tetapi itu bisa diterapkan. Anda bisa mewakili setiap perbatasan dengan linestring, dan memodifikasi linestrings. Kemudian, ketika linestring diperbarui, Anda memperbarui dua (atau lebih) poligon yang menyentuh di perbatasan, menghapus perbatasan lama dan memasukkan yang baru.
canisrufus

Jawaban:



2

Hanya petunjuk, jangan berpikir OpenLayers mampu melakukannya. Sebagian besar open source Desktop GIS tidak dapat melakukan gertakan pada garis titik berbeda sehingga melakukan ini secara online sepertinya merupakan impian bagi saya.

Untuk geometri sederhana, gertakan dapat cukup http://openlayers.org/dev/examples/snapping.html Tidak cukup matang, saya harap https://github.com/bjornharrtell/jsts akan menjadi cara untuk melakukan persimpangan (dan menyelesaikan masalah Anda) di sisi klien sebelum mengirim kembali konten. Untuk saat ini, saya akan lebih memikirkan tentang pemrosesan setelah menggambar menggunakan pemicu PostGIS untuk ini dan mengirimkan kembali undian yang diperbaiki. Implementasi topologi di PostGIS dapat membantu http://www.postgresql-sessions.org/2/sandro_santilli_-_topology_with_postgis_2.0 Selalu di sisi server, lihat kemungkinan WPS mungkin http://community.esdi-humboldt.eu/documents/show / 4

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.