Como determinar quando o Mapbox GL JS FlyTo "chegou"

12

Gostaria de mostrar uma sobreposição quando o movimento da câmera do Mapbox flyto concluir sua ação e estiver na posição correta e no nível de zoom. Existe uma maneira de saber quando essa ação está concluída?

Então, voe para uma posição e mostre a sobreposição, basicamente.

Bill Thornton
fonte

Respostas:

17

Você pode conseguir isso combinando alguns ouvintes de eventos de mapa e uma variável da seguinte maneira.

Para impedir uma dica de ferramenta quando o usuário moveu ou ampliou o mapa com o mouse ou o teclado, você precisará de uma variável que determine se o usuário clicou no botão "voar" ou não:

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

Então esse código será executado assim que seu mapa parar de se mover e aplicar zoom:

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

Veja a demonstração: http://jsfiddle.net/ft7s8son/

chrki
fonte
Doh. Olhei para a lista de eventos e nunca vi mudanças. Obrigado!
Bill Thornton
Cara, eu realmente aprecio isso! Isso funciona muito bem!
precisa saber é o seguinte