-1
var marker = new google.maps.Marker({ 
    position: location, 
    map: map, 
    draggable: true 
}); 
google.maps.event.addListener(marker, 'dragend', function (event) { 
    var result = google.maps.geometry.poly.containsLocation(event.latLng, polygonCoords); 
    console.log(result); 
}); 

Расположение местоположение маркера и многоугольникКоорды - это координаты многоугольника (оба определены ранее). Я перетаскиваю маркер, и после завершения перетаскивания я слушаю событие «dragend» и используя библиотеку геометрии карт Google, чтобы проверить, что новое местоположение маркера находится в области многоугольника или нет. Но я получаю следующее сообщение об ошибке:Как отслеживать местоположение маркера в пределах области многоугольника на событии перетаскивания

Uncaught TypeError: undefined is not a function 

Click Here to see the image

+0

Просьба предоставить [mcve], который демонстрирует проблему. – geocodezip

ответ

0

Ваша проблема может быть связана с тем, polygonCoords в не внутри event.addlistener Запись видна

вы можете попробовать использовать Клоузер .. envrapping вы используете внутреннюю функцию слушателя с надлежащим значением

var function myFunction(marker, myPolyCoords) { 

    google.maps.event.addListener(marker, 'dragend', function (event) { 
    var result = google.maps.geometry.poly.containsLocation(event.latLng, myPolyCoords); 
    console.log(result); 
    }); 

} 


myFunction(myMarker, polygonCoords); 
+0

Я решил проблему. Я передавал «myPolyCoords» как массив объектов, но на самом деле нам нужно передать объект многоугольника. –

Смежные вопросы