调整转送偏好设置

路线计算(包括重新规划路线)会返回 尽可能缩短导航时间。但是 您可以更改路由策略 。

“较短”一词是指最佳路线中最短的路线 构建机器学习模型。较短的路线可能不是绝对路线 因为备选路线可能不太合适。例如,如果 绝对最短的路线为 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

路线标注格式

根据较短的路线规划策略,路线沿线的宣传信息会显示 距离详细信息。不过,您可以改用预计到达时间宣传信息。

配置路由调用程序格式

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

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

示例

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;