3

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

});

4

1 回答 1

2

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

您应该改用“dragend”,其缺点是在地理编码器运行时可能会导致标记出现延迟。(如果这成为问题,请尝试将 getevents 留在地理编码器调用之外?)

于 2012-05-16T21:32:28.597 回答