2011-07-05 67 views
2

有什麼方法可以找出LineString是否在JTS中相交?就像在下面的圖片中,我如何找到這條線相交?我通過給出它的4條邊的座標來創建這條線。如何找到一條線在JTS中相交?

enter image description here

在此先感謝。

回答

2

沒有線可以相交。你沒有「一條線」;你有四條線。你想看看他們中的兩個是否相互交叉。

您可以明確計算交點或查看座標如何標記。如果您從右下角開始並通過逆時針方向將點編號爲A,B,C和D,則可以看到如果線路連接了AC和BD,則您有交叉點。如果他們連接AB,BC,CD和DA,除了公共點之外,不可能有交集。

+0

以及多邊形或LinearRing?如果我將創建一個多邊形而不是LineString,那麼我需要做同樣的事情還是有任何簡單的函數返回true或false? – Piscean

+0

不那麼簡單;我只回答你發佈的案例。但它是一樣的想法 - 如果多邊形有一個簡單的連接 - 我連接到(i + 1)的節點 - 那麼就沒有交集。如果你有幾個不那麼簡單,我可以看到有一個十字路口。 – duffymo

0

如果一個LineString像這樣相交,isSimple()將返回false,因爲Simple Geometries不允許自交。

相關問題