Google Maps v3 - 在拖动时更新标记

时间:2012-05-16 20:38:08

标签: jquery google-maps maps

当我拖动我自己位置的标记时,它应该更新其他标记,因为我使用半径。因此,如果我拖动我的位置,它应该删除半径之外的标记并在半径内添加标记。它做到了这一点,但它继续添加相同的标记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  
        } 
    }   
});             

});

1 个答案:

答案 0 :(得分:2)

API文档声明拖动标记时会反复触发“拖动”事件。所以我认为它连续几次快速调用getevents()

您应该使用'dragend',但缺点是它可能会在地理编码器运行时引入标记延迟。 (如果这成为问题,请尝试将getevents留在地理编码器调用之外?)