董鴻鵬,張 貞,彭紫微
(中國人民解放軍92728部隊,上海 200436)
航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)是一種在飛機(jī)平臺性能和作戰(zhàn)使用環(huán)境的約束下,根據(jù)上級指揮所分配的作戰(zhàn)任務(wù),充分利用作戰(zhàn)態(tài)勢情報、戰(zhàn)場環(huán)境信息、目標(biāo)特性和武器、航電等裝備的技術(shù)性能,以最優(yōu)方法設(shè)計任務(wù)機(jī)會,實現(xiàn)空中作戰(zhàn)效能最大化的任務(wù)支持系統(tǒng)。而航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)中包含有海量的地理信息數(shù)據(jù),如二維航空圖、二維地形圖、三維影像圖、DEM高程數(shù)據(jù)、傾斜攝影數(shù)據(jù)、氣象數(shù)據(jù)以及作戰(zhàn)目標(biāo)和態(tài)勢信息等等,具有軍用地理信息系統(tǒng)(geographic information system,GIS)的功能特點,如圖層數(shù)據(jù)管理、實現(xiàn)屏幕顯示信息載負(fù)量控制、地理信息要素編碼、軍事標(biāo)圖、態(tài)勢部署等。
二維平面地圖和三維地球是航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)在進(jìn)行作戰(zhàn)行動方案制定時重要的交互界面。系統(tǒng)中的二維地圖可用于顯示航空區(qū)域的平面態(tài)勢信息,三維地球則可將戰(zhàn)場信息進(jìn)行立體化的表達(dá),如展示地形地貌、立體顯示火力范圍,便于指揮員排兵布陣和制定詳細(xì)的作戰(zhàn)行動方案。
二維地圖和三維地球有多種數(shù)據(jù)格式,包括海圖、航空圖、高程圖、衛(wèi)片圖、傾斜攝影圖等等,在制定作戰(zhàn)任務(wù)尤其是多軍兵種聯(lián)合作戰(zhàn)任務(wù)時,需要經(jīng)常聯(lián)動切換以一體化的方式進(jìn)行顯示。這種二三維一體化顯示方式可充分利用兩種顯示方式的優(yōu)點對戰(zhàn)場態(tài)勢進(jìn)行更全面的分析,如立體化顯示戰(zhàn)場上的氣象情況、地形地貌、作戰(zhàn)區(qū)域等,增強(qiáng)對整個戰(zhàn)場態(tài)勢信息的把握,減輕使用者的腦力勞動。
由于軍事任務(wù)的保密性,各個戰(zhàn)術(shù)編隊領(lǐng)受的作戰(zhàn)任務(wù)往往不同,需要對作戰(zhàn)地圖根據(jù)不同作戰(zhàn)單元進(jìn)行切割分發(fā),這就對航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)的二三維一體化顯示提出了更高的要求。
隨著計算機(jī)軟硬件水平的不斷發(fā)展,國內(nèi)外各種二三維GIS軟件層出不窮[1-2],但由于軍用軟件在顯示效率、可靠性和安全性等方面的特殊需求,應(yīng)使用編譯源碼(如C++、JavaScript等)公開的功能庫或直接用底層三維繪制引擎OpenSceneGraph(OSG)為基礎(chǔ)進(jìn)行框架構(gòu)建和開發(fā)而不是各種封裝庫,以提高地圖的繪制效率和系統(tǒng)的穩(wěn)定性。
航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)由于其功能的多樣性和復(fù)雜性,為保證系統(tǒng)穩(wěn)定運行各個功能模塊在設(shè)計時均是以功能插件的形式按規(guī)定的協(xié)議與系統(tǒng)主框架進(jìn)行交互,二三維地圖組件更是如此。二維地圖和三維地球組件是整個任務(wù)規(guī)劃系統(tǒng)交互的基礎(chǔ),其使用的數(shù)據(jù)或功能指令函數(shù)均需與系統(tǒng)中其他組件進(jìn)行交互,由系統(tǒng)框架統(tǒng)一管理,流程如圖1所示。
圖1 作戰(zhàn)飛任務(wù)規(guī)劃系統(tǒng)框架
方案中系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)由系統(tǒng)框架統(tǒng)一調(diào)用,其中如任務(wù)區(qū)域、靜態(tài)部署等二三維地圖組件統(tǒng)一顯示的數(shù)據(jù)是由框架統(tǒng)一發(fā)布管理,而二維航圖、二維軍標(biāo)、三維模型和傾斜攝影等二三維地圖組件分開使用的數(shù)據(jù),則根據(jù)系統(tǒng)設(shè)置由二三維組件根據(jù)具體場景選取相應(yīng)的繪制函數(shù)分別進(jìn)行繪制顯示,以提高系統(tǒng)顯示效率[3]。同時二三維地圖組件與其他組件的交互,如威脅分析組件、航線規(guī)劃組件等,則也是通過系統(tǒng)框架統(tǒng)一控制管理。
二三維顯示一體化是以消息驅(qū)動的方式進(jìn)行管理,即先由二維或三維地圖界面窗口采集用戶操作命令,根據(jù)響應(yīng)消息由系統(tǒng)框架在控制層調(diào)用二維或三維地圖的功能函數(shù)來響應(yīng)需要實現(xiàn)的動作,如標(biāo)注軍標(biāo)、顯示目標(biāo)模型、繪制作戰(zhàn)區(qū)域或運動軌跡等。因此航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)的二三維顯示一體化包含兩方面的內(nèi)容,一是二三維地圖數(shù)據(jù)繪制一體化;二是二三維地圖聯(lián)動一體化[4]。
航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)根據(jù)使用需求,可將二維和三維地圖組件的基礎(chǔ)繪制函數(shù)根據(jù)繪制對象分為點、線、面、文本四大類,功能接口分為環(huán)境接口、工具接口、視點接口、標(biāo)繪接口(點、線、標(biāo)牌、多邊形、模型等)、傾斜攝影加載、布告板顯示、各類特效繪制等[5]。當(dāng)二三維地圖進(jìn)行數(shù)據(jù)繪制時,根據(jù)系統(tǒng)框架發(fā)送的數(shù)據(jù),分別使用不同的繪制函數(shù)實現(xiàn)數(shù)據(jù)不同形式的顯示,如繪制目標(biāo)車輛時,二維地圖組件在指定位置繪制相應(yīng)軍標(biāo);三維地圖組件則同步繪制同一位置相應(yīng)的三維模型。
二三維地圖中的各種顯示功能如LOD(Levels of Details)數(shù)據(jù)分層顯示、LOD防擁設(shè)置、地物查詢等也都是依靠系統(tǒng)框架進(jìn)行統(tǒng)一的設(shè)置和管理,由系統(tǒng)框架對數(shù)據(jù)根據(jù)的顯示級別進(jìn)行篩選,再將相應(yīng)數(shù)據(jù)發(fā)送到二三維地圖組件進(jìn)行繪制顯示。
當(dāng)用戶操作二維地圖或三維地圖中的一個窗口時,另一個窗口會自動同步移動到相同的區(qū)域和視角,當(dāng)二三維的地圖范圍不一致時,能根據(jù)自身數(shù)據(jù)區(qū)域限制二維地圖或三維地圖的跳轉(zhuǎn)或移動命令[6]。地圖聯(lián)動一體化主要是通過一系列的坐標(biāo)轉(zhuǎn)換和函數(shù)計算以利用交互中事件觸發(fā)機(jī)制的方式,保持二維地圖窗口顯示的地理坐標(biāo)范圍與三維場景的空間坐標(biāo)范圍位置變化同步。
二維地圖通常是按照投影計算方法將地球表面的點投影到平面上,是球面坐標(biāo)系映射到平面直角坐標(biāo)系的變化過程,如常見的墨卡托投影、蘭伯特投影等,因此其在繪制時顯示距離乘以比例尺系數(shù)即為真實距離。三維地圖繪制時是基于計算機(jī)圖形學(xué)根據(jù)視覺原理計算三維投影矩陣,使用可變比例尺,特別是當(dāng)視點俯仰角接近零即視線與地面近似平行時,可顯示出無限遠(yuǎn)的場景范圍,從而繪制出具有空間感、距離感的三維地球[7]。由于二維平面地圖和三維地球的繪制數(shù)學(xué)原理不同,導(dǎo)致了兩者在進(jìn)行一體化同步聯(lián)動時會不可避免地出現(xiàn)誤差,如點選同一位置或在不同地圖范圍內(nèi)移動瀏覽窗口發(fā)生偏移。
矩形區(qū)域跳轉(zhuǎn)法是指當(dāng)用戶操作二維或三維地圖中的一個窗口時,另一個窗口會根據(jù)接收到傳遞的矩形區(qū)域進(jìn)行聯(lián)動,即通過傳遞當(dāng)前屏幕的四點坐標(biāo)進(jìn)行聯(lián)動。本文以二維地圖接收命令定位三維地圖為例,三維地圖接收命令定位二維地圖的算法部分為其實現(xiàn)的逆過程,在此不再贅述。
首先三維地圖獲取二維地圖傳遞而來的當(dāng)前屏幕四個周邊點的經(jīng)緯度A1、B1、C1、D1,利用大地坐標(biāo)轉(zhuǎn)換為空間直角坐標(biāo)公式,即公式(1),求得世界坐標(biāo)系下的點A2、B2、C2、D2。三維地圖聯(lián)動二維地圖即用空間直角坐標(biāo)轉(zhuǎn)換為大地坐標(biāo)公式(2)。
大地坐標(biāo)轉(zhuǎn)換為空間直角坐標(biāo)為[8]
(1)
空間直角坐標(biāo)轉(zhuǎn)換為大地坐標(biāo):
(2)
式中:e為橢球體第一偏心率,N為卯酉圈曲率變徑,X、Y、Z表示大地坐標(biāo)系中某一點的坐標(biāo),B、L、H表示空間坐標(biāo)系中某一點的緯度、經(jīng)度和高度值。
然后根據(jù)OpenGL繪制生成的透視投影矩陣M,即公式(3),與顯示視椎體的變換函數(shù),即公式(4),可求得當(dāng)前近椎體平面的上、下、左、右、近、遠(yuǎn)距離[9]。
(3)
視椎體變換函數(shù)
(4)
根據(jù)世界坐標(biāo)系下的點A2、B2、C2、D2,可求得其構(gòu)成矩形區(qū)域的中心點的高度和寬度,由于視點變換不會修改觀察矩陣的張角,因此轉(zhuǎn)換前視椎體的近平面寬度與視點到近平面距離不會發(fā)生改變,可以根據(jù)近平面的寬度和視點到近平面的距離,利用相似三角形求出矩形寬度填滿屏幕下的視點到矩形中心點的距離,如圖2所示。
圖2 視椎體的空間示意圖
同理根據(jù)近平面的高度和視點到近平面的距離,可以求出矩形高度填滿屏幕下的矩形中心點到視點距離,如圖3所示。圖3中實線表示三維地圖范圍,虛線為計算得到的地圖范圍。最后比較選取屏幕或投影矩陣中距離較長的邊,根據(jù)視點具體位置設(shè)置視角相機(jī)的觀察矩陣即可。
圖3 屏幕填充范圍示例
這種計算方法適用于在任務(wù)規(guī)劃系統(tǒng)中快速顯示局部地區(qū)或某個具體目標(biāo)等,或?qū)︼@示內(nèi)容有高刷新率需求,常用于低緯度區(qū)域的變換計算。由于三維地圖顯示的弧面性,在高緯度地區(qū)和大范圍時聯(lián)動時使用該方法計算時會產(chǎn)生較大的偏移誤差。
比例尺跳轉(zhuǎn)法是指當(dāng)三維地圖聯(lián)動二維地圖時,二維地圖傳遞的同步數(shù)據(jù)為其地圖當(dāng)前中心點A點經(jīng)緯度和二維地圖比例尺。本文定義的比例尺是指屏幕顯示的100個像素點在二維或三維地圖上對應(yīng)的實際公里數(shù)。具體計算過程如下:
1)首先與矩形區(qū)域跳轉(zhuǎn)法相同,利用式(3)和(4)獲得當(dāng)前顯示視椎體的顯示狀態(tài),即近椎體近平面的上、下、左、右、近、遠(yuǎn)距離;
2)根據(jù)二維地圖傳遞的比例尺,可求出100像素下對應(yīng)三維地球投影距離L;
圖4 三維地球在視椎體內(nèi)的相似三角形
3)利用球表面已知航向和距離求另一點經(jīng)緯度函數(shù),即式(5)和(6),求出距中心點A、距離為L/2,方向角為90度和270度的點B、點C;
4)使用坐標(biāo)轉(zhuǎn)換公式(1),將點B、點C轉(zhuǎn)換為世界坐標(biāo)下的點B1、點C1,從而求出B1、C1的中心點D和點B1、C1的直線距離L2;
5)根據(jù)相似三角形可得100/zNear=L2/OD,進(jìn)而求出視點O距離點D的距離OD;
6)最后利用osgEarth的setViewpoint函數(shù)設(shè)置視點位置即可,中心點為D的經(jīng)緯高,距離為OD,方向角為0°,俯仰角為-90°。
Al、Ab、Bl、Bb,分別表示A、B點的經(jīng)度和緯度,P點表示北極點,θ表示大圓始航向,a、b、p表示A、B、P三點對“弧”兩端點與地心連線的夾角,T表示AB兩點間的球面距離、R表示地球平均半徑。已知球表面A點經(jīng)緯度、航向θ和A、B兩點間的距離,可根據(jù)式(5)、(6)求出B點的經(jīng)緯度。
(5)
(6)
注:因為地球偏心率極低,所以此處可將地球看作球體,計算結(jié)果與WGS84坐標(biāo)系下測量偏差不超過0.5%[10]。比例尺跳轉(zhuǎn)計算方法適用于二三維地圖在顯示高緯度地區(qū)和大區(qū)域范圍時的聯(lián)動,可根據(jù)精度需求可適當(dāng)修改所需像素數(shù)值大小,并通過增加限制條件實現(xiàn)顯示范圍的鎖定。
一般二維地圖使用的數(shù)據(jù)格式是正交投影下的平面直角坐標(biāo)系,但也有部分地圖數(shù)據(jù)使用的是三維透視投影的球面坐標(biāo)系,此時進(jìn)行三維跳轉(zhuǎn)時只需要保持視角相機(jī)正視二維地圖即可。因此對該類使用與三維地球相同的地球橢球體坐標(biāo)系的二維地圖數(shù)據(jù),只需要保持二三維相機(jī)的觀察點經(jīng)緯度和相機(jī)距離觀察點的距離相同即可通過計算機(jī)圖形學(xué)的投影機(jī)制自動保持二三維同步。具體計算過程如下所示。
首先根據(jù)坐標(biāo)轉(zhuǎn)換矩陣求出本地點轉(zhuǎn)為世界坐標(biāo)系下的矩陣WM[11],然后根據(jù)式(7)求出相機(jī)位置變換矩陣LM,則觀察矩陣為LM×WM的逆矩陣。
(7)
式中,d表示相機(jī)位置距觀察點的距離,xr表示觀察點的俯仰角,zr表示觀察點的偏航角。
根據(jù)本文提出的航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)架構(gòu)和二三維顯示轉(zhuǎn)換算法設(shè)計構(gòu)建了一套二三維一體化的演示系統(tǒng),通過消息傳遞實現(xiàn)對用戶在操作任意場景時,如平移、縮放及目標(biāo)標(biāo)繪等,另外的一個場景利用算法實時計算視點的位置和高度變化以自動進(jìn)行同步聯(lián)動。
圖5是演示系統(tǒng)中某一處目標(biāo)點的二三維一體化效果圖,其中a)、b)、c)是居民區(qū)目標(biāo)在三維地圖中不同視角下的顯示效果,d)是居民區(qū)目標(biāo)在二維地圖上標(biāo)繪軍標(biāo)的顯示效果,系統(tǒng)實現(xiàn)了對目標(biāo)標(biāo)繪的同步數(shù)據(jù)繪制。圖6是某型地空導(dǎo)彈威脅范圍的二三維一體化顯示,左側(cè)是二維地圖的視圖,右側(cè)是三維地圖的視圖。分別采用了俯視、平視、側(cè)視三種不同的視角作為對比以驗證跳轉(zhuǎn)算法的顯示效果,可以看出在不同視角下二維地圖和三維地圖的顯示范圍均相同,地空導(dǎo)彈目標(biāo)始終在地圖的繪制中心,能夠滿足使用人員作戰(zhàn)方案制定時的計算需求,同時在多次同步跳轉(zhuǎn)后并沒有出現(xiàn)場景發(fā)生偏移或不匹配的情況。
圖5 目標(biāo)點的二三維一體化效果圖
圖6 武器威脅范圍的二三維一體化效果圖
本文設(shè)計的航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)架構(gòu),能夠?qū)崿F(xiàn)二維地圖和三維地圖的一體化同步顯示,以消息傳遞的聯(lián)動機(jī)制實現(xiàn)了作戰(zhàn)信息數(shù)據(jù)在內(nèi)容和空間分析上的一致性。本文分析提出的3種二三維地圖顯示同步的算法,能夠滿足用戶在操作航空兵戰(zhàn)術(shù)任務(wù)規(guī)劃系統(tǒng)時二三維地圖的同步性需求,并利用演示系統(tǒng)繪制了二三維一體化效果圖證明算法的可行性和準(zhǔn)確性。本系統(tǒng)在實際工程實踐中發(fā)揮了關(guān)鍵作用。