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

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

คำว่าสั้นกว่าหมายถึงเส้นทางที่สั้นที่สุดในบรรดาเส้นทางที่เหมาะสมที่สุดตามโมเดลต้นทุนเริ่มต้นของเรา เส้นทางที่สั้นกว่าอาจไม่ใช่เส้นทางที่สั้นที่สุดอย่างแท้จริง เนื่องจากตัวเลือกนั้นอาจเป็นทางเลือกที่ไม่ดีนัก ตัวอย่างเช่น หากเส้นทางที่สั้นที่สุดคือ 10 กม. และใช้เวลาเดินทาง 50 นาที ส่วนอีกเส้นทางหนึ่งคือ 15 กม. แต่ใช้เวลาเดินทางเพียง 20 นาที ตัวเลือกที่ 2 จะเหมาะสมที่สุด เนื่องจากใช้เวลาเพิ่ม 30 นาทีเพื่อลดระยะทาง 5 กม. ไม่ใช่ตัวเลือกที่ดี

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

การตั้งค่ากลยุทธ์การกำหนดเส้นทาง

คุณสามารถกำหนดค่ากลยุทธ์การกำหนดเส้นทางได้โดยตั้งค่า 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);

รูปแบบข้อความไฮไลต์เส้นทาง

ในค่ากำหนดเส้นทางที่สั้นกว่า ข้อความไฮไลต์ตามเส้นทางจะแสดงรายละเอียดระยะทาง แต่คุณสามารถใช้ข้อความไฮไลต์ ETA แทนได้

การกำหนดค่ารูปแบบข้อความไฮไลต์ของเส้นทาง

คุณเปลี่ยนรูปแบบข้อความไฮไลต์ของเส้นทางได้โดยเรียกใช้ setRouteCalloutInfoFormat ใน NavigationView (หรือใน NavigationFragment) setRouteCalloutInfoFormat จะใช้ค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้

ค่าการแจงนับคำอธิบาย
RouteCalloutInfoFormat.DEFAULT แสดงเวลาที่เหลือเมื่อใช้กลยุทธ์การกำหนดเส้นทางที่ดีที่สุดตามค่าเริ่มต้น แสดงระยะทางที่เหลือเมื่อใช้กลยุทธ์การกำหนดเส้นทางที่สั้นกว่า
RouteCalloutInfoFormat.TIME แสดงเวลาที่เหลือ
RouteCalloutInfoFormat.DISTANCE แสดงระยะทางที่เหลือ

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกำหนดค่ารูปแบบข้อความไฮไลต์เส้นทาง

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);