Skip to content

限时通行

功能介绍

NavigationEventListener.onTimedRestrictionEventUpdated 在路线前方存在限时通行路段,且根据预计剩余行驶时间判断车辆可能在限制生效时段内进入该路段时触发。

示例: 当前 16:55,前方 17:00–19:00 禁止左转,预计到该转弯还需超过 5 分钟 → 会触发回调。

检测到限时限制后,SDK 默认可能触发更优路线搜索;若业务自行处理更新路线请求,需在服务选项中关闭对应自动更优路线行为(参见 更优的路)。

前置条件: 已注册 NavigationEventListener 并处于导航会话中。

核心接口

接口 说明
NavigationEventListener.onTimedRestrictionEventUpdated(timedRestrictionEdges) 返回当前受限时规则影响的路线 edge 列表
NavigationServiceOptions.Builder.setTimedRestrictionDetectRange(distance) 配置前方检测距离(米)

检测机制

说明
检测周期 内部约 每 2 分钟 一次
检测范围 当前位置前方沿路线的配置距离(默认 50 km
判断依据 预计到达受限 edge 的时刻是否落在限时规则生效时段内

接口说明

1
fun onTimedRestrictionEventUpdated(timedRestrictionEdges: List<TimedRestrictionEdge>)
参数 说明
timedRestrictionEdges 受影响的路线 edge 列表

TimedRestrictionEdge 字段:

字段 说明
index 路线上的 RouteEdgeIndex
truckRestrictions 仅商用车;该 edge 上的商用车限制补充信息

truckRestrictionsList<TruckRestrictionInfo>)字段:

字段 类型 说明
type RestrictionType 商用车限制类型
reasons List<TruckRestrictionReason> 限制原因集合,可能包含尺寸类(高/宽/长/重)及法规类约束

truckRestrictions 为空时,表示该受影响 edge 没有可用的商用车限制详情或当前并非商用车相关限制场景。

配置检测距离

创建 NavigationService 时在 NavigationServiceOptions.Builder 上设置:

1
2
3
NavigationServiceOptions.Builder()
    .setTimedRestrictionDetectRange(10_000) // 单位:米;默认 50_000(50 km)
    .build()
  • 参数单位为米,默认值 50_000(50 km)。
  • 0 表示整条剩余路线。

示例代码

1
2
3
4
5
6
7
override fun onTimedRestrictionEventUpdated(edges: List<TimedRestrictionEdge>) {
    Log.w(TAG, "timed restriction affects ${edges.size} edge(s)")
    mainHandler.post {
        highlightRestrictedEdgesOnMap(edges)
        showTimedRestrictionBanner()
    }
}

注意事项

  • 列表可能含多个 edge;HMI 可高亮路线或提示用户更新路线。
  • 回调在 Message 线程,更新 UI 请切主线程。
  • 商用车导航 中商用车限时/限制能力配合时,注意 truckRestrictions 仅对商用车有意义。