如果用户开始拖动地图,则取消OpenLayers.Map当前panTo补间

时间:2014-06-02 16:13:09

标签: javascript html google-maps openlayers

我注意到如果用户在panTo功能完成之前拖动地图,地图将继续在上一个平移方向上平移。

这是一个具有较高播放持续时间的快速混音器,可以轻松复制效果:

http://jsfiddle.net/a8kK4/58/

map.panTo( xy ); // code for jsfiddle link

如果用户开始拖动地图,是否有任何直接的方法可以取消当前的平移事件?

1 个答案:

答案 0 :(得分:1)

我修好了,虽然我不确定这是不是最好的方法。基本上,我所做的是在map的moveend事件中调用panTween.stop,但也将panTween的回调设置为null,否则循环继续 - 请参阅OpenLayers.Tween stop `function here:http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Tween.js

总之,我在init函数的末尾添加了这三行:

map.events.register('moveend', map, function(){           
        this.panTween.callbacks=null;
        this.panTween.stop();            
});

更新了小提琴:http://jsfiddle.net/a8kK4/62/