Navigation SDK สำหรับ Android มีวิธีที่ปรับปรุงแล้วในการระบุจุดอ้างอิง ซึ่งให้การกำหนดเส้นทางที่แม่นยำยิ่งขึ้นและประสบการณ์การเดินทางมาถึงที่ดีขึ้น โดยเฉพาะอย่างยิ่งสำหรับปลายทางที่มีทางเข้าหลายทางหรือจุดนำทางที่เฉพาะเจาะจง คุณสามารถกำหนดเส้นทางไปยังตำแหน่งที่แน่นอนได้โดยใช้ navigationPointToken หรือโดยการรวมพิกัดละติจูดและลองจิจูดกับรหัสสถานที่เพื่อเพิ่มบริบท ระบบจะยังคงแสดงฟีเจอร์การไฮไลต์ปลายทางต่อไปหากมี
ฉากหลัง
ก่อนเวอร์ชัน 7.4 คุณสามารถกำหนด Waypoint ได้โดยใช้พิกัดละติจูดและลองจิจูดหรือรหัสสถานที่ แม้ว่าบางครั้งการกำหนดเส้นทางไปยังละติจูดและลองจิจูดเพียงอย่างเดียวอาจมีประสิทธิภาพ แต่บางครั้งก็อาจทำให้จุดรับหรือส่งไม่เหมาะสม โดยเฉพาะอย่างยิ่งสำหรับสถานที่ขนาดใหญ่ สวนสาธารณะ หรืออาคารที่มีทางเข้าหลายทาง ผลลัพธ์อาจจัดพอดีกับส่วนถนนที่ใกล้ที่สุด ซึ่งอาจไม่ใช่จุดนำทางที่สะดวกหรือถูกต้องที่สุด
ตัวเลือกจุดอ้างอิงที่ปรับปรุงแล้วช่วยแก้ปัญหานี้ด้วยการอนุญาตให้ระบุบริบทเพิ่มเติม
ใช้โทเค็นจุดนำทาง
หากต้องการกำหนดเส้นทางที่แม่นยำที่สุดไปยังจุดนำทางที่เฉพาะเจาะจง เช่น ทางเข้า ท่าเทียบเรือขนถ่ายสินค้า หรือพื้นที่รับที่กำหนด คุณสามารถใช้ navigationPointToken ได้ คุณจะได้รับโทเค็นนี้โดยการเรียกใช้เมธอด destinations
ของ Geocoding
API โทเค็นนี้แสดงถึงจุดนำทางที่กำหนดเส้นทางได้และเฉพาะเจาะจงซึ่งเชื่อมโยงกับสถานที่
วิธีระบุโทเค็นจุดนำทาง
- รับ
navigationPointTokenจากเมธอด Destinations ของ การตอบกลับ Geocoding API - สร้าง
Waypointโดยใช้เมธอดsetNavigationPointToken()ใน Builder
หมายเหตุ: เมื่อใช้ setNavigationPointToken() คุณจะใช้ setLatLng() หรือ setPlaceIdString() พร้อมกันไม่ได้ เมธอดเหล่านี้จะใช้ร่วมกับ setNavigationPointToken() ไม่ได้
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
รวมรหัสสถานที่กับละติจูดและลองจิจูด
ตั้งแต่เวอร์ชัน 7.4 เป็นต้นไป คุณสามารถระบุ ทั้ง รหัสสถานที่และพิกัดละติจูดและลองจิจูดเมื่อสร้าง Waypoint เมธอดนี้มีประโยชน์เมื่อคุณต้องการระบุจุดที่แน่นอน (ละติจูด/ลองจิจูด) ขณะที่ยังคงระบุบริบทของสถานที่โดยรวม (รหัสสถานที่) ซึ่งช่วยให้ Navigation SDK มอบประสบการณ์การเดินทางมาถึงที่สมบูรณ์ยิ่งขึ้นด้วยการไฮไลต์อาคารปลายทางหรือแสดงจุดที่น่าสนใจใกล้เคียงที่เกี่ยวข้องกับรหัสสถานที่
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
ข้อควรพิจารณา
สิ่งที่จะเกิดขึ้นเมื่อคุณระบุทั้ง placeId และ latlng
- เส้นทางจะกำหนดเป้าหมายหลักไปที่
latlngที่ระบุ - ระบบจะใช้
placeIdเป็นบริบทเพื่อปรับปรุงประสบการณ์การเดินทางมาถึง - การทำงานสำรอง: หาก SDK กำหนดว่า
placeIdที่ระบุสอดคล้องกับฟีเจอร์ที่อยู่ไกลจากlatlngที่ระบุมากเกินไป ระบบจะละเว้นplaceIdในสถานการณ์นี้ การกำหนดเส้นทางจะดำเนินการไปยังlatlngเท่านั้น และการปรับปรุงประสบการณ์การเดินทางมาถึงที่เฉพาะเจาะจงกับสถานที่นั้นจะไม่พร้อมใช้งาน
สรุปการกำหนดค่าจุดอ้างอิงที่ถูกต้อง
| วิธีการ | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
ลักษณะการทำงานของการกำหนดเส้นทาง | การไฮไลต์ปลายทาง |
|---|---|---|---|---|---|
| พิกัดละติจูด/ลองจิจูดเท่านั้น | ตั้งค่า | ไม่ได้ระบุ | ไม่ได้ระบุ | กำหนดเส้นทางไปยังส่วนถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด | แสดงขึ้นหากอนุมานปลายทางได้ด้วยความมั่นใจสูง |
| รหัสสถานที่เท่านั้น | ไม่ได้ระบุ | ตั้งค่า | ไม่ได้ระบุ | กำหนดเส้นทางไปยังจุดนำทางเริ่มต้นสำหรับรหัสสถานที่ | จากรหัสสถานที่ |
| โทเค็นจุดนำทางเท่านั้น | ไม่ได้ระบุ | ไม่ได้ระบุ | ตั้งค่า | กำหนดเส้นทางไปยังจุดนำทางที่แน่นอนซึ่งแสดงโดยโทเค็น | จากปลายทางที่กำหนดในเมธอด destinations เดิมของคำขอ Geocoding API |
| รวมพิกัดละติจูด/ลองจิจูดและรหัสสถานที่ | ตั้งค่า | ตั้งค่า | ไม่ได้ระบุ | กำหนดเส้นทางไปยังส่วนถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด | จากรหัสสถานที่ แต่จะไม่แสดงหากรหัสสถานที่อยู่ไกลจากพิกัดละติจูด/ลองจิจูดมากเกินไป |