Skip to content

导航路线规划

关于云端路线规划跨区延时:泰为提供的测试服务器通常部署在 US West(Oregon)。因此,在北美以外区域进行云端路线规划时,可能出现较明显的响应延时;该现象主要由跨区域网络时延引起,不代表 SDK 路线规划能力问题。生产环境会根据目标市场就近部署服务,将跨区域网络时延影响降至最低。

基本介绍

导航路线规划功能帮助驾驶员安全到达目的地。它可针对给定的起终点 OD 对进行路线、预计到达时间(ETA)、导航引导和通行成本计算。开发者可以使用不同的代价模型,并配置多种避让条件,例如避开未铺装道路、高速公路、收费道路、季节性道路、指定道路等,最多可计算一条或多条候选路线。算路结果可返回路线总览、分段信息、引导动作、道路几何、交通、收费、限行和货车限制等数据。引导计算支持分段式引导计算,可缩短开始导航前的等待时间;通行成本计算能力还支持能耗估算和续航里程预测。

使用路线规划功能时,以下接口和模型需要重点了解:

  • NavigationService:导航服务入口,提供 Hybrid 算路任务创建。
  • NavigationService.createNavigableRouteTask(...):创建算路任务(本文档求路主入口)。
  • Task<RouteResponse>:算路任务对象,通过 runAsyncrunSync 执行并获取结果。
  • RouteRequest:路线规划请求,通过 RouteRequest.Builder 构建。
  • RouteResponse:路线规划响应包装,通过 response 获取状态与路线列表。
  • Route:单条路线结果,包含路线长度、耗时、分段、步骤、道路形状点和附加信息。
  • RoutePreferences:路线偏好,用于设置避让高速、收费、拥堵、渡轮、隧道等选项。

求路流程概览

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
NavigationService.createNavigableRouteTask(request)
        ↓
Task<RouteResponse>
        ↓
task.runAsync { } / task.runSync { }   // 执行任务
        ↓
RouteResponse → response.status / response.result
        ↓
List<Route>
        ↓
task.dispose()                         // 释放任务资源
  1. 构建 RouteRequest
  2. 调用 createNavigableRouteTask 获取 Task<RouteResponse>
  3. 调用 runAsync(异步)或 runSync(同步)执行任务。
  4. 在回调中检查 response.response.status,从 response.response.result 读取 Route 列表。
  5. 使用完毕后调用 task.dispose()

说明

  • 导航算路使用 createNavigableRouteTask,采用 Hybrid 策略,无需 手动指定 Onboard / Cloud;SDK 会根据当前网络状态、地图数据版本等信息自动选择最终适用的算路方式。
  • 起终点通过 GeoLocation 提供位置;坐标使用 WGS84 经纬度。
  • 途经点通过 RouteRequest.Builder.stopPoints(...) 设置,顺序即期望经过顺序。
  • 请求多路线时使用 routeCount,有效值为 13;实际返回数量可能少于请求数量。
  • 如果设置了途经点,即使 routeCount 大于 1,当前也可能最多返回一条路线。

相关阅读

路线规划相关内容按主题整理在下列文档中,可按你的集成阶段直接查看对应章节:

  • 算路请求:算路模式、策略、位置输入、车辆配置、云端鉴权等请求侧内容。
  • 算路结果:结果状态码、路线模型与结果解析示例。
  • EV算路:EV Trip Planner 请求、充电偏好配置与 EV 结果解析。