我注意到如果用户在panTo功能完成之前拖动地图,地图将继续在上一个平移方向上平移。
这是一个具有较高播放持续时间的快速混音器,可以轻松复制效果:
map.panTo( xy ); // code for jsfiddle link
如果用户开始拖动地图,是否有任何直接的方法可以取消当前的平移事件?
答案 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();
});