{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508859868,"data":{"id":71713090,"title":"6.4.5鹰眼业务图层控制器","slug":"duni92","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
说明:鹰眼图是一个微型地图,用于展示总的行驶路线以及当前位置,方便用户在导航过程中随时掌握全程信息。它具备自己的mapview能力。
鹰眼图业务模式控制鹰眼图底图元素的显隐、比例尺大小、俯仰角,车位跟随等。
鹰眼图按照接口使用可以分为:鹰眼参数初始化和更新、路线创建和销毁、新能源多边形绘制和清除、新能源多边形绘制和清除、搜索充电站绘制和清除,以及全览自定义图层。
业务模式的设置通过IBizControlService::SetBizMode(MapEngineIDengineId, BizModebizMode)
模式 | 模式名 | 路网 | 路况 | 室内地图 |
BizModeDefault | 正常模式 | 显示 | 隐藏 | 隐藏 |
BizModeSimple | 精简模式 | 显示 | 隐藏 | 隐藏 |
BizModeAR | AR模式 | 隐藏 | 隐藏 | 隐藏 |
BizModeIndoor | 室内地图模式 | 显示 | 隐藏 | 显示 |
BizModeCruise2D | 巡航2d模式 | 显示 | 显示 | 隐藏 |
BizModeCruise3D | 巡航3d模式 | 显示 | 隐藏 | 隐藏 |
com.autonavi.gbl.layer.model.EagleEyeStyle
字段 | 含义 |
mapViewParam | 鹰眼图的mapview信息 |
mapColorParamDay | 鹰眼白天背景颜色值,范围0-1 |
mapColorParamNight | 鹰眼黑夜背景颜色值,范围0-1 |
eagleEyeParam | 鹰眼图相关参数 |
isNightMode | 是否黑夜模式 |
com.autonavi.gbl.layer.model.EagleEyeParam
字段 | 含义 |
isDrawViaPoint | 是否绘制途径点 |
targetWidth | 鹰眼地图路线的显示范围,由HMI算好传入 |
endPreviewLength | 末端全览的最大长度,单位:米; |
viaUpdateLength | 设定刷新频率的途径点距离,单位:米 |
viaUpdateTimeG | 大于途径点全览的最大长度的比例尺刷新时间,单位:秒 |
viaUpdateTimeS | 小于途径点全览的最大长度的比例尺刷新时间,单位:秒 |
endUpdateLength | 设定刷新频率的终点距离,单位:米 |
endUpdateTimeG | 大于终点全览的最大长度的比例尺刷新时间,单位:秒 |
endUpdateTimeS | 小于终点全览的最大长度的比例尺刷新时间,单位:秒 |
dataBuff | 鹰眼地图的背景纹理图片 |
/* 初始化鹰眼地图 */\nint com.autonavi.gbl.layer.BizGuideEagleEyeControl.init(EagleEyeStyle style, IPrepareLayerStyle layerStyle)\n\n/* 反初始化鹰眼地图 */\nboolean com.autonavi.gbl.layer.BizGuideEagleEyeControl.unInit()\n\n/* 鹰眼地图是否已经被初始化 */\nboolean com.autonavi.gbl.layer.BizGuideEagleEyeControl.isInitialized()\n\n/* 更新鹰眼图相关背景色参数 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateEagleEyeColorParam(MapColorParam mapColorParamDay, MapColorParam mapColorParamNight)\n\n/* 更新鹰眼图相关展示参数 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateEagleEyeParam(EagleEyeParam param)\n\n/* 更新鹰眼图展示位置 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateMapViewPort(MapViewPortParam portParam, boolean bSync)\n\n/* 刷新鹰眼图纹理样式 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateStyle(boolean isNightMode)\n\n/* 控制鹰眼显隐 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.setVisible(boolean bVisible)\n\n/* 返回鹰眼显隐状态 */\nboolean com.autonavi.gbl.layer.BizGuideEagleEyeControl.getVisible()\n\n/* 更新鹰眼图实时导航信息,支持内聚 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateNaviInfo(NaviInfo info)\n\n/* 更新鹰眼图车标位置,支持内聚 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateCarLocation(CarLoc carLoc)\n\n/* 设置鹰眼车标缩放系数和比例尺对应关系 */\nboolean com.autonavi.gbl.layer.BizGuideEagleEyeControl.setCarScaleByMapLevel(float[] vScales)\n\n/* 设置鹰眼路径置灰功能开关 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.setPassGreyMode(boolean bOpen)\n\n/* 绘制鹰眼地图的路径 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.drawPath(RouteDrawStyle style)\n\n/* 更新鹰眼地图的路线 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updatePaths()\n\n/* 清除鹰眼图的路径信息 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.clearPath()\n\n/* 停止导航通知,支持内聚 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.stopNavi()\n\n/* 新能源多边形绘制 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateRangeOnMapPolygon(ArrayList< RangeOnMapPolygonInfo > polygonInfoList)\n\n/* 清除新能源多边形 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.clearRangeOnMapPolygon()\n\n/* 新能源圆形绘制包含边线 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateRangeOnMapCircle(BizCircleBusinessInfo circleInfo)\n\n/* 清除新能源圆形 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.clearRangeOnMapCircle()\n\n/* 搜索充电站图层业务 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.updateSearchChargeStation(ArrayList< BizSearchChargeStationInfo > pointList)\n\n/* 清除鹰眼充电站图层 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.clearSearchChargeStation()\n \n/* 室内停车场切换楼层 */\nvoid com.autonavi.gbl.layer.BizGuideEagleEyeControl.SetParkFloor(int index, int floor)
说明:函数详情,请复制函数名称到在线API搜索
// 主屏为1024*600,鹰眼大小为200,鹰眼左上角绘制在(800,350)位置\nint width = 200;\n\nEagleEyeStyle eagleStyle = new EagleEyeStyle();\neagleStyle.mapViewParam = new MapViewParam();\neagleStyle.mapViewParam.deviceId = EGLDeviceID.EGLDeviceIDDefault;\neagleStyle.mapViewParam.engineId = MapEngineID.MapEngineIdMainEagleEye;\neagleStyle.mapViewParam.screenWidth = 1024;\neagleStyle.mapViewParam.screenHeight = 600;\nint r = 200 / 2;\nint tartgetWidth = (int) Math.sqrt((r * r + r * r));\nEagleEyeParam eagleEyeParam = eagleStyle.eagleEyeParam;\neagleEyeParam.targetWidth = tartgetWidth;\neagleEyeParam.endPreviewLength = 2000;//末端全览距离,单位:米\n\neagleStyle.mapViewParam.x = 800;\neagleStyle.mapViewParam.y = 350;\neagleStyle.mapViewParam.width = width;\neagleStyle.mapViewParam.height = width;\neagleStyle.mapViewParam.cacheCountFactor = 2f;//暂时使用默认值\n\nBinaryStream binaryStream = null;\nbinaryStream = new BinaryStream(ResUtil.decodeAssetResData(CC.getApplication(), "hawkeye/hawkeyemap_bg.png"));\neagleEyeParam.dataBuff = binaryStream;\n//day\neagleStyle.mapColorParamDay = new MapColorParam();\neagleStyle.mapColorParamDay.fRed = 0.33f;\neagleStyle.mapColorParamDay.fGreen = 0.33f;\neagleStyle.mapColorParamDay.fBlue = 0.33f;\neagleStyle.mapColorParamDay.fAlpha = 0.6f;\n\n//night\neagleStyle.mapColorParamNight = new MapColorParam();\neagleStyle.mapColorParamNight.fRed = 0.66f;\neagleStyle.mapColorParamNight.fGreen = 0.66f;\neagleStyle.mapColorParamNight.fBlue = 0.66f;\neagleStyle.mapColorParamNight.fAlpha = 0.66f;\n\neagleEyeParam.isDrawViaPoint = drawViaPoint; // 是否绘制鹰眼途经点图标,AR为true\neagleEyeParam.endPreviewLength = 0xFFFFFFFF; // 末端全览的最大长度,AR为最大值\neagleEyeParam.viaUpdateLength = 3000; // 途经点策略剩余路径长度,用于控制刷新频率,3000M\neagleEyeParam.viaUpdateTimeG = 60; // 途经点全览,>3000M,刷新频率60秒\neagleEyeParam.viaUpdateTimeS = 10; // 途经点全览,<=3000M,刷新频率10秒\neagleEyeParam.endUpdateLength = 3000; // 终点策略剩余路径长度,用于控制刷新频率,3000M\neagleEyeParam.endUpdateTimeG = 60; // 终点全览,>3000M,刷新频率60秒\neagleEyeParam.endUpdateTimeS = 10; // 终点全览,<=3000M,刷新频率10秒\n// 初始化鹰眼\nguideEagleEyeControl.init(eagleStyle, layerStyle);
鹰眼初始化逻辑:GuideEagleEyeControl.init()有前置接口:BizControlService.init
BizControlService.init接口传参的MapEngineID为鹰眼相关的内容,如:MapEngineIdMainEagleEye
需先初始化鹰眼业务配置(BizControlService.init),才能保证鹰眼初始化成功(GuideEagleEyeControl.init)
endPreviewLength是配置剩余路线全览策略的关键参数。设置的是末端全览的最大长度。如果要一直进行末端全览,则这个值设置为非常大即可,例如0xFFFFFFFF。
相关接口为:
BizGuideEagleEyeControl.init(EagleEyeStyle style, IPrepareLayerStyle layerStyle)
BizGuideEagleEyeControl.updateEagleEyeParam(EagleEyeParam param)
isDrawViaPoint是用于控制鹰眼是否绘制途径点的关键参数。
为false表示不绘制鹰眼途径点,且剩余路线全览策略是从当前车位到终点
为true表示绘制鹰眼途径点,且剩余路线全览策略是从当前车位到下一个途径点(没有下一个途径点则为终点)
相关接口为:
BizGuideEagleEyeControl.init(EagleEyeStyle style, IPrepareLayerStyle layerStyle)
BizGuideEagleEyeControl.updateEagleEyeParam(EagleEyeParam param)
dataBuff是用于控制鹰眼整体绘制效果的关键参数。dataBuff对应一张纹理,鹰眼的绘制效果是由纹理的透明区域设计效果决定的,如鹰眼绘制为圆形,则是纹理中间有块圆形透明区域。
相关接口为:
BizGuideEagleEyeControl.init(EagleEyeStyle style, IPrepareLayerStyle layerStyle)
BizGuideEagleEyeControl.updateEagleEyeParam(EagleEyeParam param)
mapViewParam是用于控制鹰眼绘制大小及位置的关键参数。
mapViewParam.x和mapViewParam.y控制鹰眼在屏幕中的位置(如鹰眼的左上角位置为(800,350))
mapViewParam.width和mapViewParam.height控制鹰眼的宽高(如鹰眼的大小为200*200)
mapViewParam.screenWidth和mapViewParam.screenHeight为鹰眼所在屏幕的大小(如屏幕分辨率为1024*600)
相关接口为:
BizGuideEagleEyeControl.init(EagleEyeStyle style, IPrepareLayerStyle layerStyle)
BizGuideEagleEyeControl.updateMapViewPort(MapViewPortParam portParam, boolean bSync)
鹰眼初始化会创建一个鹰眼mapview,反初始化会释放这个鹰眼mapview,所以建议程序生命周期只调用一次初始化,使用一个鹰眼mapview,避免多次创建和释放。比如,不用进入导航时创建,退出导航时释放,因为异步操作车标位置更新等业务,可能导致鹰眼mapview已经被释放了,还在访问鹰眼mapview进而导致崩溃等问题。