Cómo determinar cuándo Mapbox GL JS FlyTo ha "llegado"

12

Me gustaría mostrar una superposición cuando el movimiento de la cámara flyto Mapbox ha completado su acción, y está en su lugar en la posición correcta y el nivel de zoom. ¿Hay alguna manera de saber cuándo se completa esa acción?

Entonces, vuela a una posición y luego muestra la superposición, básicamente.

Bill Thornton
fuente

Respuestas:

17

Puede lograr esto combinando algunos oyentes de eventos de mapas y una variable de la siguiente manera.

Para evitar una información sobre herramientas cuando el usuario ha movido o ampliado el mapa con el mouse o el teclado, necesitará una variable que determine si su usuario hizo clic o no en el botón "volar":

map.on('flystart', function(){
    flying = true;
});
map.on('flyend', function(){
    flying = false;
});

Luego, este código se ejecutará una vez que su mapa haya dejado de moverse y acercarse:

map.on('moveend', function(e){
   if(flying){
      // tooltip or overlay here
      map.fire(flyend); 
   }
});

Ver demostración: http://jsfiddle.net/ft7s8son/

chrki
fuente
Doh Miré esa lista de eventos y nunca vi moveend. ¡Gracias!
Bill Thornton
Amigo, ¡realmente lo aprecio! ¡Esto funciona muy bien!
willbeeler