孫肖
【摘 要】利用MGS(Military Graphic System,軍用圖形系統(tǒng))設(shè)計(jì)態(tài)勢顯示系統(tǒng),實(shí)現(xiàn)地圖、各種航跡、各種相關(guān)數(shù)據(jù)以及電磁態(tài)勢的顯示。同時(shí),該系統(tǒng)具有較好的可重用性,稍加改動(dòng),就可以應(yīng)用在HLA系統(tǒng)中。
【關(guān)鍵詞】態(tài)勢顯示;MGS;GIS
1 引言
GIS系統(tǒng)(Geographic Information System,地理信息系統(tǒng))是一種將空間位置信息與屬性數(shù)據(jù)結(jié)合在一直的系統(tǒng)。以此為基礎(chǔ)建立起來的各種態(tài)勢顯示系統(tǒng)已應(yīng)用到各個(gè)領(lǐng)域。大到針對(duì)某個(gè)地區(qū)乃至全球的數(shù)字地面模型資料所建立起來的龐大系統(tǒng),如美國軍方的C3I系統(tǒng)的輔助指揮作戰(zhàn)的GIS系統(tǒng)、“陸地勇士”系統(tǒng)的綜合頭盔子系統(tǒng) (IHAS);小到只是結(jié)合了簡單平面位置坐標(biāo)的小型管理系統(tǒng),如一個(gè)城市的出租車定位顯示管理系統(tǒng)。
地圖處理和態(tài)勢信息系統(tǒng)組件的軍用圖形處理開發(fā)軟件包MGS(Military Graphic System,軍用圖形系統(tǒng))屬于GIS系統(tǒng)的一種,它提供了一組用于面向軍事應(yīng)用的圖形程序設(shè)計(jì)的功能函數(shù)、方法和事件。MGS不僅為面向圖形的應(yīng)用程序提供了基本的開發(fā)環(huán)境,它還同時(shí)實(shí)現(xiàn)了程序的設(shè)備無關(guān)性,從而大大提高了圖形應(yīng)用程序的可移植性。
2 態(tài)勢顯示系統(tǒng)的組成
一個(gè)典型基于MGS的態(tài)勢顯示軟件包括如下三個(gè)主要組成部分:MGS平臺(tái)、數(shù)據(jù)處理模塊和態(tài)勢顯示模塊。系統(tǒng)組成如圖:
2.1 MGS平臺(tái)
MGS平臺(tái)是顯示系統(tǒng)的基礎(chǔ),用來支撐態(tài)勢顯示。在實(shí)際應(yīng)用中,態(tài)勢顯示系統(tǒng)一般采用矢量格式的地圖作為底圖,這樣可以保證在態(tài)勢圖時(shí)行縮放時(shí),不會(huì)出現(xiàn)模糊失真的情況。下面討論MGS平臺(tái)的重要接口及概念。
MGS平臺(tái)的API函數(shù)接口
MGS軍用圖形處理開發(fā)軟件包提供了一套功能全面、使用靈活的API函數(shù)接口,這些函數(shù)從功能上分,可分為圖形處理基礎(chǔ)功能和應(yīng)用功能兩大部分。按照所提供的API函數(shù)功能的不同,這些函數(shù)被封裝在幾個(gè)標(biāo)準(zhǔn)動(dòng)態(tài)鏈接庫中,分別是:Mgsdll.dll——圖形處理基礎(chǔ)功能、地圖操作功能;MgsSmap.dll——地圖檢索功能;MgsEtSym.dll——態(tài)勢處理功能;MgsGrd.dll——地圖量算功能;Mgscxfx.dll——地理信息查詢功能,MgsTran.dll——地圖格式轉(zhuǎn)換功能。
以上六個(gè)動(dòng)態(tài)鏈接庫為獨(dú)立于編程語言的標(biāo)準(zhǔn)動(dòng)態(tài)庫,它們輸出的API函數(shù)接口可以被任何高級(jí)編程語言調(diào)用。
其中,mgsdll.dll是最底層的動(dòng)態(tài)鏈接庫,在用戶自行建立的應(yīng)用系統(tǒng)中,要成功地實(shí)現(xiàn)地圖檢索、態(tài)勢處理、地圖量算和地理信息查詢功能,必須先調(diào)用該動(dòng)態(tài)庫中的圖形處理基礎(chǔ)功能—控制功能,來初始化應(yīng)用系統(tǒng)。
由于地圖處理和態(tài)勢信息系統(tǒng)支持的地圖數(shù)據(jù)來自兩個(gè)方面:一方面支持文件形式的內(nèi)部地圖格式,一方面支持來自“平臺(tái)”另一共性支撐軟件軍事地理信息系統(tǒng)的存在于數(shù)據(jù)庫的矢量地圖,因此,MGS軍用圖形處理開發(fā)軟件包提供的某些API函數(shù)還依賴于軍事地理信息系統(tǒng)的存在。如果沒有連接地理信息庫,則mgsdll.dll庫、mgstran.dll和MgsGrd.dll中的若干函數(shù)不能使用,Mgscxfx.dll庫中的所有函數(shù)都不能正常使用。
以上六個(gè)動(dòng)態(tài)鏈接庫的層次關(guān)系和依賴關(guān)系如圖2所示。
圖層是由有機(jī)關(guān)聯(lián)的對(duì)象構(gòu)成的集合,其中的元素在幾何上不再相互獨(dú)立,而是緊密相關(guān)的。如獨(dú)立地物層、道路層、境界層、水系層、地貌層、土質(zhì)層、植被層和垣柵城墻層等。圖層中的元素對(duì)象一般較多,圖層本身就是一個(gè)對(duì)象集。對(duì)象集加上自己特有的顯示屬性即是圖層,因此對(duì)象集類型與圖層類型是一一對(duì)應(yīng)的。由于對(duì)象集包括點(diǎn)、線、面、注記對(duì)象集、復(fù)合對(duì)象集和場6種基本類型,因此圖層也有相應(yīng)的點(diǎn)、線、面、注記圖層、復(fù)合圖層和場圖層6種基本類型。對(duì)象集用來存貯對(duì)象的空間與屬性數(shù)據(jù),而圖層則用來設(shè)置對(duì)象集的顯示風(fēng)格并控制對(duì)象集的顯示范圍、顯示比例和操作特性(如可顯示、可選擇、可編輯和可捕捉等),二者各司其職又相互聯(lián)系。在對(duì)應(yīng)關(guān)系上,一個(gè)圖層只對(duì)應(yīng)一個(gè)對(duì)象集,而一個(gè)對(duì)象集卻可顯示在不同的地圖窗口中對(duì)應(yīng)多個(gè)圖層,因此對(duì)象集與圖層之間的關(guān)系是一對(duì)多的關(guān)系。
對(duì)象集是用來存貯地理對(duì)象的,圖層是用來控制對(duì)象的顯示的,兩者都不等同于地圖或地圖窗口。這里的地圖或地圖窗口是一種框架,是顯示對(duì)象的實(shí)際載體,也是控制圖層并對(duì)之進(jìn)行操作和分析的主體。
2.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊主要負(fù)責(zé)處理態(tài)勢顯示需要顯示的數(shù)據(jù)。它通過與外部系統(tǒng)進(jìn)行數(shù)據(jù)交換,從網(wǎng)絡(luò)、數(shù)據(jù)庫或串口接收態(tài)勢數(shù)據(jù),經(jīng)過解析、融合處理后將結(jié)果傳送給態(tài)勢顯示模塊,在態(tài)勢圖上顯示出來, 根據(jù)需要輸出處理后的數(shù)據(jù)。
2.3 態(tài)勢顯示模塊
態(tài)勢顯示模塊是顯示系統(tǒng)的關(guān)鍵,用來實(shí)現(xiàn)態(tài)勢顯示功能。態(tài)勢顯示模塊接收并顯示數(shù)據(jù)處理模塊處理后的態(tài)勢數(shù)據(jù)。根據(jù)系統(tǒng)要求不同,態(tài)勢顯示模塊的功能也有較大的差異,在一些簡單的靜態(tài)態(tài)勢顯示系統(tǒng)(如標(biāo)圖系統(tǒng)) 中,可能僅需要一些靜態(tài)的圖形或圖標(biāo);而在較高級(jí)的應(yīng)用中,如航跡顯示系統(tǒng),則需要時(shí)時(shí)接收各種動(dòng)態(tài)目標(biāo)的位置信息來更新態(tài)勢顯示的內(nèi)容;在更高級(jí)的一些應(yīng)用中,如戰(zhàn)場態(tài)勢模擬系統(tǒng)中,則不僅需要接收外界傳來的各種數(shù)據(jù)和指令,還要對(duì)各種數(shù)據(jù)進(jìn)行融合處理,最終將處理結(jié)果顯示出來。
3 態(tài)勢顯示功能的設(shè)計(jì)
態(tài)勢顯示是態(tài)勢顯示軟件的主要組成部分,目前各種系統(tǒng)中顯示的態(tài)勢主要有以下幾種:
(1) 標(biāo)圖
標(biāo)圖是目前常用的一種簡單的態(tài)勢顯示方式,在這種應(yīng)用中,一般預(yù)先設(shè)定一組或幾組對(duì)象的坐標(biāo)(可能是經(jīng)緯度或相對(duì)坐標(biāo)) 。進(jìn)行態(tài)勢顯示時(shí),將一組對(duì)象圖標(biāo)按照預(yù)定的位置顯示在底圖上,一般來說對(duì)象的位置一旦設(shè)定,很少再進(jìn)行移動(dòng),而當(dāng)需要表示對(duì)象的位置變化時(shí),常常顯示預(yù)設(shè)的第二組態(tài)勢對(duì)象。因此這種態(tài)勢顯示軟件相對(duì)來說最為簡單,應(yīng)用范圍也最廣,可以用來顯示一個(gè)城市的人防部署、防洪指揮時(shí)的人力部署等。
(2) 航跡
航跡顯示是態(tài)勢顯示模塊中最重要的功能之一。在航跡態(tài)勢顯示系統(tǒng)中,一般需要從一個(gè)外部的接口(如串口、網(wǎng)絡(luò)或數(shù)據(jù)庫) 來獲取態(tài)勢顯示目標(biāo)的位置數(shù)據(jù)。態(tài)勢顯示目標(biāo)會(huì)根據(jù)接收的位置信息來實(shí)時(shí)變化自己在底圖上的坐標(biāo),從而形成一條運(yùn)動(dòng)軌跡,如在航空管制系統(tǒng)中飛機(jī)的運(yùn)動(dòng)軌跡顯示。
對(duì)于不同的系統(tǒng),航跡顯示的內(nèi)容可能不一樣。對(duì)于軍用態(tài)勢顯示系統(tǒng)而言,除了能夠顯示融合之后的航跡,還應(yīng)該考慮顯示融合之前的子源航跡和慣導(dǎo)數(shù)據(jù)。如果系統(tǒng)的數(shù)據(jù)來自模擬源,還應(yīng)該加入顯示模擬源的航跡。不同的航跡被設(shè)置為不同的顏色加以區(qū)分,而且可以根據(jù)需要顯示或不顯示。
(3) 電磁態(tài)勢
電磁態(tài)勢相對(duì)比較復(fù)雜。電磁波是不可見的,因此在態(tài)勢顯示時(shí)必須以可見的圖形方式表示出來,而且由于電磁場受地形和天氣等影響較大,在復(fù)雜情況下,電磁環(huán)境以可視的方式準(zhǔn)確顯現(xiàn)出來難度較大。但簡單地來說,我們可以把輻射源的有效范圍使用圓或扇形來表示。
(4) 具體數(shù)據(jù)顯示
除了顯示各種航跡、范圍之外,態(tài)勢顯示模塊還應(yīng)該能夠顯示具體的數(shù)據(jù),例如每個(gè)航跡點(diǎn),該飛機(jī)的經(jīng)度、緯度、高度、速度等等。還如融合之后的航跡是由哪幾條子源航跡融合而成,這幾條子源航跡的具體數(shù)據(jù)是什么。這些都屬于態(tài)勢顯示模塊必須的功能之一。
4 結(jié)束語
要想設(shè)計(jì)一個(gè)好的基于MGS的態(tài)勢顯示系統(tǒng),要充分考慮系統(tǒng)的需要,在利用MGS平臺(tái)的API函數(shù)的情況下,盡量多的將系統(tǒng)的數(shù)據(jù)顯示出來。
參考文獻(xiàn):
[1] 汪成為,高文,王行仁.靈鏡(虛擬現(xiàn)實(shí))技術(shù)的理論、實(shí)現(xiàn)及應(yīng)用[M].北京:清華大學(xué)出版社,1996.
[2] 王行仁.發(fā)展系統(tǒng)仿真技術(shù) [J].系統(tǒng)仿真學(xué)報(bào),1999.
[3] 陳建春.Visual C++開發(fā)GIS系統(tǒng):開發(fā)實(shí)例剖析[M].北京:電子工業(yè)出版社,2000.
[4] 楊學(xué)良.多媒體計(jì)算機(jī)技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,1995.
[5] MGS程序員參考手冊(cè)
[6] MGS用戶手機(jī)