管理路線控點

本文件說明如何使用兩項功能管理應用程式的路線控點偏好設定:

  • 道路轉送偏好設定的一側
  • 停靠站

道路路線偏好設定的另一側

根據預設,Navigation SDK for iOS 會找出前往路線點的最快路線,但無法保證使用者一定會抵達所需的道路,例如代僱駕駛司機顧客正在等候的道路側面。您可以透過「Side of the Road Route Preference」(道路轉送偏好設定) 功能,確保車輛抵達正確的道路一側。

運作方式

為停靠站建立路線控點時,您可以調整抵達道路特定側的偏好設定。您可以透過下列任一方式指定偏好設定。

偏好道路同側

您需要提供路線控點的地理座標,然後設定 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){...}];