Come invertire l'ordine dei vertici nei poligoni?


9

Sto lavorando con una connessione spaziale Oracle in QGIS attraverso la quale accedo e modifico un livello vettoriale. Trovo che quando modifico una geometria, l'ordine dei vertici viene invertito (in senso orario nell'anello esterno) che viene poi segnalato come errore in Oracle.

Sto usando la funzione di combinazione ( http://www.qgis.org/api/classQgsGeometry.html ) tra gli altri nei miei strumenti di modifica, ma noto che ciò accade anche con lo strumento di unione dei poligoni nativo.

Penso che questo riordino in senso orario sia il default in QGIS basato su questo link: https://hub.qgis.org/issues/6283 e mi chiedevo se c'è un modo per invertire in senso antiorario? (preferibilmente con Python)


Non so come fare con Python, ma Oracle Spatial ha la funzione SDO_UTIL.RECTIFY_GEOMETRY che correggerà l'orientamento degli anelli poligonali. docs.oracle.com/cd/B28359_01/appdev.111/b28400/…
travis

Risposte:


1

Forse esagerato, ma questi post potrebbero contenere alcuni suggerimenti utili:

Come posso cambiare la direzione della linea in QGIS?

Cambia la direzione della linea per le linee PostGIS in QGIS o Pgadmin

In PyQGIS il codice menzionato è ancora valido, penso:

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

Poiché QGIS viene fornito con il supporto GRASS, dai un'occhiata a v.edit tools=flip https://grass.osgeo.org/grass64/manuals/v.edit.html

[attuale versione QGIS 2.14.5.LTR]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.