我有一些折线(一个坐标数组,代表一条路线)
我还有一个多边形(由 4 个坐标组成的矩形)
它们用于谷歌地图(API v3)。
--
我需要知道是否有任何折线与多边形相交,如果是,折线是否相交?
我希望有一个函数可以将多边形对象和折线数组发送到其中,因此它将返回相交折线的列表。
例如,要像这样称呼:
var result = checkForIntersects(radiusPoly, polylines);
如果前两条折线相交,则结果可能是"0,1",如果没有折线相交,则结果可能是"。
希望这是有道理的:-)
此处提供了示例多边形和折线:JSfiddle(更新 2018-02-01:抱歉,我刚刚注意到我的示例不再有效。但是坐标就在那里。我想总比没有好。
据我所知,目前没有办法实现我的希望。
可以检测到重叠面,但仅当其中一个点位于多边形内时,折线才能检测到。
简而言之:我找不到一种方法来检测多边形两侧都有点的折线是否正在"接触"多边形。
解决方法是将折线的每个"腿"分成几条线(例如,256 条线,具体取决于您需要的分辨率),并检查这些点中的每一个,以查看它们是否在多边形内。
然而,这对于我需要的东西来说要慢得多,因为它会导致我单独检查数千个点。
此外,它更像是一种黑客而不是解决方案,我不赞成在生产解决方案中这样做。