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.

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/


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.