李斌,任磊
(中國(guó)電子科技集團(tuán)公司第二十研究所,西安 710068)
現(xiàn)代信息化條件下,戰(zhàn)場(chǎng)態(tài)勢(shì)指作戰(zhàn)雙方軍隊(duì)作戰(zhàn)和作戰(zhàn)企圖、行軍路線、兵力對(duì)比、兵力部署、作戰(zhàn)計(jì)劃、火力分配以及具體的作戰(zhàn)實(shí)體如作戰(zhàn)平臺(tái)、武器系統(tǒng)等作戰(zhàn)要素所處的狀態(tài)、形勢(shì)與發(fā)展趨勢(shì),而態(tài)勢(shì)可視化則可以為監(jiān)視整個(gè)戰(zhàn)場(chǎng)態(tài)勢(shì)推演過(guò)程提供全局視點(diǎn)[1],本文就此方面介紹了一種基于Google-Map的虛擬戰(zhàn)場(chǎng)防空態(tài)勢(shì)顯示方法。
Google-Map是Google公司開(kāi)發(fā)的一套基于海量衛(wèi)星影像數(shù)據(jù)的地理信息系統(tǒng),Google公司在Internet上發(fā)布了它的地圖服務(wù),并為開(kāi)發(fā)人員提供了一套調(diào)用地圖服務(wù)的數(shù)據(jù)接口,本文中使用的是Google Maps JavaScript API 第三版[2]。
艦載平臺(tái)防空態(tài)勢(shì)顯示平臺(tái)總體采用微軟 Net技術(shù)開(kāi)發(fā)整個(gè)平臺(tái)的框架,版本采用Visual Studio 2015;前端采用 JavaScript客戶端腳本技術(shù)調(diào)用Google Map提供的各類地圖服務(wù),并結(jié)合Internet Explorer 10疊加顯示后臺(tái)所提供的業(yè)務(wù)數(shù)據(jù)。
本文中使用 JavaScript API,需要使用一個(gè)WebBrowser控件承載網(wǎng)頁(yè),然后在網(wǎng)頁(yè)中實(shí)現(xiàn)C#和JavaScript語(yǔ)言的接口即可。
通過(guò)上面的代碼可將Google Map地圖服務(wù)調(diào)用到網(wǎng)頁(yè)中,第一行代碼的作用是定義 ID為“map_canvas”的DIV元素,并使用此DIV元素作為放置地圖實(shí)例的HTML容器;第二行代碼的作用是在此HTML容器中創(chuàng)建一個(gè)新的地圖實(shí)例;第三行代碼初始化地圖的中心坐標(biāo)。
此時(shí)地圖非常簡(jiǎn)單,需要添加一些控制和特性來(lái)增強(qiáng)操作性,代碼和注釋如下。
(1)設(shè)置地圖顯示選項(xiàng)
(2)設(shè)置地圖顯示類型包括衛(wèi)星圖和地形圖,并初始化為衛(wèi)星圖
(3)設(shè)置地圖初始縮放等級(jí)為6級(jí)
(4)通過(guò)addListener()來(lái)添加消息響應(yīng)
①鼠標(biāo)單擊地圖響應(yīng)
②縮放級(jí)別控制到16級(jí)
③鼠標(biāo)移動(dòng)地圖響應(yīng)
還可添加一些自定義工具,如柵格工具和地圖量測(cè)工具等。
(5)在WPF工程中添加WebBrowser控件,并通過(guò)
WebBrowser.Navigate(string source)函數(shù)進(jìn)行加載,其中sourece為HTML文件的路徑。
至此一個(gè)具有縮放、漫游、柵格顯示和測(cè)量功能,能夠響應(yīng)鼠標(biāo)操作、可以顯示衛(wèi)星影像、地形等地圖類型的Google Map地圖服務(wù)就建成了。
圖1 Google Map地圖顯示
本文中主要使用地圖疊加層Overlay來(lái)添加顯示各類目標(biāo)、運(yùn)動(dòng)航跡和其它 信息。Overlay是地圖上有經(jīng)緯坐標(biāo)的對(duì)象集合,會(huì)隨地圖拖拽或縮放而移動(dòng),主要類型包括圖標(biāo)(Marker)、折線(Polyline)、多邊形(Polygon)、信息窗口(info window)等[3]。
Overlay通常在構(gòu)造時(shí)添加到地圖上,也可以在定義構(gòu)造中所用的Options對(duì)象后,使用setMap()方法傳遞要添加疊加層的地圖,并直接在地圖上添加顯示。
移除Overlay時(shí)調(diào)用疊加層的setMap()方法傳遞null,然后將其設(shè)為null。
2.1.1 顯示要素
目標(biāo)類型:預(yù)警機(jī)、戰(zhàn)斗機(jī)、驅(qū)逐艦、護(hù)衛(wèi)艦、導(dǎo)彈等;
目標(biāo)屬性:敵方、我方、不明;
目標(biāo)數(shù)據(jù):批號(hào)、屬性、類型、航向、經(jīng)度、緯度、高度等。
2.1.2 目標(biāo)的創(chuàng)建與動(dòng)態(tài)上顯
Marker用于標(biāo)識(shí)地圖上的位置,可通過(guò)LatLng設(shè)置標(biāo)記的經(jīng)緯度坐標(biāo),并通過(guò) MarkerOptions設(shè)置標(biāo)記是否可以點(diǎn)擊、拖動(dòng)、彈跳等屬性,還可以添加陰影圖片,創(chuàng)建好Marker以后通過(guò)setMap()方法添加渲染到地圖上。地圖標(biāo)記的樣式可以通過(guò)對(duì)加載圖片的設(shè)置來(lái)個(gè)性化。本文中劇情目標(biāo)用例顯示如下圖所示。其中,ID1~ID4為紅方艦艇,ID11~ID34為藍(lán)方導(dǎo)彈,ID35~ID52為藍(lán)方戰(zhàn)斗機(jī)。
圖2 劇情目標(biāo)顯示
劇情推送頻率為100Hz,用Google Map提供的折線功能可動(dòng)態(tài)實(shí)時(shí)畫(huà)出目標(biāo)尾跡。Polyline類可定義地圖上已連接線段的疊加層,Polyline對(duì)象包含一組Latlng位置值,并繪制一系列線段,并隨著地圖縮放而縮放,隨著地圖移動(dòng)而移動(dòng),這樣就可以實(shí)時(shí)觀測(cè)到戰(zhàn)場(chǎng)態(tài)勢(shì)中目標(biāo)運(yùn)動(dòng)軌跡。
圖3 目標(biāo)運(yùn)動(dòng)軌跡顯示
在本文中,雷達(dá)點(diǎn)跡采用 Marker來(lái)顯示,如圖4所示是ID為1的艦載雷達(dá)掃描搜索或跟蹤點(diǎn)跡,當(dāng)目標(biāo)轉(zhuǎn)精跟時(shí)雷達(dá)點(diǎn)跡發(fā)送頻率增大,點(diǎn)跡更為密集。
為了能體現(xiàn)每個(gè)目標(biāo)的航跡變化趨勢(shì),屏幕上會(huì)根據(jù)需要按時(shí)間保留1s、5s、10s、30s 和60s內(nèi)的所有點(diǎn)跡。為了增加顯示效果,不同艦載雷達(dá)掃描點(diǎn)跡顯示樣式會(huì)根據(jù)需要進(jìn)行調(diào)整,以便于區(qū)分。
圖4 雷達(dá)掃描點(diǎn)跡顯示
接下來(lái)以一簡(jiǎn)單作戰(zhàn)實(shí)例進(jìn)一步演示戰(zhàn)場(chǎng)防空態(tài)勢(shì)推演過(guò)程。
(1)兵力組成
紅方由4艘艦艇組成菱形編隊(duì);
藍(lán)方由多架戰(zhàn)斗機(jī)組成,分別從各個(gè)方向向紅方編隊(duì)逼近。
(2)作戰(zhàn)流程
①藍(lán)方戰(zhàn)斗機(jī)向紅方編隊(duì)逼近,威脅度等級(jí)升高;紅方艦載雷達(dá)掃描搜索對(duì)應(yīng)空域,產(chǎn)生點(diǎn)跡和航跡,點(diǎn)跡發(fā)送給系統(tǒng)點(diǎn)跡處理設(shè)備,航跡發(fā)送給1號(hào)艦艇本指臺(tái);
②當(dāng)藍(lán)方戰(zhàn)斗機(jī)到一定區(qū)域內(nèi)時(shí),1號(hào)艦艇本指臺(tái)向雷達(dá)和武器系統(tǒng)發(fā)送目指,雷達(dá)對(duì)對(duì)應(yīng)目標(biāo)轉(zhuǎn)精跟,此時(shí)對(duì)應(yīng)此目標(biāo)的點(diǎn)跡發(fā)送頻率增大,點(diǎn)跡密集;
③當(dāng)滿足武器系統(tǒng)打擊條件時(shí),武器系統(tǒng)發(fā)送導(dǎo)彈出來(lái),并由目指數(shù)據(jù)制導(dǎo),實(shí)行精確打擊;
④當(dāng)導(dǎo)彈擊中藍(lán)方目標(biāo)時(shí),導(dǎo)彈爆炸,藍(lán)方戰(zhàn)斗機(jī)從劇情中消失。
圖5 戰(zhàn)場(chǎng)防空態(tài)勢(shì)演示
圖5中,虛線為目指線,表示由1號(hào)艦艇發(fā)送出的目指信息,指向被打擊目標(biāo),目指線隨著1號(hào)艦艇和被打擊目標(biāo)的位置變動(dòng)而進(jìn)行調(diào)整,導(dǎo)彈打出后,也會(huì)沿著目指線的方向進(jìn)行位置調(diào)整,直至擊中目標(biāo)爆炸消失。
本文介紹了一種基于 Google-Map的虛擬戰(zhàn)場(chǎng)防空態(tài)勢(shì)顯示方法,實(shí)現(xiàn)了地圖顯示查看、縮放平移、顯示類型切換,實(shí)現(xiàn)了劇情目標(biāo)、目標(biāo)航跡、目標(biāo)尾跡、雷達(dá)點(diǎn)跡、目指連線等的實(shí)時(shí)動(dòng)態(tài)顯示,并通過(guò)一個(gè)簡(jiǎn)單作戰(zhàn)實(shí)例進(jìn)一步演示了戰(zhàn)場(chǎng)防空態(tài)勢(shì)推演過(guò)程,在實(shí)際應(yīng)用中也表現(xiàn)出良好的性能。此方法也具備極大的擴(kuò)展性,為紅藍(lán)對(duì)抗、雷達(dá)組網(wǎng)探測(cè)、點(diǎn)跡數(shù)據(jù)融合、智能輔助決策和復(fù)雜戰(zhàn)場(chǎng)態(tài)勢(shì)推演等提供了一種新的參考。