google-maps – google maps v3:检查点是否存在于多边形中

您好我正在寻找一种方法来检查一个点是否存在于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);

但它不断出现的错误:未捕获ReferenceError:rightShoulderFront未定义

解决这个问题的一个算​​法是射线投射。见解释here

您可以在Google Maps JS API V3 here中找到实施此代码的代码。

HTH。

http://stackoverflow.com/questions/6522484/google-maps-v3-check-if-point-exists-in-polygon

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:google-maps – google maps v3:检查点是否存在于多边形中