2011-07-05 7 views
2

JTSでLineStringが交差しているかどうかを調べる方法はありますか?次の画像のように、線がそれ自身と交差するかどうかを見つけることができますか?私はちょうどその4つのエッジの座標を与えることによって、その線を作成しています。事前にJTSでラインが交差しているかどうかを調べる方法は?

enter image description here

感謝。

答えて

2

それ自体は交差できません。あなたには "行"はありません。あなたは4つの行を持っています。それらのうちの2つが互いに交差しているかどうかを確認する必要があります。

交差を明示的に計算するか、座標がどのようにラベル付けされるかを調べることができます。あなたが右下がりに開始し、反時計回りにA、B、C、Dの点に番号を付けると、ACとBDを結ぶ線がある場合に交差点があることが分かります。彼らがAB、BC、CD、DAを接続している場合、共通点を除いて交点はありません。

+0

多角形または線形描画はどうですか? LineStringの代わりにポリゴンを作成する場合は、同じことをする必要がありますか、それともtrueまたはfalseを返す単純な関数がありますか? – Piscean

+0

単純ではありません。私はあなたが投稿した場合にのみ回答しました。しかし、ポリゴンに単純な接続性がある場合、ノードiが(i + 1)に接続する場合、交差点は存在しません。シンプルではないものがいくつかある場合、どこに交差点があるかを見ることができます。 – duffymo

0

LineStringがそのように交差する場合、isSimple()falseを返すため、Simple Geometriesでは自己交差が許可されません。

関連する問題