Comment inverser l'ordre des sommets dans les polygones?


9

Je travaille avec une connexion spatiale Oracle dans QGIS via laquelle j'accède et édite une couche vectorielle. Je trouve que lorsque je modifie une géométrie, l'ordre des sommets est inversé (dans le sens des aiguilles d'une montre dans l'anneau extérieur) qui est ensuite signalé comme une erreur dans Oracle.

J'utilise la fonction de combinaison ( http://www.qgis.org/api/classQgsGeometry.html ) entre autres dans mes propres outils d'édition, mais je remarque que cela se produit également avec l'outil natif de polygones de fusion.

Je pense que cette réorganisation dans le sens horaire est la valeur par défaut dans QGIS sur la base de ce lien: https://hub.qgis.org/issues/6283 et je me demandais s'il y avait un moyen de l'inverser dans le sens antihoraire? (de préférence avec python)


Je ne sais pas comment faire cela avec python, mais Oracle Spatial a la fonction SDO_UTIL.RECTIFY_GEOMETRY qui corrigera l'orientation des anneaux polygonaux. docs.oracle.com/cd/B28359_01/appdev.111/b28400/...
TRAVIS

Réponses:


1

Peut-être exagéré, mais ces articles peuvent contenir des conseils utiles:

Comment puis-je changer la direction de la ligne dans QGIS?

Changer la direction des lignes pour les lignes PostGIS dans QGIS ou Pgadmin

Dans PyQGIS, le code mentionné est toujours valide, je pense:

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

Étant donné que QGIS est livré avec le support GRASS, consultez v.edit tools=flip https://grass.osgeo.org/grass64/manuals/v.edit.html

[version actuelle de QGIS 2.14.5.LTR]

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.