Google 地图 API v3 "dragend"事件在地图完成滑动之前触发



我注意到,当你拖动地图时,如果你以加速移动的方式拖动,在你释放鼠标后,地图会有某种动量,它会在短时间内保持滑动,但是当你释放鼠标时会触发"dragend"事件(在我看来,这似乎是正确的)。

但是,如何获得地图完成滑行的确切时刻呢?我对"center_changed"/"bounds_changed"解决方案不感兴趣,因为我需要对事件发出 XHR 请求,并处理一些数据。

idle事件怎么样,它只在最后触发一次(与 center_changedbounds_changed 不同)。从文档中:

当地图在平移或 缩放。

尝试使用idle事件。链接到文档。

当地图在平移或 缩放。

如果您希望空闲事件仅在 dragend 之后触发,请尝试下面的代码片段。

此代码在触发dragendidle事件后将坐标打印到控制台。

mapObj.addListener('dragend', function () {
    var idleListener = mapObj.addListener('idle', function () {
        google.maps.event.removeListener(idleListener);
        console.log(mapObj.getCenter().lat()); 
        console.log(mapObj.getCenter().lng());
    });
});

最新更新