Leaflet: 操作終了後のコールバックを伴うmap.fitBounds

作成日 2018年11月28日  ·  3コメント  ·  ソース: Leaflet/Leaflet

map.fitBounds()が操作を終了するたびに、コールバックを追加してから、コールバックを追加すると便利です。 今日、私たちは後で何かを起こすためにmap.once('zoomend moveend', function());を追加することに頼らなければなりません。

たとえば、表示後にマーカーをバウンスさせるには、次のことを行う必要があります。

var marker = getMarker();
map.once('zoomend moveend', ()=>{bounceMarker(marker);});
map.fitBounds(marker.getBounds());

次のようなことをするといいでしょう:
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});

最も参考になるコメント

マップの状態を変更するマップ関数がPromiseを返すと

全てのコメント3件

マップの状態を変更するマップ関数がPromiseを返すと

私がしたことは、マップにメソッドを追加することでした(jquery promiseを使用しますが、簡単に置き換えることができます):

zoomToBounds: function () {
  var promise = $.Deferred();
  this.once("moveend", function () {setTimeout(function () {promise.resolve();}, 20);});
  this.fitBounds.call(this, arguments);
  return promise;
}

$.Deferred()new Promise()置き換えて、プルリクエストを作成できますか?

このページは役に立ちましたか?
0 / 5 - 0 評価