Почему Google Maps containsLocation никогда не находит точку внутри моего полигона?

#google-maps #google-maps-api-3

#google-карты #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. Я не уверен, правильно ли инициализирован ваш полигон. Вы не используете google.maps.PolygonOptions .

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

3. Хорошо, я понимаю, что вы сейчас говорите, в настоящее время я проверяю ваши отзывы здесь, но пока безуспешно. htinteractive.com/crime_map_fairview2.html

4. Что вы пробовали? Все еще есть неправильная строка var pv = new google.maps.Polygon(fairview);

5. Теперь я вернулся, когда stackoverflow снова запущен. @Dr.Molle если вы опубликуете свой комментарий в качестве ответа, я отмечу его. Сейчас он работает с этим ответом. Спасибо за вашу помощь.

Ответ №1:

Как указал доктор Молл, я неправильно создавал свой полигон.

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