百度离线地图在导弹飞行试验中的应用
2020-12-16于海山任宏光王永刚
于海山,任宏光,王永刚
(中国空空导弹研究院, 河南 洛阳 471009)
导弹研制过程中需要一系列的系留飞行试验,用于验证制导系统对真实目标的截获与跟踪能力,暴露在飞行条件下可能存在的问题[1-3]。由于地面人员无法实时掌握载机和目标的飞行动态,飞行试验的好坏只能通过事后分析遥测数据得出结论,这极大影响试验效率,同时也给飞行试验的结果带来了很大的不确定性。
GPS[4]航姿轨迹测量系统是用于导弹空中目标截获与跟踪试验的专用测试设备,其主要功能是:1)接收载机试验弹和目标GPS飞行吊舱下传的航姿、轨迹和速度等信息;2)实时解算目标相对于载机的位置、速度以及目标在弹体系中的相对角度等信息;3)记录导弹的截获和其他工作信息,并实时显示于数据处理软件,使地面试验指挥人员及时掌握载机、导弹和目标的工作状态,以提高试验成功率和准确度。
随着互联网、计算机图像等技术的发展,以百度地图为代表的数字地图广泛应用于商业导航、智慧交通、快递物流、军事指挥等领域[5-6]。然而,出于数据敏感性考虑,导弹飞行试验数据采用具有保密资质的计算机进行处理,监测软件无法与互联网联通,从而导致无法采用在线加载应用程序接口API的方法创建地图。
未解决此问题,本文提出了一种百度地图离线加载方法用于导弹飞行试验。首先,通过将百度地图应用程序接口API的JavaScript离线化,结合VC和JavaScript(JS)混合编程,实现了百度地图的离线加载;其次,为了消除位置显示偏差[7-8],给出了离线坐标转换算法,将WGS84坐标系下的位置信息转换至BD09坐标系;第三,利用地图辅助工具实现了离线地图基准点标注、测距和电子围栏等功能,可以直观地为地面指挥人员提供飞行态势和决策依据,提高飞行试验的成功率和准确度,节约试验时间和成本。
1 轨迹测量与目标引导系统
1.1 系统组成
如图1所示,整个系留试验系统由载机(下挂系留试验弹与航姿轨迹测量系统)、目标机(下挂航姿轨迹测量系统)、地面目标引导站以及试验弹地面遥测站等部分组成。
图1 系留试验系统组成
1.2 工作原理
飞行试验中,载机、目标机按照预定的轨迹机动飞行。载机和目标机航姿轨迹测量系统用于实时测量载机和目标机的航姿与轨迹信息(包括实时姿态、航向、经度、纬度、高度、速度等信息),并将数据发送给遥测发射机,发射机通过天线向空间辐射。
目标引导软件数据处理模块实时计算双机间相对距离、高差、相对速度,以及目标在试验弹弹体系中的相对方位和俯仰角,实时引导导弹随动并截获目标,并通过弹载遥测天线将试验弹工作参数实时发送至地面遥测站。
地面目标引导站通过射频通道实时接收数据,并进行解调和解帧处理,最后调用百度地图实时显示双机的航姿与轨迹信息等。
试验结束后,将遥测站记录的导引头随动角与弹目相对方位和俯仰角度信息进行时间对齐和比对,可用于验证轨迹测量与目标引导系统的指示精度。
2 离线地图监测软件
2.1 百度地图API
百度地图API(application programming interface,API)是开源的应用程序接口,其包括JavaScript API、Web服务API、Android SDK、iOS SDK、LBS云等多种开发工具与服务,具备基础地图展现、定位、搜索、路线规划、逆/地理编码、LBS云存储与检索等基本功能,适用于PC端、移动端、服务器等多种硬件平台以及多种不同的操作系统[9]。
本文采用的JavaScript API是基于JavaScript语言的应用程序接口,可在网页、网页控件中构建地图应用,免费对用户开放。目前百度地图官方仅支持在线版的地图应用开发,通过在线加载JavaScript API文件,可在连接因特网情况下方便地实现地图应用开发。在线地图开发步骤如下[10,11]:
a) 申请百度账号和密钥;
b) 进行HTML文档声明;
也可根据需要选择其他类型的文档声明,浏览器会以标准的方式对页面进行渲染。
c) 适应移动端页面展示;
d) 设置容器样式,使地图充满整个浏览器窗口;
html{height:100%}
body{height:100%;margin:Opx;padding:Opx}
#container{height:100%}
e) 加载百度地图API文件;
f) 创建地图容器元素;
g) 通过new操作符创建地图实例;
var map=new Bmap.Map("container");
h) 地图初始化;
首先设置中心点坐标,通过BMap命名空间下的Point类来创建坐标点,本文选取的坐标点经度为116.404,纬度为39.915(天安门坐标)。随后利用centerAndZoom()方法设置中心点和地图级别。
var point =new Bmap.Point(116.404,39.915);
map.centerAndZoom(point,15);
至此,通过在线引用JavaScript API文件创建了一副以天安门为中心,等级为15级的地图,引用文件版本为V2.0版,如图2所示。
图2 在线加载JavaScript API创建地图
出于敏感性考虑,导弹飞行试验的数据通常采用具有保密资质的计算机进行处理,监测软件无法与互联网联通,从而导致以上方法无法应用。因此,本文提出了一种离线加载百度地图的方法,离线加载与在线加载的区别在于:
a) 获取离线瓦片图。
瓦片是指将一定范围内的地图按照一定的尺寸和格式,按缩放级别或者比例尺,切成若干行和列的正方形栅格图片,地图瓦片的金字塔模型如图3所示。
图3 地图瓦片金字塔模型
根据图3所示,每一级的瓦片数量为:
M=22n
(1)
式(1)中,n为当前地图级数。目前,已有多款商业地图下载软件,如水经柱、太乐等,可提供街道、卫星和混合地图瓦片下载,最高支持等级可达21级。
b) 获取离线JS API。
百度地图开发平台暂不提供离线版API的下载服务,然而通过对在线代码进行更改实现离线化功能是可行的。目前,互联网已经提供了API离线的方法,并能下载到离线版的JS API,本文采用了V2.0版的离线JS API。需要说明的是,相对于在线加载,离线API的部分功能是无法使用的。
在获取离线瓦片图和JS API后,需要对baidumap_offline_v2_load.js中的瓦片图类型和目录进行修改,修改方法如下:
imgext var bdmapcfg={
′imgext′:′.jpg′,
′tiles_dir′:′′
}
其中,imgext为瓦片图格式(jpg或png),tiles_dir为空默认瓦片目录为baidumap_v2/tiles,也可修改为其他地址。
最后,参考在线加载demo编写离线JS代码,关键步骤如下:
步骤(1):加载API load文件
步骤(2):创建地图容器元素
步骤(3):编写JS代码