在Google地图中获取多边形内的多边形

Pra*_*een 3 google-maps polygons google-maps-api-3

借助@ Dr.Molle的答案,我学会了在Google地图上进行免费手绘。现在我正在尝试在多边形内绘制多边形,例如下面的SS

在此处输入图片说明

我想用黄色和绿色标记多边形within the black

我不确定这是否可行。请阐明此问题。

更新:在进一步的研究中,我了解了一种称为的方法该方法用于查找给定的经纬度点是否在多边形内。containsLocation(point, polygons)

但是遗憾的是,没有默认方法可以检查Google地图提供的多边形内的多边形:(

Chr*_*ith 6

您可以通过遍历内部多边形的每个点并使用containsLocation()测试多边形是否包含在外部多边形中来检查该多边形是否在另一个多边形内。

var isPolygonInsidePolygon = function (innerPolygon, outerPolygon) {
    var pointsInside = 0;
    var pointsOutside = 0;
    innerPolygon.getPath().getArray().map(function (x) { 
        (google.maps.geometry.poly.containsLocation(x, outerPolygon)) ? pointsInside++ : pointsOutside++;
    });
    return (pointsOutside > 0) ? false : true;
};
Run Code Online (Sandbox Code Playgroud)

JavaScript map()函数可能无法在IE8或更低版本的旧版浏览器中使用。