Leaflet: map.fitBounds mit Rückruf nach Betriebsende

Erstellt am 28. Nov. 2018  ·  3Kommentare  ·  Quelle: Leaflet/Leaflet

Es wäre schön, wenn map.fitBounds() seinen Vorgang beendet hat, einen Rückruf/dann hinzuzufügen. Heute müssen wir uns darauf verlassen, dass wir map.once('zoomend moveend', function()); hinzufügen, damit danach etwas passiert.

Um beispielsweise einen Marker nach dem Erscheinen abprallen zu lassen, muss ich:

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

Wäre schön, so etwas zu machen:
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});

Hilfreichster Kommentar

Es wäre toll, wenn Kartenfunktionen, die den Kartenstatus ändern, Promise

Alle 3 Kommentare

Es wäre toll, wenn Kartenfunktionen, die den Kartenstatus ändern, Promise

Was ich getan habe, war, meiner Karte eine Methode hinzuzufügen (verwendet jquery-Versprechen, kann aber leicht ersetzt werden):

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

Können Sie $.Deferred() durch new Promise() ersetzen und dann einen Pull-Request erstellen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen