扩展多边形的界限 - Google Maps V3 Javascript API

时间:2013-04-19 22:27:08

标签: google-maps-api-3

我的目标是检测标记是否在奇形状的多边形对象内(想想25个不同的点)。我注意到LatLngBounds属性只包含两组LatLng,即使在使用.extend函数之后,例如:

((34.347971491244955,-122.40966796875),(34.829586636768205,-120.9649658203125))

这是正常行为吗?

下面的代码是我正在构建的程序的一小部分,但包含有关我如何使用extend函数的相关信息。如果我不能使用.extend()和.contains()的组合,有没有人知道如何检测标记是否在奇形怪状的多边形内?

var coordinates = (polygon.getPath().getArray()); //get            
var bounds = new google.maps.LatLngBounds();


function extendBounds(bounds, coordinates) {
    for (b in coordinates) {
        bounds.extend(coordinates[b]);            
    };
    console.log(bounds.toString());
};

1 个答案:

答案 0 :(得分:5)

多边形的边界是一个矩形。如果要检测标记是否在多边形中,请使用google.maps.geometry.poly namespace中的containsLocation函数,向其传递多边形和标记的位置

  

containsLocation(point:LatLng,polygon:Polygon)|布尔值|计算给定点是否位于指定的多边形内。