การปรับค่ากำหนดการกำหนดเส้นทาง

การคำนวณเส้นทาง (รวมถึงการกำหนดเส้นทางใหม่) จะแสดงเส้นทางที่ใช้เวลาน้อยที่สุดในการนำทางเป็นเส้นทางที่ดีที่สุดเริ่มต้น แต่คุณสามารถเปลี่ยนกลยุทธ์การกำหนดเส้นทางเพื่อให้ระบบแสดงเส้นทางสำรองที่สั้นกว่าแทน

คำว่าสั้นกว่าหมายถึงเส้นทางที่สั้นที่สุดในกลุ่มเส้นทางที่ดีที่สุดตามรูปแบบค่าใช้จ่ายเริ่มต้นของเรา เส้นทางที่สั้นอาจไม่ใช่เส้นทางที่สั้นที่สุด เนื่องจากตัวเลือกนี้อาจเป็นทางเลือกที่ไม่ดี ตัวอย่างเช่น ถ้าเส้นทางที่สั้นที่สุดคือ 10 กม. และใช้เวลา 50 นาทีในการนำทาง และอีก 1 เส้นทางคือ 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);