จัดการจุดอ้างอิง

เอกสารนี้จะอธิบายวิธีจัดการค่ากำหนดจุดอ้างอิงสำหรับแอปโดยใช้ 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){...}];