6

GEOS を使用してポリゴンから自己交差を削除する方法はありますか?

4

3 に答える 3

7

だから、私は自分で質問に答えなければなりません。多分それは誰かを助けるでしょう。

geos::operation::buffer::BufferOp クラスを使用してポリゴンを修復できます。例えば

geos::geom::Geometry * result = 
                       geos::operation::buffer::BufferOp::bufferOp(polygon, 1.0);

Secrets of the JTS Topology Suite で、さらに優れたレシピを見つけることができます。

于 2010-12-08T16:56:59.570 に答える
1

自己交差ポリゴンは無効です。したがって、BufferOp は無効な結果を返す可能性があります。ジオで自己交差したポリゴンを修正する方法が見つかりませんでした。PostGIS の st_makevalid 関数は geos を使用します。そのため、ソースコードを調査することができます。

于 2011-11-07T11:58:56.763 に答える
1

多くの場合、点の交差が許可されているため、変更できます

1  2   4
*--*   *       
|   \ /|
|    X |
|   / \|
*--*   *
6  5   3

1  2   4
*--*   *       
|   \ /|
|   3*6|
|   / \|
*--*   *
8  7   5

ここで、ポイント 3 と 6 は同じです。点の交点が許可されていない場合は、そのうちの 1 つを少し移動します。

私の経験では、このような交差点のほとんどは、ポリゴンの単純化の誤りによるものであるため、可能であればソースに戻ることをお勧めします。

于 2010-11-24T16:33:39.653 に答える