本文說明如何使用以下兩項功能,管理應用程式的路線控點偏好設定:
- 道路側邊路線偏好設定
- 中途停留
設定道路側邊路線偏好設定

根據預設,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 度內)。
設定中途停留偏好
在某些地點,使用者無法安全停車 (例如高架區域、渡輪、地下位置和其他管制區域)。如果路線控點的位置不適合使用者停留,Stopover 功能會將路線控點移至附近地點。如果將 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){...}];