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