仅当Google地图空闲了几秒钟时才会触发火灾事件

时间:2012-05-28 01:19:56

标签: javascript google-maps google-maps-api-3

我正在编写一个谷歌地图v3 javascript应用程序,当地图边界发生变化时,该应用程序会获取新标记。为此,我使用" bounds_changed"监听器。 问题是我想限制我的电话,并且不想在每次用户更改地图视口时触发它们。如果地图已经更改并且空闲时间为1秒,我该如何触发此呼叫?

谢谢! 保罗

2 个答案:

答案 0 :(得分:4)

您为超时声明了一个全局变量

var changetm = null;

然后如果你打电话

function event_handle(e){

    clearTimeout(changetm);
    changetm = setTimeout("fetch_new_markers()", 1000);

}

这样做可以清除先前的呼叫(如果存在),然后将下一个呼叫添加到队列中,等待1000 milisecon(1秒)并调用它。如果在1秒内某个事件被触发,它将再次清除等待队列......

tadah

答案 1 :(得分:0)

最简单的方法是使用setTimeout() and clearTimeout()来防止“更新”调用触发,直到地图空闲了所需的时间长度。

您可以实现bounds_changed侦听器,以便它执行以下操作:

function loadMarkersForCurrentMapBounds() {
    //code to load markers from your server goes here
}

function boundsChanged() {
    //...

    if (window.scheduledUpdate) {
        clearTimeout(window.scheduledUpdate);
    }
    window.scheduledUpdate = setTimeout(loadMarkersForCurrentMapBounds, 1000);

    //...
}