Leaflet: map.fitBounds avec rappel après la fin de l'opération

Créé le 28 nov. 2018  ·  3Commentaires  ·  Source: Leaflet/Leaflet

Ce serait bien d'ajouter un rappel/puis chaque fois que map.fitBounds () a terminé son opération. Aujourd'hui, nous devons compter sur l'ajout de map.once('zoomend moveend', function()); pour que quelque chose se produise après.

Par exemple, pour faire rebondir un marqueur après son apparition, je dois :

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

Ce serait bien de faire quelque chose comme :
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});

Commentaire le plus utile

Ce serait formidable si la carte fonctionne qui modifie l'état de la carte, renvoie Promise

Tous les 3 commentaires

Ce serait formidable si la carte fonctionne qui modifie l'état de la carte, renvoie Promise

Ce que j'ai fait, c'est d'ajouter une méthode à ma carte (utilise jquery promise, mais peut être facilement remplacée):

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

Pouvez-vous remplacer $.Deferred() par new Promise() Et ensuite créer une pull request ?

Cette page vous a été utile?
0 / 5 - 0 notes