{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516316178,"data":{"id":71713633,"title":"5.3.1.1 二次算路","slug":"as323e","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
由于路线及路线上的数据比较大,一次算路把结果都抓取下性能较差,延时较长,SDK为了提高在线算路结果响应时间,内部会分次发起算路请求,第一次算路请求返回的是路线数据,第二次算路请求返回的路线上的引导信息;
仅在线算路场景会触发二次算路,离线场景还是保持一次算路不变
为了满足用户不同场景需求,SDK根据算路应答结果是否每次都返回hmi,划分如下两种场景
SDK两次次算路结果都分别通知hmi,hmi在收到第一次算路结果时候,可以先描绘出完整路线,第二次算路应答时候,展示路线上的信息;该功能建议在规划页场景使用,用于用户快速显示路线;
启用该功能需要通过接口IRouteOption.setCalcRouteRespType = SplitRespType,算路参数设置参考【基础算路】,算路应答详见【算路结果回调】
hmi在接收到第一次算路成功应答时,可以进行路线描绘
hmi进行算路结果的失败提示或处理
当收到第二次应答时候,描绘并显示路线上的引导信息
hmi进行算路结果的失败提示或处理,同时支持hmi进行重试操作
\nRouteService mRouteService = (RouteService)ServiceMgr.getServiceMgrInstance().getBLService(SingleServiceID.RouteSingleServiceID);\n...\nRouteOption routeOption = RouteOption.create();\n...\nrouteOption.setCalcRouteRespType(SplitRespType);//设置本次算路结果为分次应答类型\n...\nmRouteService.requestRoute(routeOption);
用户发起一次算路请求,SDK内部依然发起两次算路请求,但是最终只透出一次最终算路结果通知hmi,常用于非规划页场景,如导航过程中的偏航重算等
意味着最终二次算路都成功,详见【算路结果回调】
只要其中一次算路失败,SDK都会返回失败给hmi,hmi根据算路结果进行失败提示或处理
\nRouteService mRouteService = (RouteService)ServiceMgr.getServiceMgrInstance().getBLService(SingleServiceID.RouteSingleServiceID);\n// 全局控制参数需要先设置渠道号信息\nmRouteService.control(RouteControlKey.RouteControlConfigSetOddKey, "C04010111110");\n...\nRouteOption routeOption = RouteOption.create();\n...\n//默认已开启算路结果应答为合并应答类型,或者主动设置为合并应答类型也可\nrouteOption.setCalcRouteRespType(MergeRespType);//该设置仅针对单次算路而言\n...\nmRouteService.requestRoute(routeOption);