我正在使用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
};
其他可以帮助你的链接:两点直线方程,检查两个给定线段是否与相交