Я сталкиваюсь с этой проблемой: у меня есть карта хлороплетов, основанная на наборе полигонов с некоторыми данными. Используя WFS-T (postgis, geoserver, openlayers), я могу редактировать геометрию полигонов. Это отлично работает.
Мои полигоны выглядят как государственные границы. Они имеют общие границы вершин. Когда я редактирую геометрию некоторого многоугольника (например, перемещаю вершины, используя modifyFeature), мне нужно влиять на геометрию любого соседнего многоугольника. Там не должно быть дыр или перекрытий.
Возможно ли это сделать?
Спасибо
Ответы:
Я знаю, что этому вопросу уже 3 года, но я думаю, что это поможет будущим людям читать эту тему.
Вы можете найти реализацию топологии OpenLayers здесь: http://dev.openlayers.org/sandbox/bjornharrtell/eventbasedtopology2/examples/topology.html
источник
Только подсказки, не думайте, что 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
источник