{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516327622,"data":{"id":71712776,"title":"5.3.5.8 路线的保存和还原","slug":"quzduk","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
HMI可以保存算路结果的路径二进制数据(仅在线算路才有),在以后的使用中进行路线还原。使用场景举例:【服务区续航】时直接开始导航并恢复原有路线。
客户端发起算路请求
客户端发起路线还原请求
CalcRouteResultData routeData 注:一次算路结果和二次算路结果必须要有否则解码结果异常
byte[] srcBuffer
= 0x00 | 默认场景 |
SceneFlagTypeServiceAreaContinuation = 0x01 | 服务区续航场景 |
SceneFlagTypeOrdinaryContinuation = 0x02 | 传统续航场景 |
//客户端发起算路请求的情况
static ArrayList<PathInfo> com.autonavi.gbl.common.path.drive.DrivePathDecoder.decodeMultiRouteData(CalcRouteResultData routeData)
//客户端发起路线还原请求的情况
static ArrayList<PathInfo> com.autonavi.gbl.common.path.drive.DrivePathDecoder.decodeRouteData(byte[] srcBuffer)
void com.autonavi.gbl.guide.model.NaviPath.setScene(@SceneFlagType.SceneFlagType1 int value)
注意:路线还原场景中,setScene必须调用。
说明:函数详情,请复制函数名称到在线API搜索
Coord3DDouble stLastPos;\nfloat Lastcourse;\n@Override\npublic void onLocInfoUpdate(LocInfo locInfo) {\n \n stLastPos = locInfo.matchInfo.get(0).stPos;\n Lastcourse = locInfo.matchInfo.get(0).course;\n\t\n}\n\n/**\n * 路线二进制数据信息保存\n */\npublic static boolean savePathResult(PathResultData pathResultData) {\n //...\n //客户端发起路线请求的情况保存如下信息\n //save : pathResultData.calcRouteResultData.drivePlanData\n //save : pathResultData.calcRouteResultData.driveGuideData\n //save : pathResultData.calcRouteResultData.oddData (可选,不保存则无法还原路线信息)\n \n //客户端发起路线还原的情况保存如下信息\n //save : pathResultData.routeRestorationData.pData\n //save : pathResultData.routeRestorationData.pDataSize\n \n // 保存最后的位置和航向\n // save : stLastPos\n // save : Lastcourse\n // ...\n return true;\n}\n\n/**\n* 对已保存的路线二进制数据信息进行解码\n* 客户端发起路线还原的情况(savePathResult获取路线二进制数据)\n*/\npublic static ArrayList<PathInfo> decodeRouteData(byte[] bytes) {\n\treturn DrivePathDecoder.decodeRouteData(bytes);\n}\n\n/**\n* 对已保存的路线二进制数据信息进行解码\n* 客户端发起路线请求的情况(savePathResult获取路线二进制数据,\n* 一次算路结果(drivePlanData)和二次算路结果(driveGuideData)必须要有否则解码结果异常,\n* oddData为可选项,有则路线会解析出路线上的odd信息,没有则不解析出路线上的odd信息)\n*/\npublic static ArrayList<PathInfo> decodeRouteData(CalcRouteResultData routeData) {\n\treturn DrivePathDecoder.decodeMultiRouteData(routeData);\n}\n\nNaviPath naviPath;\n//设定服务区续航场景\nnaviPath.setScene(SceneFlagType.SceneFlagTypeServiceAreaContinuation);\nGuideService.setNaviPath(naviPath);