Cara menentukan kapan Mapbox GL JS FlyTo telah “tiba”

12

Saya ingin menampilkan overlay ketika gerakan Mapbox terbang ke kamera telah menyelesaikan aksinya, dan berada pada posisi yang benar dan tingkat zoom. Apakah ada cara untuk mengetahui kapan tindakan itu selesai?

Jadi, terbanglah ke suatu posisi dan kemudian perlihatkan overlay, pada dasarnya.

Bill Thornton
sumber

Jawaban:

17

Anda dapat mencapai ini dengan menggabungkan beberapa pendengar acara peta dan variabel sebagai berikut.

Untuk mencegah tooltip ketika pengguna telah memindahkan atau memperbesar peta dengan mouse atau keyboard Anda akan memerlukan variabel yang menentukan apakah pengguna Anda mengklik tombol "terbang" atau tidak:

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

Kemudian kode ini akan dijalankan setelah peta Anda berhenti bergerak dan diperbesar:

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

Lihat demo: http://jsfiddle.net/ft7s8son/

chrki
sumber
Doh. Saya melihat daftar peristiwa itu dan tidak pernah melihat pindah. Terima kasih!
Bill Thornton
Bung, saya sangat menghargainya! Ini sangat bagus!
willbeeler