为什么Google Maps containsLocation永远不会在我的多边形中找到一个点?

时间:2014-06-23 20:22:44

标签: google-maps google-maps-api-3

我遇到以下代码的问题,因为我的点永远不会使用google.maps.geometry.poly.containsLocation在多边形内找到一个点。您可以看到完整的代码,并且多边形中确实存在点http://htinteractive.com/crime_map_fairview.html但是在控制台中,您将看到根据containsLocation函数没有发现任何点位于多边形中。

我觉得我可能没有正确地将一个值传递给containsLocation函数,但到目前为止我在文档中找到的这似乎是正确的。

var myLatlng = new google.maps.LatLng(lat,lon);
        fairview = [
            new google.maps.LatLng(39.161536, -86.535107),
            new google.maps.LatLng(39.17885, -86.534825),
            new google.maps.LatLng(39.179068, -86.547164),
            new google.maps.LatLng(39.180989, -86.551803),
            new google.maps.LatLng(39.181546, -86.556001),
            new google.maps.LatLng(39.170956, -86.569335),
            new google.maps.LatLng(39.158487, -86.570365),
            new google.maps.LatLng(39.161482, -86.566674),
            new google.maps.LatLng(39.157156, -86.559807),
            new google.maps.LatLng(39.160084, -86.553961),
            new google.maps.LatLng(39.160317, -86.550700),
            new google.maps.LatLng(39.160733, -86.548464),
            new google.maps.LatLng(39.161482, -86.546172),
            new google.maps.LatLng(39.161536, -86.535107)
          ];
          var pv = new google.maps.Polygon(fairview);
        if (google.maps.geometry.poly.containsLocation(myLatlng, pv)) {
            console.log("Location Found in Polygon!!!!! " + myLatlng.lat() + " " + myLatlng.lng());
        } else {
            console.log(":( " + myLatlng.lat() + " " + myLatlng.lng());
        }

1 个答案:

答案 0 :(得分:1)

正如Molle博士指出的那样,我错误地实例化了我的多边形。

var pv = new google.maps.Polygon({path:fairview});