管理路線控點

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

  • 路線規劃偏好設定的道路側邊
  • 轉機

設定路線偏好設定的道路側邊

根據預設,iOS 版 Navigation SDK 會找出前往路標的最快路線,但這不保證使用者會抵達所需的路邊,例如共乘服務駕駛人的乘客等候的路邊。路線規劃偏好設定的道路一側功能可讓你確保車輛抵達道路的正確一側。

運作方式

建立該停靠站的路線點時,您可以設定偏好,讓車輛抵達路邊的特定位置。您可以透過下列兩種方式指定偏好設定。

偏好在同一側的道路

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