自己誘惑でポリゴンを修復する方法は?
-
28-09-2019 - |
質問
GEOを使用してポリゴンから自己面接を削除する方法はありますか?
解決
だから、私は自分で質問に答えなければなりません。多分それは誰かを助けるでしょう。
GEOS :: Operation :: Buffer :: Bufferopクラスを使用してポリゴンを修理できます。例えば
geos::geom::Geometry * result =
geos::operation::buffer::BufferOp::bufferOp(polygon, 1.0);
あなたはいくつかの良いレシピを見つけることができます JTSトポロジースイートの秘密。
他のヒント
多くの場合、ポイント交差点が許可されるため、変更できます
1 2 4
*--* *
| \ /|
| X |
| / \|
*--* *
6 5 3
に
1 2 4
*--* *
| \ /|
| 3*6|
| / \|
*--* *
8 7 5
ポイント3と6は同じです。ポイント交差が許可されていない場合は、そのうちの1つを少量に移動します。
私の経験では、そのような交差点のほとんどは、ポリゴンの誤った単純化によるものであるため、可能であればソースに戻る方が良いでしょう。
自己攻撃ポリゴンは無効です。したがって、緩衝液は無効な結果をもたらす可能性があります。 GEOで自己攻撃されたポリゴンを修正する方法は見つかりませんでした。 st_makevalid postgisの関数はGEOSを使用します。そのため、ソースコードを調査することができます。
所属していません StackOverflow