路线计算(包括重新规划路线)会返回导航时间最短的路线,作为默认最佳路线。不过,您可以更改路线规划策略,以便系统返回较短的备选路线。
“较短”是指根据我们的默认费用模型,在最佳路线中距离最短的路线。较短的路线可能不是绝对最短的路线,因为该选项可能不是理想的替代方案。例如,如果绝对最短路线为 10 公里,需要 50 分钟才能到达目的地,而另一条路线为 15 公里,但只需 20 分钟即可到达目的地,那么第二条路线是最佳选择,因为花费 30 分钟来缩短 5 公里的路程并不划算。
为行程设置路线规划策略后,除非行程结束,否则该策略不会更改。如需更改现有行程的路线规划策略,您必须清除目的地,然后使用新的路线规划策略重新设置目的地。
获取路线详情
如需确定哪种路线策略是给定途经点的最佳选择,请调用 getRouteInfo()
以获取默认最佳路线和绝对较短路线的路线详细信息。详细信息包括到达目的地航点的时长和距离。
这些详细信息来自 RouteInfo
,并以 ListenableResultFuture
的形式返回。
示例
以下代码示例演示了如何获取两种路线规划策略的路线详情。
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
设置路由策略
您可以在调用 setDestinations()
时通过设置 RoutingOptions.routingStrategy
来配置路由策略。
RoutingOptions.routingStrategy
采用以下枚举值之一:
枚举值 | 说明 |
---|---|
RoutingStrategy.DEFAULT_BEST | 根据 Navigation SDK 的默认费用模型对路线进行排名。这是默认的路由策略。 |
RoutingStrategy.SHORTER | 按距离对路线进行排名。排名最高的路线是返回的路线中最短的路线。 |
示例
以下代码示例展示了如何设置较短路线偏好设置。
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
包含轮渡的路线
默认情况下,NavSDK 会排除包含渡轮的路线。如果您希望在路线中包含渡轮选项,可以调整此路线偏好设置,将行程设置为包含渡轮路段,方法是将 avoidFerries
设置为 false
。
示例
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
路线宣传信息的格式
在“偏好较短路线”模式下,沿途的标注会显示距离详细信息。不过,您可以改用“预计到达时间”宣传信息。
配置路线标注格式
您可以在 NavigationView
(或 NavigationFragment
)中调用 setRouteCalloutInfoFormat
来更改路线标注格式。setRouteCalloutInfoFormat
采用以下枚举值之一:
枚举值 | 说明 |
---|---|
RouteCalloutInfoFormat.DEFAULT | 使用默认的最佳路线规划策略时,显示剩余时间。显示使用较短路线的路线规划策略时的剩余距离。 |
RouteCalloutInfoFormat.TIME | 显示剩余时间。 |
RouteCalloutInfoFormat.DISTANCE | 显示剩余距离。 |
示例
以下代码示例展示了如何配置路线标注格式。
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);