So stellen Sie fest, wann Mapbox GL JS FlyTo "angekommen" ist

12

Ich möchte eine Überlagerung anzeigen, wenn die Bewegung der Mapbox-Flyto-Kamera abgeschlossen ist und sich an der richtigen Position und Zoomstufe befindet. Gibt es eine Möglichkeit zu wissen, wann diese Aktion abgeschlossen ist?

Fliegen Sie also zu einer Position und zeigen Sie dann im Grunde die Überlagerung.

Bill Thornton
quelle

Antworten:

16

Sie können dies erreichen, indem Sie einige Listener für Kartenereignisse und eine Variable wie folgt kombinieren.

Um einen Tooltip zu verhindern, wenn der Benutzer die Karte mit der Maus oder der Tastatur verschoben oder gezoomt hat, benötigen Sie eine Variable, die bestimmt, ob Ihr Benutzer auf die Schaltfläche "Fliegen" geklickt hat oder nicht:

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

Dieser Code wird dann ausgeführt, sobald sich Ihre Karte nicht mehr bewegt und zoomt:

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

Siehe Demo: http://jsfiddle.net/ft7s8son/

chrki
quelle
Doh. Ich habe mir diese Liste von Ereignissen angesehen und nie einen Umzug gesehen. Vielen Dank!
Bill Thornton
Alter, ich weiß das wirklich zu schätzen! Das funktioniert super!
Willbeeler