{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508789485,"data":{"id":71712679,"title":"Android Demo","slug":"dx2hc8","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
本文档仅针对demo已实现的功能进行参考性描述,与实际开发情况并不完全一致,且不代表autoSDK仅能支持文档所述内容,如有更多需求,请联系对应项目的负责人。
画面上的表现方法参照相关UI效果图。
导航:规划路线后,引导到目的地的过程。
巡航:导航应用已开启,但未规划目的地。
3.1.2.1、当前道路名:需要本地有下载离线数据或在线且开启云加端2期
3.1.2.2、车道线:距离当前位置200米时出现,通过该路口后消失
3.1.2.3、电子眼:高速提前700米,普通道路提前300米显示电子眼信息,电子眼同时最多显示两个
3.1.2.4、道路设施:主要指路边的设施牌,如合流、急弯、村庄、学校、上下陡坡、注意落石、铁路道口等
tbt引擎下发的单位为秒,需要客户端转换为显示所需单位(天/小时/分钟)。目前转换工作由HMI做,非SDK。
数值 | 单位 | 取整规则 | 举例 |
小于60分钟 | 分钟 | 取整 | 20分钟 |
大于等于60分钟且小于24小时 | XX小时XX分钟 | 取整 | 3小时12分钟 |
大于等于24小时 | XX小时XX分钟 | 取整 | 25小时12分钟 |
tbt引擎下发的单位为米,需要客户端转换为显示所需单位(公里/米)。目前转换工作由HMI做,非SDK。
数值 | 单位 | 取整规则 | 举例 |
小于1000米 | 米 | 取整数 | 256米 |
大于等于1000米 | 公里 | 小于100公里,取一位小数; 大于100公里,取整数; | 32.1公里,32公里; 120公里; |
从XX(起点)出发
聚合段1
导航段1-1
导航段1-2
。。。
聚合段2
\t\t\t导航段2-1
\t\t\t导航段2-2
。。。
(聚合段3)。。。
(聚合段4)。。。
到达终点 XX(终点名称)
\t躲避拥堵+少收费
\t躲避拥堵+不走高速
\t躲避拥堵+高速优先
\t少收费+不走高速
\t躲避拥堵+少收费+不走高速
\t躲避拥堵+大路优先
躲避拥堵+速度最快
点击刷新时先判断网络状态,网络畅通时,再发起算路请求;
网络判断为离线,点击刷新 → 弹出toast : 网络未连接,请检查您的网络设置
开始计时的时间点:完全获取到数据,并在客户端展示时开始计时,规划路线的请求等待时间排除在外;
客户端本地有计时器存在时,阻断用户请求,并toast提示:重算路线与当前一致,请稍后再试;
需求范围:仅在路径规划页体现;其他部分不体现;仅在线时体现;不支持途经点、沿途搜场景。
请求时机:进入路径规划页时,客户端发起IDQ请求POI infolite接口,与在搜索页面一框搜点击sug发起的请求相同。获取区域数据。
面状区域绘制:将服务下发的AOI面状数据传给渲染面接口及线接口,进行面状区域绘制
导航场景界面区分两种状态:沉浸态和触碰态。
分类 | 元素 | 图示 | 说明 |
上层界面-显示元素 | 6.2.1引导信息卡片 | 转向箭头、距离、下一道路名、剩余里程、时间和预计到达时间、进阶动作、出口编号和名称 | |
6.2.2进阶动作 | 查看:进阶动作 | ||
6.2.3ETA栏 | 查看:ETA信息显示 | ||
6.2.4车道线 | 区分可走车道和不可走车道 | ||
6.2.5状态栏 | 显示当前系统时间 | ||
6.2.6比例尺 | 当前比例尺 | ||
6.2.7鹰眼小地图 | 查看:鹰眼小地图 | ||
6.2.8光柱图 | |||
上层界面-控制按钮 | 6.2.9放大缩小 |
| |
上层界面-控制按钮 | 6.2.10全览按钮 | 点击后展示路线全览,8秒无操作自动返回 | |
6.2.11路线刷新 | |||
6.2.12继续导航 | |||
6.2.13退出导航 |
1) 通过当前导航段,即下一个路口B的动作上提至引导卡片时,TBT通知客户端将显示的近接动作消失
2) 偏航、切换主辅路、刷新、更改偏好等有重算路线动作时,清除近接动作的展示;路线刷新后是否需要展示取决于TBT是否有新的通知下发;
3) 近接动作卡片与其他导航卡片之间存在碰撞关系,详情见xx
4) 打开导航设置、状态栏面板、交通事件详情卡片等全屏覆盖的View时,近接动作信息不消失。当前View直接覆盖;
5) 移图、放大缩小、开闭路况、切换视角、昼夜、小地图和光柱图切换时等不消失;
1) 展示TBT下发的下一动作+下一动作距离当前动作的距离,引导卡片&路口大图中均需要展示
2) 展示时机:根据TBT下发的Roadclass以及当前位置距离导航点的距离,控制开始的展示时机
Roadclass= 0 高速路:收到TBT通知的信息后,距离当前导航点≤ 1000米时,开始展示
Roadclass= 6 城市快速路:收到TBT通知的信息后,距离当前导航点≤ 1000米时,开始展示
Roadclass= 其他 一般道路 :收到TBT通知的信息后,距离当前导航点≤ 500米时,开始展示
3) 引导卡片:客户端展示时,引导卡片需要保持在原有样式基础上,加高卡片展示区域
5) 近接动作调用的动作信息均使用TBT下发的在线引导动作图标, 离线下用离线图标
6) 有出口编号和方向名称回调时,近接动作信息照常展示,引导卡片上的出口编号和方向名称展示时机、消失时机、布局等按原逻辑控制
7) 三维实景导航场景下,收到TBT通知后,需要在三维实景中的引导卡片上按相同方式展示出近接动作信息
8) 路口大图:客户端展示时,原有路口大图样式不变,在指定区域绘制出近接动作信息。路口大图原有逻辑保持不变,进度条、引导信息、车标等保持不变
1) 导航中沉浸态、操作态、全览态时,收到TBT通知后,均需要进行展示
2) 展示时,引导卡片需要保持在原有样式基础上,加高卡片展示区域
3) 加高展示的引导卡片,需要作为一种导航卡片,与其他卡片进行碰撞处理和优先级定义;
4) 路口大图场景下,当关闭路口大图进入操作态时,引导卡片仍需要展示近接动作信息
5) 状态说明:每个态之间相互切换时,近接动作信息不消失
• 里程数<1000米时,取整显示,单位为米,不显示小数,例如540米,842米
• 1000米(1公里)<里程数<10000米(10公里)时,向下取整,换算成公里后,显示最多1位小数,例如9632米,显示为9.6公里
• 里程数≥10公里时,不显示小数。显示规则四舍五入,大于500m的部分计为1km,小于500m的部分舍去。例如10.6公里,显示11公里。10.4公里,显示10公里;
• 时间<1分钟时,显示“<1分钟”
• 1分钟≤时间<60分钟,显示“xx分钟”
• 60分钟≤时间<24小时,显示“x时x分” 整数时间显示“x时”
• 24小时≤时间,显示“x天x时”
• 预计到达时间为当日内显示时间: xx:xx ; 例如23:12
• 预计到达时间为次日(后日、大后日...)内显示为: xx:xx+1、2、3; 例如:23:12+1 (+2、+3..)
1 展示内容
内容包括“出口”,出口编号(如果有,最多支持5位),方面名称信息(包括地名和路名)
2 内容数目
出口编号可能下发多个;有的出口没有编号;
出口方向信息最多取四个,包括字母+数字的道路编号、道路名称、地名、景区名、设施。TBT下发时作为一个字段,以分号隔开
3 数据范围及格式
仅包括高速、城快;
仅限于出口;
TBT 807在方向信息中新拓展了一种类型,功能类型=5,表示出口编号
格式如下::1::北京;4::京港服务区;5::21A;
功能类型5不用于播报,仅用于展示;只有出口编号,无方向信息,不做播报也不做显示;
4 来源及展示、消失时机
展示内容及顺序由TBT下发
道路等级是高速,出口在当前导航段,且剩余距离 ≤ 20 km时,通知客户端显示,并顶替下一道路名
道路等级是城快,出口在当前导航段,且剩余距离 ≤ 3km时,通知客户端显示,并顶替下一道路名
出口导航段结束后消失,客户端控制
展示时,公里数、ETA信息、导航动作等均不变;仅下一路道名信息发生变化;
举例:
当进入下一个导航段时,如果该导航点会播报方向信息,比如播报 “前方**公里,向右前方行驶,往S12、京通快速、东五环、通州方向”时,通知前端引导卡片上对应展示“S12、京通快速、东五环、通州”
5 展示策略
展示时,顶替 引导卡片&路口大图 中下一道路名信息。沉浸态、操作态、全览时均需展示。
有出口编号时,展示出口编号以及出口字样;
无出口编号时,仅展示“出口”字样。
出口编号超过一个时,或出口编号大于5个字符时,不展示出口编号;
方面名称由TBT以一个字段下发,每个名称之间以分号分隔,共下发四个;
通知时显示方面名称信息和出口编号。没有出口编号时,仅显示方向信息。仅有出口编号,没有出口方向名称时,不展示方向名;二者均没有,不做展示。
超长不折行,显示不下的部分以…表示;
每次最多显示**个字
具体说明如下:
一级分类 | 二级分类 | 示意图 | 说明 |
6.5.1栅格图(原称位图) | 实景图 | 实景图在每个路口唯一。旨在模拟真实场景,图片中可能会有路牌、真实楼块、真实桥梁等元素的建模 | |
范式图 | 一张范式图往往通用于多个路口。由固定的底图场景和上层箭头匹配生成,内容比较简单,没有路牌元素,与真实场景有一定差距。 | ||
6.5.2矢量图 | 由在线/离线引擎根据路口形状实时绘制的图,不是图片。 | ||
6.5.3三维实景图 | 三维实景图 | 主要出现在复杂的桥区和高架场景,根据真实场景建模而成。需要有本地数据 |
6.5.4路口大图出现时机
(高速路为roadclass=0,快速路为roadclass=6,普通道路为其他)
小地图显示元素:
(1)沉浸态时触碰地图界面后进入触碰态,小地图消失
(2)点击小地图位置,进入全览态,小地图消失,出现返回按钮;点击返回按钮回到沉浸态
图 1. 区间测速面板—未超速状态
图 2. 区间测速面板—超速状态
\t小于1公里时,单位为m,距离数字取整显示(例如500m)
\t大于1公里时,单位为km,距离数字最多1位小数(例如2.4km);若距离数字为整数,则取整显示(例如3km)
导航中的已走路径置灰,以解决在复杂路形(盘桥、掉头、环岛绕圈等场景)的情况下,通过图面更直观的展示给用户哪条路线是将要走的路线,哪条是已走的。
续航起步时,若判断当前在服务区场景,则不弹续航框直接进入导航场景开始引导;并且恢复上次路线
步骤1、HMI保存原有路线
1、在首次算路以及每次路线更新后,HMI需要保存完整路线
2、tbt下发路线即进行临时保存,进入服务区200米入口点时真正保存到内存中。
步骤2、续航时,HMI判断是否处于服务区场景
1、导航场景下当前位置距离前方服务区200米范围内时,HMI开始记录【当前在服务区场景】;直到沿路径驶离服务区2km外,HMI取消记录【当前在服务区场景】
*该判断仅在熄火前进行
*2km的距离使用路径全程距离做减法;例如距离服务区200米时,此时计算当前位置距离路径终点的距离是d,当当前位置距离终点的距离<(d-2000m-200m)时,则出了服务区场景
*需保证终点一直不变,如果终点发生变化,则取消记录
*由于HMI是通过tbt回调进行判断距离,不一定是准卡在200米,会小于200米一些
2、起步后,HMI读取记录,若是【当前在服务区场景】,那么判断下当前位置距离上一次熄火时位置的直线距离,若小于1km则判断还在【服务区场景】,则进行以下步骤3;若不满足条件则走正常的续航弹条逻辑,并且需要删除本地的记录【当前在服务区场景】
步骤3、恢复路线并做偏航抑制
1、HMI不弹续航框直接开始导航,并恢复原有路线、并将路线传给tbt用于做服务区偏航抑制
2、HMI请求etaTrafficUpdate接口,更新路径路况,请求是否有更好路线以及动态事件
3、tbt播报“继续导航,全程XX公里。。。”
4、没有GPS信号的情况
车道级导航demo目前支持以下几点开发调试。
现状
目前工程由sdk_android_gradle仓库为基础,加上sdk_module_main、sdk_module_business、sdk_module_common、sdk_module_basemap、sdk_module_drive、sdk_module_search、sdk_module_autoui等仓库组成
sdk_android_gradle:基础仓库
sdk_module_main:程序主入口、用户、离线数据、消息、设置、组队
sdk_module_common:公用工具和接口定义
sdk_module_business:M层逻辑
sdk_module_basemap:主图模块业务
sdk_module_drive:出行模块业务(路线规划、真实导航、模拟导航)
sdk_module_search:搜索模块业务
sdk_module_autoui:UI相关资源仓库
aar存放路径:sdk_module_business仓库
车标资源路径:sdk_module_main仓库
图层json配置路径:sdk_module_main仓库