Как определить, когда Mapbox GL JS FlyTo «прибыл»

12

Я хотел бы показать наложение, когда движение камеры флайт Mapbox завершило свое действие и находится в правильном положении и уровне масштабирования. Есть ли способ узнать, когда это действие будет завершено?

Итак, летите в позицию, а затем покажите оверлей.

Билл Торнтон
источник

Ответы:

17

Вы можете достичь этого, комбинируя несколько слушателей события карты и переменную следующим образом.

Чтобы предотвратить всплывающую подсказку, когда пользователь перемещал или увеличивал карту с помощью мыши или клавиатуры, вам понадобится переменная, которая определяет, нажал ли пользователь кнопку «летать» или нет:

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

Затем этот код будет выполнен, как только ваша карта перестанет двигаться и масштабировать:

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

Посмотреть демо: http://jsfiddle.net/ft7s8son/

chrki
источник
Doh. Я посмотрел на этот список событий и никогда не видел движение. Спасибо!
Билл Торнтон
Чувак, я действительно ценю это! Это прекрасно работает!
Willbeeler