Як зберегти топологію під час редагування полігонів у OpenLayers?


9

Я стикаюся з цим питанням: у мене є хлороплетова карта на основі набору багатокутників з деякими даними. Використовуючи WFS-T (постгіс, геосервер, відкриті шари), я можу редагувати геометрію полігонів. Це чудово працює.

Мої багатокутники схожі на державні кордони. Вони мають спільні прикордонні вершини. Коли я редагую геометрію деякого багатокутника (наприклад, переміщую вершини, використовуючи modifyFeature), мені потрібно впливати на геометрію будь-якого сусіднього багатокутника. Не повинно бути дірок або перекриттів.

Чи можна це зробити?

Дякую


Напевно;) Я не вірю, що OpenLayers підтримує щось подібне поза коробкою, але це було б реалізованим. Ви можете представляти кожну межу рядком рядка та змінювати рядки. Потім, коли рядок рядків оновлюється, ви оновлюєте два (або більше) полігонів, які торкаються кордону, видаляючи стару межу і вставляючи новий.
canisrufus

Відповіді:



2

Лише підказки, не думайте, що OpenLayers це в змозі зробити. Більшість настільних ГІС з відкритим кодом не в змозі зробити оснащення по лінії різної вершини, тому робити це в Інтернеті мені здається мрією.

Для простої геометрії оснащення може бути достатньо http://openlayers.org/dev/examples/snapping.html Недостатньо зрілим, сподіваюся, https://github.com/bjornharrtell/jsts буде способом зробити перехрестя (і непрямо вирішити свою проблему) на стороні клієнта перед тим, як надсилати назад вміст. На даний момент я подумаю докладніше про обробку після малювання, використовуючи для цього тригери PostGIS, і поверну виправлені малюнки. Впровадження топології в PostGIS може допомогти http://www.postgresql-sesions.org/2/sandro_santilli_-_topology_with_postgis_2.0 Завжди на стороні сервера, див. Можливості WPS, можливо, http://community.esdi-humboldt.eu/documents/show / 4

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.