การคำนวณเส้นทาง (รวมถึงการกำหนดเส้นทางใหม่) จะแสดงเส้นทางที่ใช้เวลาน้อยที่สุดในการนำทางเป็นเส้นทางที่ดีที่สุดเริ่มต้น แต่คุณสามารถเปลี่ยนกลยุทธ์การกำหนดเส้นทางเพื่อให้ระบบแสดงเส้นทางสำรองที่สั้นกว่าแทน
คำว่าสั้นกว่าหมายถึงเส้นทางที่สั้นที่สุดในกลุ่มเส้นทางที่ดีที่สุดตามรูปแบบค่าใช้จ่ายเริ่มต้นของเรา เส้นทางที่สั้นอาจไม่ใช่เส้นทางที่สั้นที่สุด เนื่องจากตัวเลือกนี้อาจเป็นทางเลือกที่ไม่ดี ตัวอย่างเช่น ถ้าเส้นทางที่สั้นที่สุดคือ 10 กม. และใช้เวลา 50 นาทีในการนำทาง และอีก 1 เส้นทางคือ 15 กม. แต่ใช้เวลาเพียง 20 นาทีในการนำทาง ตัวเลือกที่ 2 จะเหมาะสมที่สุด เพราะการใช้เวลา 30 นาทีในการลด 5 กม. อาจไม่ใช่ทางเลือกที่ดี
เมื่อตั้งค่ากลยุทธ์การกำหนดเส้นทางสำหรับการเดินทางแล้ว กลยุทธ์ดังกล่าวจะไม่เปลี่ยนแปลงจนกว่าการเดินทางจะเสร็จสมบูรณ์ หากต้องการเปลี่ยนกลยุทธ์การกำหนดเส้นทางสำหรับการเดินทางที่มีอยู่ คุณต้องล้างจุดหมายและรีเซ็ตอีกครั้งโดยใช้กลยุทธ์การกำหนดเส้นทางใหม่
กำลังดึงรายละเอียดเส้นทาง
หากต้องการดูว่ากลยุทธ์เส้นทางใดเป็นตัวเลือกที่เหมาะสมที่สุดสำหรับจุดอ้างอิงที่ระบุ ให้เรียกใช้ getRouteInfoForDestination()
เพื่อรับรายละเอียดเส้นทางสำหรับทั้งเส้นทางที่ดีที่สุดเริ่มต้นและเส้นทางที่สั้นที่สุด รายละเอียดต่างๆ ได้แก่ ระยะเวลาและระยะทาง
ไปยังจุดอ้างอิงปลายทาง
รายละเอียดเหล่านี้มาจาก GMSNavigationRouteInfo
ในโค้ดเรียกกลับ
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับรายละเอียดเส้นทางสำหรับกลยุทธ์การกำหนดเส้นทางทั้ง 2 แบบ
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
การกำหนดกลยุทธ์การกำหนดเส้นทาง
คุณกำหนดค่ากลยุทธ์การกำหนดเส้นทางได้โดยใช้ GMSNavigationRoutingOptions
และตั้งค่า routingStrategy
เมื่อเรียกใช้ setDestinations()
routingStrategy
ใช้ค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้
ค่าการแจงนับ | คำอธิบาย |
---|---|
GMSNavigationRoutingStrategyDefaultBest | จัดอันดับเส้นทางตามรูปแบบต้นทุนเริ่มต้นของ Navigation SDK นี่คือกลยุทธ์การกำหนดเส้นทางเริ่มต้น |
GMSNavigationRoutingStrategyShorter | จัดอันดับเส้นทางตามระยะทาง เส้นทางที่มีลำดับสูงสุดคือเส้นทางที่ถูกที่สุดที่มีการแสดงผล |
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้จะแสดงวิธีตั้งค่ากลยุทธ์การกำหนดเส้นทางเส้นทางที่สั้น
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
เส้นทางที่มีเรือข้ามฟาก
โดยค่าเริ่มต้น Navigation SDK สำหรับ iOS จะยกเว้นเส้นทางที่มีเรือข้ามฟาก หากต้องการรวมตัวเลือกเรือข้ามฟากเป็นส่วนหนึ่งของเส้นทาง คุณปรับค่ากำหนดการกำหนดเส้นทางนี้เพื่อแสดงการเดินทางไปยังตัวเลือกเรือข้ามฟากได้โดยตั้งค่า avoidsFerries
เป็น false
ตัวอย่าง
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
รูปแบบข้อความไฮไลต์ของเส้นทาง
ภายใต้กลยุทธ์การกำหนดเส้นทางเส้นทางที่สั้นลง ข้อความไฮไลต์ตามเส้นทางที่แสดงรายละเอียดระยะทาง แต่คุณใช้ไฮไลต์เวลาถึงโดยประมาณแทนได้
การกำหนดค่ารูปแบบข้อความไฮไลต์ของเส้นทาง
คุณเปลี่ยนรูปแบบไฮไลต์ของเส้นทางได้โดยการตั้งค่า routeCalloutFormat
ใน GMSMapView
routeCalloutFormat
ใช้ค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้
ค่าการแจงนับ | คำอธิบาย |
---|---|
GMSNavigationRouteCalloutFormatDefault | แสดงเวลาที่เหลือเมื่อใช้กลยุทธ์การกำหนดเส้นทางที่ดีที่สุดเริ่มต้น แสดงระยะทางที่เหลืออยู่เมื่อใช้กลยุทธ์การกำหนดเส้นทางเส้นทางที่สั้นลง |
GMSNavigationRouteCalloutFormatTime | แสดงเวลาที่เหลือ |
GMSNavigationRouteCalloutFormatDistance | ระยะ DDisplay ที่เหลืออยู่ |
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกำหนดค่ารูปแบบข้อความไฮไลต์ของเส้นทาง
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;