谷歌地图API v3的“dragend”事件在地图完成滑动之前触发

3
我注意到当你拖动地图时,如果你以加速的方式拖动,释放鼠标后地图会有一定的惯性,在短时间内继续滑动,但是当你释放鼠标时,“dragend”事件被触发(这对我来说似乎是正确的)。
但是,你如何获取地图滑动结束的确切时间呢?我不感兴趣“center_changed” / “bounds_changed”解决方案,因为我需要在事件上进行XHR请求,并处理一些数据。
2个回答

6

那么关于idle事件,它只在结束时触发一次(与center_changedbounds_changed不同)。来自文档

当地图在平移或缩放后变为空闲状态时,会触发此事件。


我感觉很蠢。非常感谢你。虽然在滑动停止后有一点延迟(大约半秒钟),但对我的应用程序来说完美无缺。上帝保佑! - Tiborg
1
并且要添加一些有用的内容:'idle'事件非常完美,因为即使拖动尚未结束(即您尚未释放鼠标,但平移/鼠标移动已停止),它也会触发。 - Tiborg

3

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

当地图在平移或缩放后变为空闲状态时,将触发此事件。

如果您希望仅在拖动结束后触发空闲事件,请尝试以下片段。

此代码在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());
    });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接