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.

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/


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.