2010-09-29 54 views
2

我使用的谷歌地圖的JavaScript API的V3帶來更多的標記,因爲地圖邊界被改變。問題是,當我拖動地圖一段時間,然後結束拖動大量事件一次觸發。當地圖被拖拽時,它們似乎排起了長隊。谷歌地圖get_bounds事件觸發多次

有什麼方法可以添加計時器來阻止這種情況,還是必須使用zoom_changed和dragend事件作爲解決方法?

這裏是relivant代碼:

google.maps.event.addListener(map, 'bounds_changed', function() { 
    var bounds_url = map.getBounds().toUrlValue(); 
    $.ajax({ 
    //... 
    }); 
}); 
+1

我面臨同樣的問題,並使用了zoom_changed和drageng – 2010-09-29 07:34:30

回答

1

添加超時,該事件觸發後運行代碼爲500ms,每次事件觸發清除超時,並創建一個新的。

google.maps.event.addListener(map, 'bounds_changed', (function() { 
    var timer; 
    return function() { 
     clearTimeout(timer); 
     timer = setTimeout(function() { 
      // here goes an ajax call 
     }, 500); 
    } 
}())); 
1

這被稱爲錯誤,谷歌團隊建議使用:

google.maps.event.addListener(地圖, '空閒',函數(){ });