当我拖动我自己位置的标记时,它应该更新其他标记,因为我使用半径。因此,如果我拖动我的位置,它应该删除半径之外的标记并在半径内添加标记。它做到了这一点,但它继续添加相同的标记8次左右,当然没有人想要它。
google.maps.event.addListener(marker, 'drag', function() {
geocoder.geocode({'latLng': marker.getPosition()}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0])
{
$('#address').val(results[0].formatted_address);
ownlat = marker.getPosition().lat();
ownlng = marker.getPosition().lng();
clearOverlays(); //deletes old markers
getevents(); //adds new markers
}
}
});
});
答案 0 :(得分:2)
API文档声明拖动标记时会反复触发“拖动”事件。所以我认为它连续几次快速调用getevents()
。
您应该使用'dragend',但缺点是它可能会在地理编码器运行时引入标记延迟。 (如果这成为问题,请尝试将getevents留在地理编码器调用之外?)