調整轉送偏好設定

路線計算作業 (包括重新導航) 會將所需時間最短的路線傳回為預設最佳路線。不過,您可以變更路由策略,改為傳回較短的路徑替代方案。

「較短」一詞是指根據預設成本模型,在所有最佳路線中,最短的路線。較短的路線可能不是絕對最短的路線,因為這個選項可能不是理想的替代方案。舉例來說,如果最短路線長度為 10 公里,導航時間為 50 分鐘,而另一條路線長度為 15 公里,但導航時間僅需 20 分鐘,則第二個路線是最佳選擇,因為花費 30 分鐘只為了縮短 5 公里的路程並不划算。

設定行程的路線規劃策略後,除非行程結束,否則不會變更。如要變更現有行程的路線規劃策略,您必須清除目的地,然後使用新的路線規劃策略重新設定。

取得路線詳細資料

如要判斷哪種路線策略是特定路標的最佳選擇,請呼叫 getRouteInfoForDestination(),以便取得預設最佳路線和絕對較短路線的路線詳細資料。詳細資料包括時間長度和到達目的地路線點的距離。

這些詳細資料來自回呼中的 GMSNavigationRouteInfo

範例

以下程式碼範例示範如何取得兩種路由策略的路線詳細資料。

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

設定轉送策略

您可以使用 GMSNavigationRoutingOptions 設定轉送策略,並在呼叫 setDestinations() 時設定 routingStrategy

routingStrategy 會採用下列其中一個列舉值:

列舉值說明
GMSNavigationRoutingStrategyDefaultBest 根據 Navigation SDK 的預設成本模式排序路線。這是預設轉送策略。
GMSNavigationRoutingStrategyShorter 依距離排序路線。排名最高的路線是傳回路線中最短的路線。

範例

以下程式碼範例說明如何設定較短路線路由策略。

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

包含渡輪的路線

根據預設,iOS 版 Navigation SDK 會排除含有渡輪的路線。如果您想在路線中加入渡輪選項,可以將 avoidsFerries 設為 false,藉此調整這項路線偏好設定,以便顯示渡輪路段。

範例

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

路線標示格式

在較短路線路徑規劃策略下,沿路的說明文字會顯示距離詳細資料。但您可以改用預估到達時間圖示。

設定路線說明格式

您可以變更路線說明格式,方法是在 GMSMapView 中設定 routeCalloutFormatrouteCalloutFormat 會採用下列其中一個列舉值:

列舉值說明
GMSNavigationRouteCalloutFormatDefault 顯示使用預設最佳路線導航策略時,所剩的時間。使用較短路線導航策略時,顯示剩餘的距離
GMSNavigationRouteCalloutFormatTime 顯示剩餘時間。
GMSNavigationRouteCalloutFormatDistance D 顯示剩餘距離。

範例

以下程式碼範例示範如何設定路線說明格式。

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;