ย้ายเครื่องหมายได้อย่างราบรื่นพร้อมสองพิกัด GPS


10

ฉันกำลังพยายามทำให้เครื่องหมายแสดงตำแหน่งจากจุดพิกัด GPS หนึ่งจุดไปยังอีกจุดหนึ่ง ขณะนี้ฉันกำลังใช้ Google Maps เพื่อให้บรรลุถึงสิ่งนี้และแม้ว่าอัลกอริทึมของฉันดูเหมือนจะถูกต้อง แต่ Google แผนที่กำลังทำงานได้แย่ในการแปลงตำแหน่ง GPS เป็นพิกเซลที่ถูกต้องบนแผนที่ซึ่งทำให้ภาพเคลื่อนไหวไม่ราบรื่นเมื่อซูมแผนที่ออก . เมื่อซูมเข้าจะราบรื่นมากและนั่นเป็นสาเหตุที่ฉันสงสัยว่า "ซิกแซก" นั้นเกิดจากการที่ Google ทำการแปลง LatLng-> พิกเซลที่ไม่ดี

ทางออกที่ดีที่สุดสำหรับฉันในการจัดการโดยตรงกับเครื่องหมายพิกเซล (x, y) พิกัดพิกเซล แต่น่าเสียดายที่ไม่มีวิธีการสาธารณะสำหรับการกำหนดตำแหน่งพิกเซลให้กับเครื่องหมาย

รหัสมีอยู่ที่นี่: http://dev.syskall.com/map/

คุณจะทำให้ภาพเคลื่อนไหวราบรื่นขึ้นเมื่อซูมออกได้อย่างไร อีกทางหนึ่งฉันจะสนใจใช้ Google แผนที่ที่เทียบเท่าซึ่งจะให้ฉันทำสิ่งที่ฉันพยายามทำหากไม่สามารถทำได้ด้วย Google แผนที่

PS: ฉันไม่แน่ใจว่านี่เป็นสถานที่ที่เหมาะสมในการถามคำถามของฉันหรือไม่แจ้งให้เราทราบหากไม่ใช่กรณี

คำตอบ:


8

v2 http://econym.org.uk/gmap/example_cartrip.htm

v3 http://plebeosaur.us/etc/map/ (ทำงานได้ดีที่สุดกับ iphone) คุณสามารถใช้ข้อมูล gps ดิบของคุณได้

ทิป - ใช้พิกัดทางภูมิศาสตร์จริงแทนที่จะเป็นพิกเซลเนื่องจากมีการปัดเศษขึ้น (ทศนิยม 2 ตำแหน่ง) และพิกัดทางภูมิศาสตร์ใช้ 6 dp


2

คุณสามารถใช้ห้องสมุดmarker-animate-unobtrusiveเพื่อให้เครื่องหมายเปลี่ยนจากตำแหน่งหนึ่งไปอีกที่หนึ่งได้อย่างราบรื่น

คุณสามารถเริ่มต้นเครื่องหมายของคุณเช่นนั้น:

var marker = new SlidingMarker({
   //your original marker options
   //...
});

ดังนั้นเครื่องหมายของคุณจะเคลื่อนไหวจากตำแหน่งเริ่มต้นไปยังตำแหน่งที่กำหนดในสายนี้

marker.setPosition(givenPosition);

ป.ล. ฉันเป็นผู้แต่งห้องสมุด


ห้องสมุดของคุณมีความสามารถในการหมุนไอคอนเป็นมุมหรือไม่? ขึ้นอยู่กับ lat ล่าสุด, โหลนไป lat laton ถัดไป?
Tim Maxey

ดูการอภิปรายที่นี่ มีการจัดกิจกรรมสำหรับแต่ละขั้นตอนของภาพเคลื่อนไหวซึ่งคุณสามารถรับพิกัดและพยายามหมุนเครื่องหมายของคุณ
viskin


1

คุณสามารถพิจารณาแนวทางต่อไปนี้:

  • สร้างคอลเลกชันเครื่องหมายระหว่างสองพิกัดต่อทุกตำแหน่ง
  • สลับเครื่องหมายเฉพาะโดยใช้marker.setVisibility(value)ฟังก์ชั่น

ตัวอย่างที่สมบูรณ์

JSFiddle

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