Як визначити, коли Mapbox GL JS FlyTo "прибув"


12

Я хотів би показати накладку, коли рух камери Mapto flyto завершив свою дію і знаходиться в правильному положенні та рівні масштабування. Чи є спосіб дізнатися, коли ця дія завершена?

Отже, полетіть до позиції, а потім в основному покажіть накладку.

Відповіді:


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/


До. Я переглянув цей список подій і ніколи не побачив ходу. Дякую!
Білл Торнтон

Чувак, я дуже ціную це! Це чудово працює!
willbeeler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.