【问题标题】:Google Maps API v3 'dragend' event fires before maps finishes slidingGoogle Maps API v3 'dragend' 事件在地图完成滑动之前触发
【发布时间】:2017-04-23 19:38:24
【问题描述】:

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

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

【问题讨论】:

    标签: events google-maps google-maps-api-3 mouseevent


    【解决方案1】:

    idle 事件怎么样,它在最后只触发一次(与center_changedbounds_changed 不同)。来自the docs

    当地图在平移或平移后空闲时触发此事件 缩放。

    【讨论】:

    • 我觉得自己很笨。非常感谢你。虽然在滑动停止后它只有一点延迟(可能是半秒),但它非常适合我的应用程序。上帝保佑!
    • 并添加一些有用的东西:'idle' 事件是完美的,因为即使拖动还没有结束它也会被触发(即你还没有释放鼠标,但是平移/鼠标移动已经停止)
    【解决方案2】:

    尝试使用idle 事件。链接到docs

    当地图在平移或平移后空闲时触发此事件 缩放。

    如果您希望 idle 事件仅在 dragend 之后触发,请尝试下面的 sn-p。

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

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 2013-08-25
      • 2011-09-23
      • 2012-10-17
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      相关资源
      最近更新 更多