簡體   English   中英

取消OpenLayers.Map當前panTo補間(如果用戶開始拖動地圖)

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

我注意到,如果用戶在panTo函數完成之前拖動地圖,則地圖將繼續沿前一個平移方向平移。

這是一個快速的jsfiddle,具有較高的平移持續時間,以使效果易於再現:

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

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

如果用戶開始拖動地圖,是否有任何直接取消當前平移事件的方法?

我已修復它,盡管我不確定這是否是最好的方法。 基本上,我所做的是在地圖的moveend事件中調用panTween.stop,但還將panTween的回調設置為null,否則循環將繼續-請參見OpenLayers.Tween stop`函數: 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM