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

3
我的目标是检测一个标记是否在一个奇形怪状的多边形对象内部(考虑25个不同的点)。我注意到LatLngBounds属性仅包含两组LatLngs,即使使用了.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个回答

5

多边形的边界是一个矩形。如果您想检测标记是否在多边形中,请使用google.maps.geometry.poly命名空间中的containsLocation函数,将其传递给定多边形和标记位置。

containsLocation(point: LatLng, polygon: Polygon) | boolean | 计算给定点是否在指定多边形内。


请问为什么上述代码会返回以下错误:Uncaught TypeError: Object [object Object] has no method 'get'我已经按照以下方式导入了命名空间:<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=false&libraries=drawing,geometry"></script>以下是翻译后的文本,请勿解释其含义。 - Ray Suelzer
你是否包含了geometry library - geocodezip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接