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

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

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

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

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

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

คุณตั้งค่ากำหนดสำหรับการมาถึงฝั่งใดฝั่งหนึ่งของถนนเมื่อสร้างจุดสังเกตสำหรับจุดแวะนั้น คุณระบุค่ากำหนดได้ 2 วิธีดังนี้

ชอบใช้ถนนฝั่งเดียวกัน

คุณต้องระบุพิกัดทางภูมิศาสตร์ของจุดสังเกต จากนั้นตั้งค่า Flag 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){...}];