Cách xác định khi Mapbox GL JS FlyTo có đến


12

Tôi muốn hiển thị lớp phủ khi chuyển động của camera flybox Mapbox đã hoàn thành hành động của nó và được đặt đúng vị trí và mức thu phóng. Có cách nào để biết khi nào hành động đó hoàn thành?

Vì vậy, bay đến một vị trí và sau đó hiển thị lớp phủ, về cơ bản.

Câu trả lời:


16

Bạn có thể đạt được điều này bằng cách kết hợp một vài trình lắng nghe sự kiện bản đồ và một biến như sau.

Để ngăn một chú giải công cụ khi người dùng đã di chuyển hoặc phóng to bản đồ bằng chuột hoặc bàn phím, bạn sẽ cần một biến xác định người dùng của bạn có nhấp vào nút "bay" hay không:

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

Sau đó, mã này sẽ thực thi khi bản đồ của bạn đã ngừng di chuyển và phóng to:

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

Xem bản demo: http://jsfiddle.net/ft7s8son/


Doh. Tôi đã xem danh sách các sự kiện đó và không bao giờ thấy moveend. Cảm ơn bạn!
Bill Thornton

Anh bạn, tôi thực sự đánh giá cao nó! Điều này làm việc tuyệt vời!
willbeeler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.