簡體   English   中英

如何檢查 LineString 是否與 LineString(或多邊形)相交

[英]How to check if a LineString intersects a LineString (or Polygon)

我正在使用 MapBox SDK。 我遇到了一個問題。 我正在嘗試創建一條避開某些區域的路徑,這些區域在 map 上表示為多邊形。 我想檢查我的 LineString 是否會與多邊形相交。 我已經看到有一種方法 external() 可以將多邊形的周長作為 LineString 給我,但是我不確定如何繼續。

我需要找到一種方法給我一個 boolean,無論我的 LineString 路徑是否會與周邊相交,這意味着我將能夠找到替代路線。

任何幫助表示贊賞。

您可以在 function 中實現此線線相交算法 在段落的末尾,您還將找到一種方法來檢查一條線是否與線段相交。

使用outer()方法和 line-line interscection function,您可以檢查LineString是否與Polygon的任何線段相交。

我正在考慮這樣的簽名,但你可以用不同的方式來做:

public boolean lineIntersectsLine(LineString line1, LineString line2){
    //line-line intersection algorithm
};

public boolean lineIntersectsSegment(LineString line, LineString segment){
    //line-line intersection algorithm + check if intersection point is on segment
};

public boolean lineIntersectsPolygon(LineString line, Polygon polygon){
    //lineIntersectSegment for each segment of polygon
};

其他可以幫助您的鏈接: 來自 2 點的直線方程檢查兩個給定的線段是否相交

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM