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

时间:2014-02-20 14:04:17

标签: javascript google-maps-api-3 polygon polyline intersect

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

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

它们用于Google地图(API v3)。

-

我需要知道这些多边形线是否与多边形相交,如果是,那么折线是否相交?

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

例如被称为:

var result = checkForIntersects(radiusPoly, polylines);

如果前两条折线相交,结果可能为“0,1”,如果没有相交,则结果为“”。

希望有道理: - )

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

1 个答案:

答案 0 :(得分:0)

据我所知,目前无法实现我所希望的目标。

可以检测到重叠多边形,但只有在其中一个点确实位于多边形内时才能检测到多边形。

简而言之:我无法找到一种方法来检测多边形两侧有多少点的折线,是否真的“触摸”#34;多边形。

解决方法本来可以采取每条腿"折线,分成几行(例如256,取决于你需要的分辨率),并检查每个点,看看它们是否在多边形内。

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

此外,它更像是一个黑客攻击而不是一个解决方案,而且我不赞成在生产解决方案中使用它。