我期待找到一种方法来检查一个点是否存在于Google Maps v3(JavaScript)的多边形内。我到处搜索过,到目前为止我发现的唯一解决方案是获取多边形的边界,但所显示的代码似乎只是创建一个矩形并不断扩大其表面积以包含所有相关点。谷歌地图v3:检查点是否存在于多边形
顺便说一句,我不能只使用一个大方块即得到一个多边形边界的原因是,我在地图上有边界多边形,他们不能扩展到对方的领土。
编辑 继续从下面的回复中,我尝试使用我的现有多边形之一实现示例代码,但它只是说它没有被定义,我不知道为什么。
这里是我的声明:
myCoordinates = [
new google.maps.LatLng(0.457301,-0.597382),
new google.maps.LatLng(0.475153,-0.569916),
new google.maps.LatLng(0.494379,-0.563049),
new google.maps.LatLng(0.506738,-0.553436),
new google.maps.LatLng(0.520470,-0.541077),
new google.maps.LatLng(0.531456,-0.536957),
new google.maps.LatLng(0.556174,-0.552063),
new google.maps.LatLng(0.536949,-0.596008),
new google.maps.LatLng(0.503991,-0.612488),
new google.maps.LatLng(0.473780,-0.612488) ];
polyOptions = {
path: myCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.6 };
var rightShoulderFront = new google.maps.Polygon(polyOptions);
rightShoulderFront.setMap(map);
和这里就是我检查了这一点:
var coordinate = selectedmarker.getPosition();
var isWithinPolygon = rightShoulderFront.containsLatLng(coordinate);
console.log(isWithinPolygon);
但它一直想出错误:未捕获的ReferenceError:未定义rightShoulderFront
是否有关于这种方法的使用提出由谷歌的任何限制, 'containsLocation()'? –