管理路線控點

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

  • 路線偏好設定的道路兩側
  • 中途停留

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

根據預設,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){...}];