Leaflet: map.fitBounds con devolución de llamada después del final de la operación

Creado en 28 nov. 2018  ·  3Comentarios  ·  Fuente: Leaflet/Leaflet

Sería bueno agregar una devolución de llamada / luego cada vez que map.fitBounds () finalice su operación. Hoy tenemos que confiar en agregar map.once('zoomend moveend', function()); para que algo suceda después.

Por ejemplo, para hacer que un marcador rebote después de aparecer, tengo que:

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

Sería bueno hacer algo como:
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});

Comentario más útil

Sería genial si las funciones de mapa que modifican el estado del mapa devuelvan Promise

Todos 3 comentarios

Sería genial si las funciones de mapa que modifican el estado del mapa devuelvan Promise

Lo que hice fue agregar un método a mi mapa (usa la promesa jquery, pero se puede reemplazar fácilmente):

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

¿Puedes reemplazar $.Deferred() con new Promise() y luego crear una solicitud de extracción?

¿Fue útil esta página
0 / 5 - 0 calificaciones