{"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":"


1.前言

本文档仅针对demo已实现的功能进行参考性描述,与实际开发情况并不完全一致,且不代表autoSDK仅能支持文档所述内容,如有更多需求,请联系对应项目的负责人。

2.概要

画面上的表现方法参照相关UI效果图。

3.术语及缩略语

导航:规划路线后,引导到目的地的过程。

巡航:导航应用已开启,但未规划目的地。

4.功能描述

01定位

1.1定位

1.2定位状态

1.3辅助定位

02地图显示

2.1比例尺缩放

2.2车头模式

2.3电子罗盘

2.4当前位置

2.5移图操作

03巡航

3.1定义

3.1.2.1、当前道路名:需要本地有下载离线数据或在线且开启云加端2期

3.1.2.2、车道线:距离当前位置200米时出现,通过该路口后消失

3.1.2.3、电子眼:高速提前700米,普通道路提前300米显示电子眼信息,电子眼同时最多显示两个

3.1.2.4、道路设施:主要指路边的设施牌,如合流、急弯、村庄、学校、上下陡坡、注意落石、铁路道口等

3.2巡航自动比例尺

  1. 起步行驶 < 10 迈:25m
  2. 低速行驶 10~30 : 25~50m
  3. 中速行驶 30~80迈 :50m~100m
  4. 高速行驶 80~100 : 100m~200m
  1. 每次进入巡航时,根据当前速度,即定位回调的速度信息,判断当前所需要对应的比例尺是多少级
  2. GPS速度1秒内突变超过35km/h时,舍弃该GPS点。速度突变只处理向上突变,即从低到高的突变需要处理,从高到低不做处理
  3. 当停车时,车速为0后,定位再次回调GPS速度信息时,取连续的5个GPS点取平均值,平均值大于3km/h再开始变化。变化后不再有此限制,直到下一次回调速度为0,再次循环该逻辑。避免停车时由于GPS飘移导致频繁的抖动

04搜索

4.1一框搜

4.2预搜索

4.3搜周边

4.4搜索结果列表

4.5沿途搜索

05路线

5.1路线显示

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公里;

  1. 最多推荐三条路线,由服务端下发
  2. 每条路线带有路线标签:推荐、高速多等,标签显示什么,由导航服务下发

5.2路线详情

从XX(起点)出发

聚合段1

导航段1-1

导航段1-2

。。。

聚合段2

\t\t\t导航段2-1

\t\t\t导航段2-2

。。。

(聚合段3)。。。

(聚合段4)。。。

到达终点 XX(终点名称)

5.3路线偏好

  1. 躲避拥堵:用实时路况进行算路,帮助用户尽可能的躲避拥堵路段,走最快捷路线
  2. 少收费:尽量规划避免收费的路线。在以下两种情况,可能还会规划收费路线
    • 不收费到不了目的地
  3. 不走高速:尽量规划不走高速的路线。在以下两种情况,可能还会规划走高速的路线
    • 不走高速到不了目的地
  4. 高速优先:尽量规划高速优先的路线
  5. 高德推荐:
  6. 大路优先:
  7. 速度最快:

\t躲避拥堵+少收费

\t躲避拥堵+不走高速

\t躲避拥堵+高速优先

\t少收费+不走高速

\t躲避拥堵+少收费+不走高速

\t躲避拥堵+大路优先

躲避拥堵+速度最快


5.4添加途经点&沿途搜

5.5道路名高亮

\"image.png\"

5.6路线刷新

点击刷新时先判断网络状态,网络畅通时,再发起算路请求;

网络判断为离线,点击刷新 → 弹出toast : 网络未连接,请检查您的网络设置

     开始计时的时间点:完全获取到数据,并在客户端展示时开始计时,规划路线的请求等待时间排除在外;

     客户端本地有计时器存在时,阻断用户请求,并toast提示:重算路线与当前一致,请稍后再试;


5.7显示终点预计到达时间

5.7.1覆盖范围

5.7.2基本规则

5.7.3显示格式

5.8终点区域面高亮

需求范围:仅在路径规划页体现;其他部分不体现;仅在线时体现;不支持途经点、沿途搜场景。

请求时机:进入路径规划页时,客户端发起IDQ请求POI infolite接口,与在搜索页面一框搜点击sug发起的请求相同。获取区域数据。

面状区域绘制:将服务下发的AOI面状数据传给渲染面接口及线接口,进行面状区域绘制

5.9模拟导航

  1. 低速场景,速度为180km/h
  2. 中速场景,速度为480km/h
  3. 高速场景,速度为680km/h。 

06导航

6.1导航界面

导航场景界面区分两种状态:沉浸态和触碰态。

6.2导航场景界面元素

分类

元素

图示

说明

上层界面-显示元素

6.2.1引导信息卡片



转向箭头、距离、下一道路名、剩余里程、时间和预计到达时间、进阶动作、出口编号和名称


6.2.2进阶动作



查看:进阶动作


6.2.3ETA栏


查看:ETA信息显示


6.2.4车道线


区分可走车道和不可走车道


6.2.5状态栏


\"image.png\"


显示当前系统时间


6.2.6比例尺



当前比例尺


6.2.7鹰眼小地图



查看:鹰眼小地图


6.2.8光柱图


上层界面-控制按钮

6.2.9放大缩小

  • 最小10米比例尺,最大1000米比例尺;
  • 默认50米比例尺;
  • 若未开启自动比例尺功能,比例尺保持在50米不变;若开启了自动比例尺功能,则比例尺自动变化

上层界面-控制按钮

6.2.10全览按钮

点击后展示路线全览,8秒无操作自动返回


6.2.11路线刷新



6.2.12继续导航



6.2.13退出导航


6.3进阶动作

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) 状态说明:每个态之间相互切换时,近接动作信息不消失

