2016-10-10 55 views
-1

有称为多边形检测的方法: containsLocation(点:经纬度,多边形:多边形)谷歌地图API多边形的多边形,而不是指向多边形碰撞

然而,这种检查点(单个坐标)在一个多边形内,但我需要它来检查一个多边形是否在另一个多边形内。

任何想法?

+1

检查您的多边形是否包含其他所有点? – geocodezip

+0

如果有两个彼此相交的巨型矩形多边形,但是多边形内没有任何点,该怎么办? 这是一个图像,也许会有帮助吗? http://imgur.com/a/trTLK 忽略红色的,我是关于蓝色的。 –

+0

然后它不会工作。我确信有地方的GIS软件可以解决你的问题。 – geocodezip

回答

0

基本上@geocodezip说什么。你不知道你是如何创建多边形的,所以你可能不需要找出所有这些点。但它应该工作不管。

我得到你想检查的多边形的所有路径。然后遍历这些路径,获取所有点并将它们添加到数组中。然后遍历该数组,检查每个点是否落在另一个多边形内。

var paths = polygon1.getPaths(); 
var points = []; 

paths.forEach(function(path) { 
    path.forEach(function(point) { 
     points.push(point); 
    }); 
}); 

for (var i = 0; i < points.length; i++) { 
    if (!google.maps.geometry.poly.containsLocation(points[i], polygon2)) { 
     alert('this point is not in the other polygon: ' + points[i].toString()); 
     break; 
    } 
} 
+0

如果有两个相互相交的巨型矩形多边形,但没有任何点在多边形?这是一张图片,可能会有帮助吗? http://imgur.com/a/trTLK忽略红色的,我正在谈论蓝色的。 –