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