LatLngBounds超过2个参数

时间:2014-05-26 09:19:30

标签: javascript google-maps kml

在我的javascript代码中,我有这样的代码:

var myLocation = new google.maps.LatLng(52.585701,20.453212); 
var allowBounds = new google.maps.LatLngBounds(
   new google.maps.LatLng(52.584903,20.451171),
   new google.maps.LatLng(52.589701,20.463865)
);
if (allowBounds.contains(myLocation)) 
  console.log('allowed');
else
  console.log('disallowed');

它的工作,结果是允许的,因为我只使用2参数allowBounds(southWest和northEast point)。
现在我有kml文件,多边形协调超过2个协调。我想将这些协调用于allowBounds参数。因为我想检查myLocation coordinat是否在多边形位置/区域中。 mybe是这样的:

var allowBounds = new google.maps.LatLngBounds(
   new google.maps.LatLng(52.584903,20.451171),
   new google.maps.LatLng(52.589701,20.463865),
   new google.maps.LatLng(52.629701,20.413865),
   new google.maps.LatLng(52.572190,20.963865)
); 
那可能吗?如果没有,你可以给我一些建议,检查myLocation协调​​是否在多边形区域,不使用google.maps.LatLngBounds ?? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

根据the documentation,你不能在构造函数中放置超过2个坐标。但是,您可以使用.extend(point:LatLng)函数向LatLngBounds对象添加2个以上的坐标。

    var markers = [
        new google.maps.LatLng(1.234, 5.678),
        new google.maps.LatLng(1.234, 5.678),
        new google.maps.LatLng(1.234, 5.678)
    ];

    var bounds = new google.maps.LatLngBounds();
    for (index in markers) {
        bounds.extend(markers[index]);
    }