Как сохранить топологию при редактировании полигонов в OpenLayers?

9

Я сталкиваюсь с этой проблемой: у меня есть карта хлороплетов, основанная на наборе полигонов с некоторыми данными. Используя WFS-T (postgis, geoserver, openlayers), я могу редактировать геометрию полигонов. Это отлично работает.

Мои полигоны выглядят как государственные границы. Они имеют общие границы вершин. Когда я редактирую геометрию некоторого многоугольника (например, перемещаю вершины, используя modifyFeature), мне нужно влиять на геометрию любого соседнего многоугольника. Там не должно быть дыр или перекрытий.

Возможно ли это сделать?

Спасибо

Volda
источник
Вероятно;) Я не верю, что OpenLayers поддерживает что-то подобное из коробки, но это было бы осуществимо. Вы можете представлять каждую границу с помощью строки и изменять строки. Затем, когда обновляется линейная строка, вы обновляете два (или более) полигона, которые касаются границы, удаляя старую границу и вставляя новую.
canisrufus

Ответы:

2

Только подсказки, не думайте, что OpenLayers способен это сделать. Большинство настольных ГИС с открытым исходным кодом не могут выполнять привязку к разным вершинам, поэтому создание этого онлайн кажется мне мечтой.

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

ThomasG77
источник