6.3ETA信息显示

剩余里程

• 里程数<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..)

6.4出口名称和编号

1 展示内容

内容包括“出口”,出口编号(如果有,最多支持5位),方面名称信息(包括地名和路名)

\"image.png\"

2 内容数目

出口编号可能下发多个;有的出口没有编号;

出口方向信息最多取四个,包括字母+数字的道路编号、道路名称、地名、景区名、设施。TBT下发时作为一个字段,以分号隔开


3 数据范围及格式

仅包括高速、城快;

仅限于出口;

TBT 807在方向信息中新拓展了一种类型,功能类型=5,表示出口编号

格式如下::1::北京;4::京港服务区;5:21A

功能类型5不用于播报,仅用于展示;只有出口编号,无方向信息,不做播报也不做显示;


4 来源及展示、消失时机

展示内容及顺序由TBT下发

道路等级是高速,出口在当前导航段,且剩余距离 ≤ 20 km时,通知客户端显示,并顶替下一道路名

道路等级是城快,出口在当前导航段,且剩余距离 ≤ 3km时,通知客户端显示,并顶替下一道路名

出口导航段结束后消失,客户端控制

展示时,公里数、ETA信息、导航动作等均不变;仅下一路道名信息发生变化;


举例:

当进入下一个导航段时,如果该导航点会播报方向信息,比如播报 “前方**公里,向右前方行驶,往S12、京通快速、东五环、通州方向”时,通知前端引导卡片上对应展示“S12、京通快速、东五环、通州”


5 展示策略

展示时,顶替 引导卡片&路口大图 中下一道路名信息。沉浸态、操作态、全览时均需展示。

有出口编号时,展示出口编号以及出口字样;

无出口编号时,仅展示“出口”字样。

出口编号超过一个时,或出口编号大于5个字符时,不展示出口编号;

方面名称由TBT以一个字段下发,每个名称之间以分号分隔,共下发四个;

通知时显示方面名称信息和出口编号。没有出口编号时,仅显示方向信息。仅有出口编号,没有出口方向名称时,不展示方向名;二者均没有,不做展示。

超长不折行,显示不下的部分以…表示;

每次最多显示**个字


6.5路口放大图

具体说明如下:

一级分类

二级分类

示意图

说明

6.5.1栅格图(原称位图)

实景图



实景图在每个路口唯一。旨在模拟真实场景,图片中可能会有路牌、真实楼块、真实桥梁等元素的建模

范式图


一张范式图往往通用于多个路口。由固定的底图场景和上层箭头匹配生成,内容比较简单,没有路牌元素,与真实场景有一定差距。

6.5.2矢量图





由在线/离线引擎根据路口形状实时绘制的图,不是图片。

6.5.3三维实景图

三维实景图


主要出现在复杂的桥区和高架场景,根据真实场景建模而成。需要有本地数据


6.5.4路口大图出现时机

(高速路为roadclass=0,快速路为roadclass=6,普通道路为其他)


6.6鹰眼小地图

6.6.1鹰眼小地图显示内容

小地图显示元素:

6.6.2鹰眼小地图操作

(1)沉浸态时触碰地图界面后进入触碰态,小地图消失

(2)点击小地图位置,进入全览态,小地图消失,出现返回按钮;点击返回按钮回到沉浸态

6.7区间测速

图 1. 区间测速面板—未超速状态  


图 2. 区间测速面板—超速状态


  1. 显示时机:经过区间测速起点后,开始显示区间测速信息面板
  2. 消失时机:经过区间测速终点后,消失此面板
  1. 区间测速电子眼图标
  2. 平均速度:单位km/h
  3. 剩余距离:

\t小于1公里时,单位为m,距离数字取整显示(例如500m)

\t大于1公里时,单位为km,距离数字最多1位小数(例如2.4km);若距离数字为整数,则取整显示(例如3km)

  1. 由tbt通知,起点气泡和终点气泡一起显示
  2. 显示时机:300米(高速、城快)/700米(其他道路)------由tbt引擎控制
  3. 消失时机:起点走过消失,终点走过消失------由上层控制

6.8多备选路线与动态导航

6.9已走路线置灰

导航中的已走路径置灰,以解决在复杂路形(盘桥、掉头、环岛绕圈等场景)的情况下,通过图面更直观的展示给用户哪条路线是将要走的路线,哪条是已走的。

7.0服务区续航

续航起步时,若判断当前在服务区场景,则不弹续航框直接进入导航场景开始引导;并且恢复上次路线


步骤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;若不满足条件则走正常的续航弹条逻辑,并且需要删除本地的记录【当前在服务区场景】


\"image.png\"



步骤3、恢复路线并做偏航抑制

1、HMI不弹续航框直接开始导航,并恢复原有路线、并将路线传给tbt用于做服务区偏航抑制



2、HMI请求etaTrafficUpdate接口,更新路径路况,请求是否有更好路线以及动态事件

3、tbt播报“继续导航,全程XX公里。。。”

4、没有GPS信号的情况

  1. 仅针对服务区续航恢复路线场景
  2. 信号的传入需要在恢复路线之前


07车道级导航

车道级导航demo目前支持以下几点开发调试。

\"image.png\"


----------------

现状

源码工程介绍:

\"image.png\"


工程模块说明

目前工程由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仓库


\"image.png\"


车标资源路径:sdk_module_main仓库


\"image.png\"


图层json配置路径:sdk_module_main仓库


\"image.png\"

","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-10-19 09:59:47","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":648,"collectCount":2,"estimateDate":28,"docStatus":0,"permissions":true,"overView":false}}