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

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

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

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

โดยค่าเริ่มต้น Navigation SDK for iOS จะค้นหาเส้นทางที่เร็วที่สุดไปยังจุดแวะพัก แต่ไม่ได้การันตีว่าผู้ใช้จะไปถึงจุดแวะพักที่อยู่ด้านข้างถนนที่ต้องการ เช่น ด้านข้างถนนที่ลูกค้าของคนขับรถร่วมเดินทางรออยู่ ฟีเจอร์ค่ากำหนดการกำหนดเส้นทางด้านข้างถนน ช่วยให้คุณมั่นใจได้ว่ายานพาหนะจะไปถึงจุดแวะพักที่อยู่ด้านข้างถนนที่ถูกต้อง

วิธีการทำงาน

คุณตั้งค่ากำหนดให้ไปถึงจุดแวะพักที่อยู่ด้านข้างถนนที่ต้องการเมื่อสร้างจุดแวะพักสำหรับจุดแวะพักนั้น โดยระบุค่ากำหนดได้ 1 ใน 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){...}];