การคำนวณเส้นทาง (รวมถึงการเปลี่ยนเส้นทาง) จะแสดงเส้นทางที่ใช้เวลาน้อยที่สุดในการนำทางเพื่อเป็นเส้นทางที่ดีที่สุดเริ่มต้น แต่คุณสามารถเปลี่ยนกลยุทธ์การกำหนดเส้นทางเพื่อให้ระบบแสดงเส้นทางสำรองที่สั้นกว่าแทนได้
คำว่าสั้นกว่า หมายถึงเส้นทางที่สั้นที่สุดในบรรดาเส้นทางที่ดีที่สุด โดยอิงตามรูปแบบค่าใช้จ่ายเริ่มต้นของเรา เส้นทางที่สั้นที่สุดอาจไม่ใช่เส้นทางที่สั้นที่สุด เนื่องจากตัวเลือกนั้นอาจเป็นทางเลือกที่ไม่ดี ตัวอย่างเช่น ถ้าเส้นทางที่สั้นที่สุดคือ 10 กม. และใช้เวลา 50 นาทีในการนำทาง และอีก 15 กม. แต่ใช้การนำทางเพียง 20 นาที ตัวเลือกที่ 2 ถือว่าดีที่สุด เนื่องจากการใช้เวลา 30 นาทีเพื่อลด 5 กม. นั้นไม่ใช่ตัวเลือกที่ดี
เมื่อตั้งค่ากลยุทธ์การกำหนดเส้นทางสำหรับการเดินทางแล้ว กลยุทธ์ดังกล่าวจะไม่เปลี่ยนแปลงจนกว่าการเดินทางจะเสร็จสมบูรณ์ หากต้องการเปลี่ยนกลยุทธ์การกำหนดเส้นทางสำหรับการเดินทางที่มีอยู่ คุณต้องล้างปลายทางและรีเซ็ตปลายทางอีกครั้งด้วยกลยุทธ์การกำหนดเส้นทางใหม่
การรับรายละเอียดเส้นทาง
หากต้องการทราบว่ากลยุทธ์เส้นทางใดเป็นตัวเลือกที่ดีที่สุดสำหรับจุดอ้างอิงที่ระบุ โปรดโทร getRouteInfo()
เพื่อรับรายละเอียดเส้นทางสำหรับทั้งเส้นทางที่ดีที่สุดเริ่มต้นและเส้นทางสั้นที่สุด รายละเอียดต่างๆ ประกอบด้วยระยะเวลา
และระยะทางไปยังจุดอ้างอิงปลายทาง
รายละเอียดเหล่านี้มาจาก RouteInfo
และระบบจะแสดงผลใน ListenableResultFuture
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับรายละเอียดเส้นทางสำหรับแต่ละกลยุทธ์การกำหนดเส้นทาง 2 แบบ
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
การตั้งค่ากลยุทธ์การกำหนดเส้นทาง
คุณกำหนดค่ากลยุทธ์การกำหนดเส้นทางได้โดยการตั้งค่า RoutingOptions.routingStrategy
เมื่อเรียกใช้ setDestinations()
RoutingOptions.routingStrategy
จะใช้ค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้
ค่าการแจงนับ | คำอธิบาย |
---|---|
RoutingStrategy.DEFAULT_BEST | จัดอันดับเส้นทางตามรูปแบบต้นทุนเริ่มต้นของ Navigation SDK นี่คือกลยุทธ์การกำหนดเส้นทางเริ่มต้น |
RoutingStrategy.SHORTER | จัดอันดับเส้นทางตามระยะทาง เส้นทางที่มีอันดับสูงสุดคือเส้นทางที่สั้นที่สุด เส้นทางที่ถูกส่งกลับ |
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งค่ากำหนดเส้นทางที่สั้นกว่า
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
เส้นทางที่ใช้เรือข้ามฟาก
โดยค่าเริ่มต้น NavSDK จะยกเว้นเส้นทางที่มีเรือข้ามฟาก หากต้องการรวมตัวเลือกเรือข้ามฟากไว้เป็นส่วนหนึ่งของเส้นทาง คุณสามารถปรับการตั้งค่าเส้นทางนี้เพื่อแสดงตัวเลือกการเดินทางไปยังกลุ่มเรือข้ามฟาก โดยตั้งค่า avoidFerries
เป็น false
ตัวอย่าง
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
รูปแบบข้อความไฮไลต์สำหรับเส้นทาง
ใต้ค่ากำหนดเส้นทางที่สั้นกว่า ไฮไลต์ตลอดเส้นทางจะแสดงรายละเอียดระยะทาง แต่คุณใช้ข้อความไฮไลต์เวลาถึงโดยประมาณแทนได้
การกำหนดค่ารูปแบบข้อความไฮไลต์สำหรับเส้นทาง
คุณสามารถเปลี่ยนรูปแบบข้อความไฮไลต์เส้นทางได้โดยเรียก setRouteCalloutInfoFormat
ใน NavigationView
(หรือใน NavigationFragment
) setRouteCalloutInfoFormat
ใช้ค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้
ค่าการแจงนับ | คำอธิบาย |
---|---|
RouteCalloutInfoFormat.DEFAULT | แสดงเวลาที่เหลือเมื่อใช้กลยุทธ์การกำหนดเส้นทางที่ดีที่สุดเริ่มต้น แสดงระยะทางที่เหลือเมื่อใช้กลยุทธ์การกำหนดเส้นทางเส้นทางที่สั้นลง |
RouteCalloutInfoFormat.TIME | แสดงเวลาที่เหลือ |
RouteCalloutInfoFormat.DISTANCE | แสดงระยะทางที่เหลือ |
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกำหนดค่ารูปแบบข้อความไฮไลต์สำหรับเส้นทาง
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);