{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516326926,"data":{"id":71713249,"title":"5.3.5.7 规划页云控动态信息","slug":"nf5gkm","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

场景图

规划页云控动态信息包括事件云控信息,拥堵云控信息,禁行云控信息等,可提供行前规划页面提示的与路线相关的信息。该场景为拥堵云控信息的事例。其他场景可参考导航规划业务图层控制器拥堵事件图层(路线外)路线上拥堵线图层路线上封路事件图层路线外封路事件图层路线上事件Tip图层禁行图层)。

注:上图中“起点在限行路段,已无法避开”提示语由客户端控制显示,地图上的信息由图层内聚显示。

时序图

导航规划业务图层控制器


关键参数

云控动态信息结构CloudShowInfo字段说明

字段

说明

备注

vecRestrictCloudControl

限行内容

限行提示、避开/未避开的限行信息

vecEventCloudControl

事件

封路、路线干预、疫情检查站等事件

vecAvoidJamCloudControl

躲避拥堵

已避开的拥堵

vecForbiddenCloudControl

禁行及货车限制

禁行、货车限高限重限宽

vecHolidayCloudControl

节假日

高速路段节假日免费

vecBankingHoursCloudControl

营业时间

终点营业时间

其他

  • 上述云控信息的关联详情/点/线信息
  • 当前sdk版本未定义的其他类型云控信息

客户端无需关注,上述字段内部已经集成了各自对应的关联信息

云控动态信息细类结构字段说明

云控动态信息细类数据结构目前有RestrictCloudControl/EventCloudControl/AvoidJamCloudControl/ForbiddenCloudControl/

HolidayCloudControl/BankingHoursCloudControl,详细释义可参照前文的CloudShowInfo字段说明表,每一种结构都由以下部分组成:

客户端可以结合云控信息中的tipType和部分业务补充内容字段,展示对应的提示信息,常用的字段如下:

信息类型

字段

说明

基础信息

tipType

用于判断云控信息的二级业务类别,目前已定义的类型详见tipType类型说明,后续云端会动态增加更多类型

prio

建议的云控信息的展示优先级,客户端也可根据业务需要自行决定优先级

RestrictCloudControl补充内容

strCityName

tipType为建议设置车牌/建议开启限行时,该字段为限行城市名称

strContent

tipType为10或11时为限行内容,如"途经区域XX时间限行即将结束"

EventCloudControl补充内容

strContent

事件其他内容,如"湖光中街封路"

AvoidJamCloudControl补充内容

strJamRoadName

strJamDist

strJamTime

avoidJamDetail.detailStatus

拥堵道路名、长度、耗时、状态

ForbiddenCloudControl补充内容

forbiddenDetail.nForbSubType


0.限高 1.限宽 2.限重 3.禁止左转

4.禁止右转 5.禁止掉头 6.禁止右转调头 7.禁止直行

BankingHoursCloudControl补充内容

strTime

营业时间

tipType类型说明

tiptype

类别

1

建议设置车牌

2

建议开启限行

3

已避开限行区域

4

起点在限行区域内,未避开限行

5

终点在限行区域内,未避开限行

6

途经点在限行区域内,未避开限行

7

途经限行区域,未避开限行

8

避开即将生效的限行,用户不能走完全程限行生效

9

已打开限行,限行即将失效,可以正常通过

10

途经区域XX时间限行即将结束,当前未避开限行

11

途经区域XX时间限行即将结束,当前已经避开限行

12

常走路线限行

21

起点所在道路上有避不开的封路事件

22

途经点所在道路上有避不开的封路事件

23

终点所在道路上有避不开的封路事件

24

非起点/途经点/终点所在道路上有避不开的封路事件

25

可以避开的封路事件,已避开

26

路线干预

27

终点干预

28

常走路线封路

41

已经避开的拥堵信息

61

路线有禁行无法避开

62

货车限高限重已避开

65

常走路线禁行

63

货车限行(仅货车生效)

64

货车限行(仅货车生效)

201

网络不畅,无法避开拥堵(限行开关关闭)

202

网络不畅,无法避开拥堵、限行(限行开关打开)

203

无网状态下的路线规划

204

有网状态下的路线规划

206

ETC对账助手提示

207

武汉疫情出行提示

29

疫情检查站

30

道路解封提醒

81

高速路段节假日免费

84

今日不营业-无时间

85

今日不营业-有时间

83

还有一小时中途休息/打烊

82

店铺已打烊

205

长途规划提示用户支付宝可以办理ETC

89

路线规划的小路和窄路提示

90

外地车进杭证提示

10001

暂时关闭

 

10004

开放时间调整

 

10006

门票售罄

 

10010

路况事件

20001

第三方终点

208

货车轴数计费

核心接口

规划页云控动态信息获取

ArrayList<CloudShowInfo> com.autonavi.gbl.common.path.option.PathInfo.getCloudShowInfo()


说明:函数详情,请复制函数名称到在线API搜索

调用示例

// 算路结果观察者\nIRouteResultObserver routeResultObserver = new IRouteResultObserver() {\n    @Override\n    public void onNewRoute(PathResultData pathResultData, ArrayList<PathInfo> pathInfoList, java.lang.Object externData) {\n        \n        /* 转线程前,这边需要特殊处理。对SDK回调回来的PathInfo对象需重新构造创建一遍 */\n        ArrayList<PathInfo> paths = new ArrayList<>();\n        for(int i=0;i<pathInfoList.size();i++){\n            PathInfo paths =new PathInfo(pathInfoList.get(i));\n            paths.add(pathInfo);\n        }\n        // 根据情况决定是否将后续处理流程转为其他线程处理,如果转线程,只需将下面示例中的HandleNewRoute函数放在指定线程执行即可\n        HandleNewRoute(pathResultData, paths);\n    }\n\n    @Override\n    public void onNewRouteError(PathResultData pathResultData, java.lang.Object externData) {\n        //code ...\n    }\n};\n\n/* UI 线程逻辑 */\nvoid HandleNewRoute(PathResultData pathResultData, ArrayList<PathInfo> paths)\n{\n   PathsMgr.getInstance().setPathsCache(paths);\n   \n  // 获取路线条数\n  long size = paths.size();\n  \n  for(int i=0; i < size; i++)\n  {\n    PathInfo pathInfo = paths.get(i);\n    if (null != pathInfo && pathInfo.isValid())\n    {\n        ...\n       \t//规划页云控动态信息获取\n\t\tArrayList<CloudShowInfo> cloudShowInfos = pathInfo.getCloudShowInfo(); \n    \t//客户端由cloudShowInfos获取相关云控信息。\n    \t//以场景图为例客户端获取限行云控信息,且根据云控业务类型tiptype组织显示相应提示语\n   \t\t//cloudShowInfos[0].vecRestrictCloudControl[0].vecRestrictCloudControl.tipsControl.tipType\n    \t...\n    \t//客户端通过调用com.autonavi.gbl.layer.BizGuideRouteControl.updatePaths()触发图层内聚显示路线相关部分(见图层)\n        ...\n    }\n  }\n    \n  // 若之后业务还需使用路线 通过getPathsCache获取\n  // 若不在需当前路线时回收路线 destoryPathsCache()  \n}\n\npublic class PathsMgr {\n    public static final String TAG = "PathsMgr";\n    private ArrayList<PathInfo> mPathsCache;\n    \n    private static class SinglonHolder {\n        private static PathsMgr instance = new PathsMgr();\n    }\n\n    public static PathsMgr getInstance() {\n        return SinglonHolder.instance;\n    }\n\n    // 在UI线程缓存路线结果\n    public void setPathsCache(ArrayList<PathInfo> paths) {\n        // 清除上一次老路线缓存\n        destoryPathsCache()\n        //无效的结果不需要cache\n        if (paths == null || paths.size() <= 0) {\n            return;\n        }\n        mPathsCache = paths;\n        Logger.d(TAG,"setPathsCache:paths = {?}",paths.toString());\n    }\n    \n    // 在UI线程获取路线缓存结果\n    public ArrayList<PathInfo> getPathsCache() {\n        Logger.d(TAG,"getPathsCache:paths = {?}",mPathsCache.toString());\n        return mPathsCache;\n    }\n\n    // 不再使用当前路线时在UI线程调用,如退出路线规划页,结束真实导航\n    public void destoryPathsCache() {\n        if (mPathsCache == null || mPathsCache.size() <= 0) {\n            return;\n        }\n        Iterator<PathInfo> it = mPathsCache.iterator();\n        while(it.hasNext()){\n            PathInfo pathInfo = it.next();\n            pathInfo.delete();\n            it.remove();\n        }\n    }\n}
","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-05-09 09:32:45","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":117,"collectCount":0,"estimateDate":11,"docStatus":0,"permissions":true,"overView":false}}