調整轉送偏好設定

路徑計算 (包括重新轉送) 會傳回花費最少時間導覽的路線,做為「預設最佳路徑」。但是,您可以變更轉送策略,改為傳回較短的路徑替代值。

「更短」一詞是指依據我們的預設費用模型,在最佳路線中最短的路線。較短的路線不一定是「絕對」最短路線,因為這個選項可能不是最佳替代方案。舉例來說,如果絕對最短路線為 10 公里且需要 50 分鐘導航,另一條路線只剩 20 分鐘,則第二種選擇是最佳選擇,因為花 30 分鐘減去五公里並不是很好的取捨。

設定行程的轉送策略後,除非行程完成,否則策略不會改變。如要變更現有行程的轉送策略,您必須清除目的地,並使用新的轉送策略再次重設這些目的地。

取得路線詳細資料

如要判斷哪一種路徑策略是特定路線控點的最佳選擇,請呼叫 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;