{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508969154,"data":{"id":71713614,"title":"13.3 AR服务初始化、激活","slug":"vl4xpw","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
接口:com.autonavi.gbl.ar. ARService.Init(ARInitParam initParam)
关键参数:初始化参数initParam关键字段
数据来源:ar导航显示在主屏时,使用主屏createmapview的参数;ar导航副屏幕显示时,使用副屏createmapview的参数
说明:不同硬件平台(屏幕分辨率、摄像头、IMU)使用不同的配置文件
配置文件来源:HMI使用高德提供工具按标定步骤进行标定(联系高德项目经理),高德在SDK包内提供配置文件,路径:Data/arres/config /目录下
示例:配置文件名:cfg-project-msm8953forarm64-msm895364_C0401023_1_12345.data,将红色内容赋值给cfgFileName
1.ARService.Init调用之前,需要保证资源代理onGetResourceData正确实现
2.如果尚未进行标定,没有拿到配置文件,需要在初始化后通过set接口设置识别和渲染帧率,否则SDK不会向HMI请求图像
接口:boolean com.autonavi.gbl.ar.ARStatesOperator. set(@ARSettingType.ARSettingType1 int type, int value)
AR_STATE_FPS_SSD AR识别线程ssd帧率
AR_STATE_FPS_SEG AR识别线程seg帧率
AR_STATE_FPS_TRACKING AR跟踪线程track帧率
AR_STATE_FPS_RENDER AR渲染帧率
设置范围详见接口文档
接口:void com.autonavi.gbl.ar.ARService.setViewPort ((int32_t x, int32_t y, int32_t showW, int32_t showH, int32_t surfaceW, int32_t surfaceH)
关键参数:
@param x ARengine需要显示的x方向起始位置
@param y ARengine需要显示的y方向起始位置
@param showW ARengine需要显示的宽度
@param showH ARengine需要显示的高度
@param surfaceW ARengine所在surface的宽度
@param surfaceH ARengine所在surface的高度
示例:设置AR服务显示的
viewport,下例中设置AR全屏显示在一个1080*720的屏幕范围内 setViewPort(0, 0, 1080, 720, 1080, 720);
PS:surfaceW、surfaceH要和view实际的宽高一致
void com.autonavi.gbl.ar.ARService.active()
激活AR服务后,SDK开始持续向HMI请求图像数据
进入AR导航后,若AR导航显示区域和地图导航显示区域一致(左上角位置、宽高一致),那当前屏幕的导航路网地图实际就不需要显示,可以参考如下示例处理,以节省性能(注意退出AR导航时需恢复原值):
MapViewPortParam mapViewPortParam = com.autonavi.gbl.map.MapView.getMapviewPort();\nmapViewPortParam.width = 1;\nmapViewPortParam.height = 1;\ncom.autonavi.gbl.map.MapView.setMapviewPort(mapViewPortParam);\n\ncom.autonavi.gbl.map.MapView.setMapViewStatesOperator(MAP_VIEWSTATE_IS_OVERLAY_DRAW_ON, 0);\ncom.autonavi.gbl.map.MapView.setLayerCollisionEnable(false);\ncom.autonavi.gbl.map.OperatorBusiness.setMapBusinessDataPara(MAP_BUSINESSDATA_SHOW_OPTION, MapParameter.value1=0);
退出AR导航后需恢复原值(假设原来的宽高是1280*720)
MapViewPortParam mapViewPortParam = com.autonavi.gbl.map.MapView.getMapviewPort();\nmapViewPortParam.width = 1280;\nmapViewPortParam.height = 720;\ncom.autonavi.gbl.map.MapView.setMapviewPort(mapViewPortParam);\n\ncom.autonavi.gbl.map.MapView.setMapViewStatesOperator(MAP_VIEWSTATE_IS_OVERLAY_DRAW_ON, 1);\ncom.autonavi.gbl.map.MapView.setLayerCollisionEnable(true);\ncom.autonavi.gbl.map.OperatorBusiness.setMapBusinessDataPara(MAP_BUSINESSDATA_SHOW_OPTION, MapParameter.value1=MAP_CONTENT_SHOW_ALL);