调整转送偏好设置

路线计算(包括重新规划)将返回用最短导航时间作为默认最佳路线的路线。不过,您可以更改路线策略,改为返回较短的备选路线。

“较短”一词是指根据默认费用模型选择的最佳路线中最短的路线。较短的路线可能不是绝对最短路线,因为该选项可能不是更好的替代方案。例如,如果绝对最短路线为 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){...}];

包含轮渡的路线

默认情况下,Navigation SDK for iOS 会排除包含轮渡的路线。如果您希望在路线中包含轮渡选项,可以通过将 avoidsFerries 设置为 false 来调整此路线偏好设置,以将行程公开给渡轮路段。

示例

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

路线标注格式

在较短的路线路线策略下,路线沿途的宣传信息会显示距离详情。不过,您可以改用加大型文字广告宣传信息。

配置路线调用程序的格式

您可以通过在 GMSMapView 中设置 routeCalloutFormat 来更改路线标注格式。routeCalloutFormat 采用以下枚举值之一:

枚举值说明
GMSNavigationRouteCalloutFormatDefault 显示使用默认最佳路由路由策略时的剩余时间。显示使用较短的路线路由策略时的剩余距离
GMSNavigationRouteCalloutFormatTime 显示剩余时间。
GMSNavigationRouteCalloutFormatDistance DDisplay 显示剩余距离。

示例

以下代码示例演示了如何配置路线调用程序格式。

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;