在我的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 ??
谢谢你的帮助。
答案 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]);
}