取消OpenLayers.如果用户开始拖拽地图,映射当前的panTo补间

Canceling an OpenLayers.Map current panTo tween if user begins dragging map

本文关键字:映射 补间 panTo 地图 如果 OpenLayers 用户 开始 取消      更新时间:2023-09-26

我注意到,如果用户在panTo函数完成之前拖动地图,地图将继续在先前的平移方向上平移。

这里有一个快速的调整,使用较长的平移时间,使效果更容易重现:

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

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

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

我修复了它,虽然我不确定这是否是最好的方法。基本上,我只是打了个电话给万圣节。在map的moveend事件中停止,但也将panTween的回调设置为null,否则,循环继续——参见OpenLayers。渐变停止函数: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/