2016-12-21 3 views
1

OpenLayers 3.20では、ol.Viewでアニメーションが進行中にchange:resolutionイベントが複数回発生します。そのバージョンに入る前は、以前は一度だけ起動されていました。 change:centerについても同様です。OL3のアニメーションの後で 'end'解像度を取得する方法は?

私の質問はこれです:アニメーションがいつ始まるかを知る方法はありますか(それは何らかのイベントリスナーをバインドするフックになります)、そこからアニメーションの最後に解像度が得られますか?基本的に、3.20より前の以前の動作を得ることが可能かどうかを知りたい。

答えて

0

あなたがol.View#animate —を使用している場合は、[はい、方法は、アニメーションが終了したときにコールバックを使用あります:

map.getView().animate({ 
    center: ol.proj.fromLonLat([37.6178, 55.7517]), 
    zoom: 5 
}, animateCallback); 

function animateCallback (complete) { 
    if (complete) { 
    console.log(map.getView().getResolution()); 
    console.log(map.getView().getZoom()); 
    } 
} 

https://jsfiddle.net/jonataswalker/jr0d7dLb/

+0

私はアニメーションが手動で行われている場合に動作しますが、どのような場合、私はしたいですユーザーがズームコントロールまたはマウスホイールを使用しているときにフックするには? –

+0

実際、あなただけがアニメーションを開始しました。まあ、それはライブラリに追加することができるように見えます。 –

関連する問題