เอกสารนี้จะอธิบายวิธีจัดการค่ากำหนดจุดอ้างอิงสำหรับแอปโดยใช้ 2 ฟีเจอร์ ดังนี้
- ค่ากำหนดการกําหนดเส้นทางด้านข้าง
- แวะพัก
ตั้งค่าด้านข้างของค่ากำหนดการกําหนดเส้นทางของถนน
โดยค่าเริ่มต้น การนำทาง SDK สำหรับ iOS จะค้นหาเส้นทางที่เร็วที่สุดไปยังจุดอ้างอิง แต่วิธีนี้ไม่รับประกันว่ารถจะมาเข้าข้างถนนที่ผู้บริโภคกำลังรออยู่ ฟีเจอร์ค่ากำหนดสำหรับการเปลี่ยนเส้นทางด้านข้างช่วยให้คุณมั่นใจได้ว่ารถจะมาถึงฝั่งที่ถูกต้องของถนน
วิธีการทำงาน
คุณตั้งค่ากำหนดการสำหรับการมาถึงบนถนนฝั่งใดฝั่งหนึ่งของถนนเมื่อคุณสร้างจุดอ้างอิงสำหรับจุดแวะพักนั้น คุณสามารถระบุค่ากำหนดได้ 2 วิธี
ต้องการใช้ฝั่งเดียวกันของถนน
คุณระบุพิกัดทางภูมิศาสตร์ของการชี้ทางนั้น แล้วตั้งธง preferSameSideOfRoad
ที่ระบุว่าคุณต้องการที่จะเข้าทางฝั่งเดียวกับถนนเหมือนการชี้ทางนั้น โดยจะตัดกับทางเท้าที่ใกล้ที่สุด
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
ส่วนหัวของกลุ่มเป้าหมายที่ต้องการ
คุณระบุพิกัดทางภูมิศาสตร์ของจุดอ้างอิง แล้วระบุทิศทางขาเข้า preferredSegmentHeading
ที่ตรงกับทิศทางการจราจรบนฝั่งเดียวกับถนนที่รอผู้บริโภคอยู่
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
Navigation SDK จะเลือกส่วนของถนนที่ใกล้กับจุดอ้างอิงมากที่สุด โดยกำหนดทิศทางของช่องทางไว้ (ภายใน +/- 55 องศา) กับด้านข้างของถนนที่จุดอ้างอิงตั้งอยู่
ตั้งค่ากำหนดจุดแวะพัก
ในบางสถานที่ ผู้ขับขี่ไม่สามารถหยุดรถอย่างปลอดภัยได้ (เช่น พื้นที่บนที่สูง เรือข้ามฟาก ตำแหน่งใต้ดิน และพื้นที่อื่นๆ ที่มีการเข้าถึงที่จำกัด) ฟีเจอร์แวะพักจะย้ายตำแหน่งทางไปยังสถานที่ใกล้เคียงหากตำแหน่งไม่เหมาะกับยานพาหนะที่จะแวะพัก เมื่อคุณตั้งค่า vehicleStopover
เป็น YES
จุดอ้างอิงจะถูกย้ายโดยอัตโนมัติเมื่อคำนวณเส้นทาง หากมีตำแหน่งสำรอง
วิธีการทำงาน
คุณตั้งค่ากำหนดสำหรับการแวะพักเมื่อสร้างจุดอ้างอิงสำหรับจุดแวะพักนั้น
โดยตั้งค่ากำหนดสำหรับการแวะพักใน GMSNavigationMutableWaypoint
ดังที่แสดงในตัวอย่างต่อไปนี้
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20) let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")! waypoint.vehicleStopover = true mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20); GMSNavigationMutableWaypoint *waypoint = [[GMSNavigationMutableWaypoint alloc] initWithLocation:location title:@"waypoint from location"]; waypoint.vehicleStopover = YES; [_mapView.navigator setDestinations:@[waypoint1] routingOptions:routingOptions callback:^(GMSRouteStatus routeStatus){...}];