Jak ustalić, kiedy Mapbox GL JS FlyTo „przybył”

12

Chciałbym pokazać nakładkę, gdy ruch kamery flyto Mapbox zakończy działanie i znajdzie się na właściwej pozycji i poziomie powiększenia. Czy istnieje sposób, aby wiedzieć, kiedy to działanie jest zakończone?

Leć więc do pozycji, a następnie w zasadzie pokaż nakładkę.

Bill Thornton
źródło

Odpowiedzi:

17

Możesz to osiągnąć, łącząc kilka detektorów zdarzeń mapy i zmienną w następujący sposób.

Aby uniknąć podpowiedzi, gdy użytkownik przesunął lub powiększył mapę za pomocą myszy lub klawiatury, potrzebujesz zmiennej, która określa, czy użytkownik kliknął przycisk „lataj”, czy nie:

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

Następnie ten kod zostanie wykonany, gdy mapa przestanie się przesuwać i powiększanie:

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

Zobacz demo: http://jsfiddle.net/ft7s8son/

chrki
źródło
Doh Spojrzałem na tę listę wydarzeń i nigdy nie widziałem ruchu. Dziękuję Ci!
Bill Thornton,
Stary, naprawdę to doceniam! To działa świetnie!
willbeeler