Come determinare quando Mapbox GL JS FlyTo è “arrivato”


12

Vorrei mostrare un overlay quando Mapbox flyto al movimento della fotocamera ha completato la sua azione, ed è in posizione nella posizione corretta e nel livello di zoom. C'è un modo per sapere quando l'azione è completa?

Quindi, vola in una posizione e poi mostra l'overlay, in pratica.

Risposte:


17

Puoi farlo combinando alcuni listener di eventi della mappa e una variabile come segue.

Per evitare una descrizione comandi quando l'utente ha spostato o ingrandito la mappa con il mouse o la tastiera, sarà necessaria una variabile che determina se l'utente ha fatto clic sul pulsante "vola" oppure no:

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

Quindi questo codice verrà eseguito una volta che la tua mappa ha smesso di muoversi e zoomare:

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

Guarda la demo: http://jsfiddle.net/ft7s8son/


Doh. Ho guardato quell'elenco di eventi e non ho mai visto Moveend. Grazie!
Bill Thornton,

Amico, lo apprezzo davvero! Funziona benissimo!
Willbeeler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.