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

เอกสารนี้อธิบายวิธีจัดการค่ากำหนดจุดอ้างอิงสำหรับแอปโดยใช้ 2 ฟีเจอร์ต่อไปนี้

  • ค่ากำหนดการกำหนดเส้นทางฝั่งถนน
  • การแวะพัก

ตั้งค่ากำหนดการกำหนดเส้นทางตามฝั่งถนน

โดยค่าเริ่มต้น Navigation 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){...}];