ポリゴンの頂点の順序を逆にする方法は?


9

ベクターレイヤーにアクセスして編集するQGISでOracle空間接続を使用しています。ジオメトリを編集すると、頂点の順序が逆になり(外側のリングで時計回りに)、Oracleでエラーとしてフラグが立てられます。

独自の編集ツールで結合機能(http://www.qgis.org/api/classQgsGeometry.html)を使用していますが、これはネイティブのポリゴン統合ツールでも発生していることに気づきました。

私はこの時計回りの再順序付けがこのリンクに基づくQGISのデフォルトであると思いますhttps : //hub.qgis.org/issues/6283そして、時計回りにそれを逆にする方法があるかどうか疑問に思っていましたか?(できればpythonを使用)


Pythonでこれを行う方法はわかりませんが、Oracle Spatialには、ポリゴンリングの方向を修正するSDO_UTIL.RECTIFY_GEOMETRY関数があります。docs.oracle.com/cd/B28359_01/appdev.111/b28400/…–
トラビス

回答:


1

多分やりすぎかもしれませんが、これらの投稿にはいくつかの役立つヒントが含まれている可能性があります:

QGISでラインの方向を切り替えるにはどうすればよいですか?

QGISまたはPgadminでPostGISラインのライン方向を切り替える

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]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.