谷歌将api多边形映射到多边形而不是指向多边形碰撞

时间:2016-10-10 13:54:06

标签: javascript google-maps-api-3

有一种多边形检测方法叫做: containsLocation(point:LatLng,polygon:Polygon)

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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;
    }
}