于海山,任宏光,王永剛
(中國空空導(dǎo)彈研究院, 河南 洛陽 471009)
導(dǎo)彈研制過程中需要一系列的系留飛行試驗,用于驗證制導(dǎo)系統(tǒng)對真實目標(biāo)的截獲與跟蹤能力,暴露在飛行條件下可能存在的問題[1-3]。由于地面人員無法實時掌握載機和目標(biāo)的飛行動態(tài),飛行試驗的好壞只能通過事后分析遙測數(shù)據(jù)得出結(jié)論,這極大影響試驗效率,同時也給飛行試驗的結(jié)果帶來了很大的不確定性。
GPS[4]航姿軌跡測量系統(tǒng)是用于導(dǎo)彈空中目標(biāo)截獲與跟蹤試驗的專用測試設(shè)備,其主要功能是:1)接收載機試驗彈和目標(biāo)GPS飛行吊艙下傳的航姿、軌跡和速度等信息;2)實時解算目標(biāo)相對于載機的位置、速度以及目標(biāo)在彈體系中的相對角度等信息;3)記錄導(dǎo)彈的截獲和其他工作信息,并實時顯示于數(shù)據(jù)處理軟件,使地面試驗指揮人員及時掌握載機、導(dǎo)彈和目標(biāo)的工作狀態(tài),以提高試驗成功率和準(zhǔn)確度。
隨著互聯(lián)網(wǎng)、計算機圖像等技術(shù)的發(fā)展,以百度地圖為代表的數(shù)字地圖廣泛應(yīng)用于商業(yè)導(dǎo)航、智慧交通、快遞物流、軍事指揮等領(lǐng)域[5-6]。然而,出于數(shù)據(jù)敏感性考慮,導(dǎo)彈飛行試驗數(shù)據(jù)采用具有保密資質(zhì)的計算機進(jìn)行處理,監(jiān)測軟件無法與互聯(lián)網(wǎng)聯(lián)通,從而導(dǎo)致無法采用在線加載應(yīng)用程序接口API的方法創(chuàng)建地圖。
未解決此問題,本文提出了一種百度地圖離線加載方法用于導(dǎo)彈飛行試驗。首先,通過將百度地圖應(yīng)用程序接口API的JavaScript離線化,結(jié)合VC和JavaScript(JS)混合編程,實現(xiàn)了百度地圖的離線加載;其次,為了消除位置顯示偏差[7-8],給出了離線坐標(biāo)轉(zhuǎn)換算法,將WGS84坐標(biāo)系下的位置信息轉(zhuǎn)換至BD09坐標(biāo)系;第三,利用地圖輔助工具實現(xiàn)了離線地圖基準(zhǔn)點標(biāo)注、測距和電子圍欄等功能,可以直觀地為地面指揮人員提供飛行態(tài)勢和決策依據(jù),提高飛行試驗的成功率和準(zhǔn)確度,節(jié)約試驗時間和成本。
如圖1所示,整個系留試驗系統(tǒng)由載機(下掛系留試驗彈與航姿軌跡測量系統(tǒng))、目標(biāo)機(下掛航姿軌跡測量系統(tǒng))、地面目標(biāo)引導(dǎo)站以及試驗彈地面遙測站等部分組成。
圖1 系留試驗系統(tǒng)組成
飛行試驗中,載機、目標(biāo)機按照預(yù)定的軌跡機動飛行。載機和目標(biāo)機航姿軌跡測量系統(tǒng)用于實時測量載機和目標(biāo)機的航姿與軌跡信息(包括實時姿態(tài)、航向、經(jīng)度、緯度、高度、速度等信息),并將數(shù)據(jù)發(fā)送給遙測發(fā)射機,發(fā)射機通過天線向空間輻射。
目標(biāo)引導(dǎo)軟件數(shù)據(jù)處理模塊實時計算雙機間相對距離、高差、相對速度,以及目標(biāo)在試驗彈彈體系中的相對方位和俯仰角,實時引導(dǎo)導(dǎo)彈隨動并截獲目標(biāo),并通過彈載遙測天線將試驗彈工作參數(shù)實時發(fā)送至地面遙測站。
地面目標(biāo)引導(dǎo)站通過射頻通道實時接收數(shù)據(jù),并進(jìn)行解調(diào)和解幀處理,最后調(diào)用百度地圖實時顯示雙機的航姿與軌跡信息等。
試驗結(jié)束后,將遙測站記錄的導(dǎo)引頭隨動角與彈目相對方位和俯仰角度信息進(jìn)行時間對齊和比對,可用于驗證軌跡測量與目標(biāo)引導(dǎo)系統(tǒng)的指示精度。
百度地圖API(application programming interface,API)是開源的應(yīng)用程序接口,其包括JavaScript API、Web服務(wù)API、Android SDK、iOS SDK、LBS云等多種開發(fā)工具與服務(wù),具備基礎(chǔ)地圖展現(xiàn)、定位、搜索、路線規(guī)劃、逆/地理編碼、LBS云存儲與檢索等基本功能,適用于PC端、移動端、服務(wù)器等多種硬件平臺以及多種不同的操作系統(tǒng)[9]。
本文采用的JavaScript API是基于JavaScript語言的應(yīng)用程序接口,可在網(wǎng)頁、網(wǎng)頁控件中構(gòu)建地圖應(yīng)用,免費對用戶開放。目前百度地圖官方僅支持在線版的地圖應(yīng)用開發(fā),通過在線加載JavaScript API文件,可在連接因特網(wǎng)情況下方便地實現(xiàn)地圖應(yīng)用開發(fā)。在線地圖開發(fā)步驟如下[10,11]:
a) 申請百度賬號和密鑰;
b) 進(jìn)行HTML文檔聲明;
也可根據(jù)需要選擇其他類型的文檔聲明,瀏覽器會以標(biāo)準(zhǔn)的方式對頁面進(jìn)行渲染。
c) 適應(yīng)移動端頁面展示;
d) 設(shè)置容器樣式,使地圖充滿整個瀏覽器窗口;
html{height:100%}
body{height:100%;margin:Opx;padding:Opx}
#container{height:100%}
e) 加載百度地圖API文件;
f) 創(chuàng)建地圖容器元素;
g) 通過new操作符創(chuàng)建地圖實例;
var map=new Bmap.Map("container");
h) 地圖初始化;
首先設(shè)置中心點坐標(biāo),通過BMap命名空間下的Point類來創(chuàng)建坐標(biāo)點,本文選取的坐標(biāo)點經(jīng)度為116.404,緯度為39.915(天安門坐標(biāo))。隨后利用centerAndZoom()方法設(shè)置中心點和地圖級別。
var point =new Bmap.Point(116.404,39.915);
map.centerAndZoom(point,15);
至此,通過在線引用JavaScript API文件創(chuàng)建了一副以天安門為中心,等級為15級的地圖,引用文件版本為V2.0版,如圖2所示。
圖2 在線加載JavaScript API創(chuàng)建地圖
出于敏感性考慮,導(dǎo)彈飛行試驗的數(shù)據(jù)通常采用具有保密資質(zhì)的計算機進(jìn)行處理,監(jiān)測軟件無法與互聯(lián)網(wǎng)聯(lián)通,從而導(dǎo)致以上方法無法應(yīng)用。因此,本文提出了一種離線加載百度地圖的方法,離線加載與在線加載的區(qū)別在于:
a) 獲取離線瓦片圖。
瓦片是指將一定范圍內(nèi)的地圖按照一定的尺寸和格式,按縮放級別或者比例尺,切成若干行和列的正方形柵格圖片,地圖瓦片的金字塔模型如圖3所示。
圖3 地圖瓦片金字塔模型
根據(jù)圖3所示,每一級的瓦片數(shù)量為:
M=22n
(1)
式(1)中,n為當(dāng)前地圖級數(shù)。目前,已有多款商業(yè)地圖下載軟件,如水經(jīng)柱、太樂等,可提供街道、衛(wèi)星和混合地圖瓦片下載,最高支持等級可達(dá)21級。
b) 獲取離線JS API。
百度地圖開發(fā)平臺暫不提供離線版API的下載服務(wù),然而通過對在線代碼進(jìn)行更改實現(xiàn)離線化功能是可行的。目前,互聯(lián)網(wǎng)已經(jīng)提供了API離線的方法,并能下載到離線版的JS API,本文采用了V2.0版的離線JS API。需要說明的是,相對于在線加載,離線API的部分功能是無法使用的。
在獲取離線瓦片圖和JS API后,需要對baidumap_offline_v2_load.js中的瓦片圖類型和目錄進(jìn)行修改,修改方法如下:
imgext var bdmapcfg={
′imgext′:′.jpg′,
′tiles_dir′:′′
}
其中,imgext為瓦片圖格式(jpg或png),tiles_dir為空默認(rèn)瓦片目錄為baidumap_v2/tiles,也可修改為其他地址。
最后,參考在線加載demo編寫離線JS代碼,關(guān)鍵步驟如下:
步驟(1):加載API load文件
步驟(2):創(chuàng)建地圖容器元素
步驟(3):編寫JS代碼