Как изменить порядок вершин в многоугольниках?

9

Я работаю с пространственным соединением Oracle в QGIS, через которое я получаю доступ и редактирую векторный слой. Я обнаружил, что когда я редактирую геометрию, порядок вершин меняется на обратный (по часовой стрелке во внешнем кольце), который затем помечается как ошибка в oracle.

Я использую функцию объединения ( http://www.qgis.org/api/classQgsGeometry.html ) среди других в моих собственных инструментах редактирования, но я замечаю, что это также происходит с инструментом встроенных полигонов слияния.

Я думаю, что это повторное упорядочение по часовой стрелке является значением по умолчанию в QGIS, основанном на этой ссылке: https://hub.qgis.org/issues/6283, и было интересно, есть ли способ изменить его на против часовой стрелки? (желательно с питоном)

user24956
источник
Я не знаю, как это сделать с python, но Oracle Spatial имеет функцию SDO_UTIL.RECTIFY_GEOMETRY, которая будет корректировать ориентацию многоугольных колец. docs.oracle.com/cd/B28359_01/appdev.111/b28400/…
travis

Ответы:

1

Возможно, перестарались, но этот пост может содержать несколько полезных советов:

Как я могу изменить направление линии в QGIS?

Переключение направления линий для PostGIS-линий в QGIS или Pgadmin

В PyQGIS упомянутый код все еще действует, я думаю:

geom = feature.geometry()
nodes = geom.asPolyline()
nodes.reverse() 
newgeom = QgsGeometry.fromPolyline(nodes)
layer.changeGeometry(feature.id(),newgeom)

Поскольку QGIS поставляется с поддержкой GRASS, загляните на v.edit tools=flip https://grass.osgeo.org/grass64/manuals/v.edit.html.

[текущая версия QGIS 2.14.5.LTR]

Йохен Шварце
источник