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