如何检查LineString是否与LineString(或多边形)相交



我正在使用MapBox SDK。我遇到了一个问题。我正在尝试创建一条避开某些区域的路径,这些区域在地图上表示为多边形。我想检查我的LineString是否会与多边形相交。我看到有一个方法outer((,它将多边形的周长作为LineString,但我不确定如何继续。

我需要找到一种方法来给我一个布尔值,无论我的LineString路径是否与周长相交,这意味着我将能够找到另一条路线。

感谢您的帮助。

您可以在函数中实现此线-线相交算法。在段落末尾,您还可以找到一种方法来检查直线是否与线段相交。

使用outer()方法和线-线相交函数,可以检查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
};

其他可以帮助你的链接:两点直线方程,检查两个给定线段是否与相交

相关内容

  • 没有找到相关文章

最新更新