我注意到,当你拖动地图时,如果你以加速移动的方式拖动,在你释放鼠标后,地图会有某种动量,它会在短时间内保持滑动,但是当你释放鼠标时会触发"dragend"事件(在我看来,这似乎是正确的)。
但是,如何获得地图完成滑行的确切时刻呢?我对"center_changed"/"bounds_changed"解决方案不感兴趣,因为我需要对事件发出 XHR 请求,并处理一些数据。
idle
事件怎么样,它只在最后触发一次(与 center_changed
和 bounds_changed
不同)。从文档中:
当地图在平移或 缩放。
尝试使用idle
事件。链接到文档。
当地图在平移或 缩放。
如果您希望空闲事件仅在 dragend 之后触发,请尝试下面的代码片段。
此代码在触发dragend
和idle
事件后将坐标打印到控制台。
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());
});
});