我有一些折线(一组坐标,代表一条路线)
我也有一个多边形(由4个坐标组成的可识别矩形)
它们在Google Maps(API v3)中使用。
-
我需要知道是否有任何一条折线与该多边形相交,如果有,那条折线是否相交?
我希望可以将多边形对象和折线数组发送到的函数,这样它将返回相交折线的列表。
例如被称为:
var result = checkForIntersects(radiusPoly, polylines);
如果前两条折线相交,则结果为“ 0,1”,如果没有相交,则结果为“”。
希望有道理:-)
示例多边形和折线可在此处获得:
JSfiddle
(更新2018-02-01:对不起,我只是注意到我的示例不再有效。但是坐标在那里。我想总比没有好。)
最佳答案
据我所知,目前无法实现我所希望的。
可以检测到重叠的多边形,但是只有在其中一个点确实位于多边形内部时,折线才会被检测到。
简而言之:我无法找到一种方法来检测在多边形的两边都具有点的折线是否正好“接触”了该多边形。
一种解决方法是采取折线的每个“分支”,分成多条线(例如256,具体取决于所需的分辨率),然后检查这些点中的每一个,以查看它们是否在多边形内。
但是,这对于我需要的东西来说要慢很多,因为这将导致我成千上万的点需要单独检查。
而且,它更像是一种破解而不是解决方案,我不赞成在生产解决方案中使用。
关于javascript - 检测折线是否与多边形相交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21910123/