วิธีการตรวจสอบว่า Mapbox GL JS FlyTo ได้“ มาถึง” แล้ว


12

ฉันต้องการแสดงภาพซ้อนทับเมื่อการเคลื่อนไหวของ Mapbox 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/


Doh ฉันดูรายการเหตุการณ์นั้นและไม่เคยเห็นจุดเปลี่ยน ขอบคุณ!
Bill Thornton

เพื่อนฉันซาบซึ้งจริงๆ! มันใช้งานได้ดี!
willbeeler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.