【发布时间】:2011-09-25 05:37:56
【问题描述】:
我正在寻找一种方法来检查点是否存在于 Google Maps v3 (JavaScript) 中的多边形内。我到处搜索,到目前为止我发现的唯一解决方案是获取多边形的边界,但显示的代码似乎只是创建了一个矩形并不断扩大其表面积以包括所有相关点。
顺便说一句,我不能只使用一个大正方形,即获得多边形边界的原因是我在地图上有边界多边形,它们不能扩展到彼此的领土。
编辑 根据下面的回复,我尝试使用我现有的多边形之一来实现示例代码,但它只是说它没有定义,我不知道为什么。
这是我的声明:
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);
但它不断出现错误:Uncaught ReferenceError: rightShoulderFront is not defined
【问题讨论】:
标签: google-maps google-maps-api-3 polygon