Comment déterminer quand Mapbox GL JS FlyTo est «arrivé»


12

Je voudrais afficher une superposition lorsque le mouvement de la caméra Flybox Mapbox a terminé son action et est en place à la position et au niveau de zoom corrects. Existe-t-il un moyen de savoir quand cette action est terminée?

Alors, volez jusqu'à une position, puis montrez la superposition, en gros.

Réponses:


17

Vous pouvez y parvenir en combinant quelques écouteurs d'événements de carte et une variable comme suit.

Pour empêcher une info-bulle lorsque l'utilisateur a déplacé ou zoomé la carte avec la souris ou le clavier, vous aurez besoin d'une variable qui détermine si votre utilisateur a cliqué sur le bouton "voler" ou non:

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

Ce code s'exécutera ensuite une fois que votre carte aura cessé de bouger et de zoomer:

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

Voir la démo: http://jsfiddle.net/ft7s8son/


Doh. J'ai regardé cette liste d'événements et je n'ai jamais vu de mouvement. Je vous remercie!
Bill Thornton

Mec, je l'apprécie vraiment! Cela fonctionne très bien!
willbeeler
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.