检测折线是否与多边形相交



我有一些折线(一个坐标数组,代表一条路线)

我还有一个多边形(由 4 个坐标组成的矩形)

它们用于谷歌地图(API v3)。

--

我需要知道是否有任何折线与多边形相交,如果是,折线是否相交?

我希望有一个函数可以将多边形对象和折线数组发送到其中,因此它将返回相交折线的列表。

例如,要像这样称呼:

var result = checkForIntersects(radiusPoly, polylines);

如果前两条折线相交,则结果可能是"0,1",如果没有折线相交,则结果可能是"。

希望这是有道理的:-)

此处提供了示例多边形和折线:JSfiddle(更新 2018-02-01:抱歉,我刚刚注意到我的示例不再有效。但是坐标就在那里。我想总比没有好。

据我所知,目前没有办法实现我的希望。

可以检测到重叠面,但仅当其中一个点位于多边形内时,折线才能检测到。

简而言之:我找不到一种方法来检测多边形两侧都有点的折线是否正在"接触"多边形。

解决方法是将折线的每个"腿"分成几条线(例如,256 条线,具体取决于您需要的分辨率),并检查这些点中的每一个,以查看它们是否在多边形内。

然而,这对于我需要的东西来说要慢得多,因为它会导致我单独检查数千个点。

此外,它更像是一种黑客而不是解决方案,我不赞成在生产解决方案中这样做。

相关内容

  • 没有找到相关文章

最新更新