我希望找到一种方法来检查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);
Run Code Online (Sandbox Code Playgroud)
这是我要检查的地方:
var coordinate = selectedmarker.getPosition();
var isWithinPolygon = rightShoulderFront.containsLatLng(coordinate);
console.log(isWithinPolygon);
Run Code Online (Sandbox Code Playgroud)
但它不断出现错误:Uncaught ReferenceError:rightShoulderFront未定义