Как определить, когда 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/


Doh. Я посмотрел на этот список событий и никогда не видел движение. Спасибо!
Билл Торнтон

Чувак, я действительно ценю это! Это прекрасно работает!
Willbeeler
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.