魏 輝,劉 春
(沈陽(yáng)航空航天大學(xué)航空航天工程學(xué)部,遼寧沈陽(yáng)110136)
飛行器航跡在數(shù)字地圖上的顯示可以讓用戶了解較大范圍內(nèi)的飛行環(huán)境,目前常見(jiàn)的航跡顯示方法或組件大多借助一些第三方工具開(kāi)發(fā)。本文給出一種借助于圖像處理和可視化開(kāi)發(fā)技術(shù)實(shí)現(xiàn)的航跡顯示方法。主要實(shí)現(xiàn)的功能包括對(duì)二維電子地圖的平移縮放操作及飛行器航跡的實(shí)時(shí)顯示。鑒于實(shí)時(shí)仿真對(duì)時(shí)間效率要求較高,航跡顯示部分采用了高效的算法及一些時(shí)間控制策略保證航跡顯示與飛行器實(shí)際飛行軌跡的同步性。電子地圖采用最常見(jiàn)的JPG格式文件,不僅可以借助于圖像處理技術(shù)方便的進(jìn)行操作,而且地圖資源的獲取非常容易。本文給出的實(shí)現(xiàn)方法完全可以借助計(jì)算機(jī)編程語(yǔ)言自主開(kāi)發(fā)實(shí)現(xiàn),有效的解決了開(kāi)頭提出的問(wèn)題。
該方法主要包括兩大功能:地圖操作和航跡顯示,如圖1所示。
圖1 航跡顯示系統(tǒng)組成
地圖操作通過(guò)鼠標(biāo)的移動(dòng)和點(diǎn)擊實(shí)現(xiàn)。在地圖界面內(nèi)按下鼠標(biāo)并移動(dòng),地圖會(huì)跟隨鼠標(biāo)進(jìn)行相應(yīng)的移動(dòng)。選擇好放大或縮小狀態(tài),然后在模塊界面內(nèi)雙擊鼠標(biāo),就可以實(shí)現(xiàn)地圖的放大或縮小。地圖采用的是普通的JPG格式文件。
航跡顯示部分通過(guò)動(dòng)力學(xué)模型提供的接口接收飛行器的位置信息,然后把動(dòng)力學(xué)模型實(shí)時(shí)解算的飛行器位置變換為電子地圖上相應(yīng)的位置并顯示。隨著飛行器位置的不斷變化,航跡也進(jìn)行同步的刷新。
整個(gè)顯示界面如圖2所示。在圖形框內(nèi)按下鼠標(biāo)左鍵并移動(dòng),地圖會(huì)跟隨鼠標(biāo)相應(yīng)移動(dòng);選擇放大或縮小按鈕,然后在圖形框內(nèi)雙擊鼠標(biāo),地圖就會(huì)按一定比例放大或縮小,航跡也會(huì)跟隨地圖等比例放縮。
圖2 航跡顯示界面
地圖及航跡的顯示在一個(gè)圖形框中實(shí)現(xiàn)。地圖采用的是一張JPG文件,在程序開(kāi)始運(yùn)行時(shí)將其局部作為背景顯示在圖形框中。當(dāng)前窗口只顯示地圖文件的一個(gè)局部,可以用鼠標(biāo)移動(dòng)地圖以觀察不同的區(qū)域,也可放大或縮小地圖以擴(kuò)大或減小當(dāng)前顯示的范圍。
當(dāng)移動(dòng)或放縮地圖時(shí),當(dāng)前顯示的內(nèi)容就會(huì)發(fā)生變化。由于整個(gè)地圖文件較大,如果直接從整張地圖文件中讀取要顯示的部分,會(huì)大大增加程序的響應(yīng)時(shí)間,甚至對(duì)整個(gè)仿真程序的正常執(zhí)行產(chǎn)生影響。因此,這里專門開(kāi)辟一個(gè)緩沖區(qū),程序從該緩沖區(qū)而不是原地圖文件中讀取要顯示在窗口中的地圖數(shù)據(jù),很好的解決了以上問(wèn)題。
為方便闡述,區(qū)域的表示采用式 (1)中的格式
其中,Z為區(qū)域的名稱,x,y分別為區(qū)域Z左上頂點(diǎn)在原地圖文件中以像素為單位的橫坐標(biāo)和縱坐標(biāo),且向右表示x坐標(biāo)增大方向,向下表示y坐標(biāo)增大方向。width表示區(qū)域Z的以像素為單位的寬度,height表示區(qū)域Z的以像素為單位的高度。原地圖文件的表示方法與此類似,并以原地圖文件的左上頂點(diǎn)為坐標(biāo)原點(diǎn)。
緩沖區(qū)的大小如圖3所示。圖中陰影部分為當(dāng)前窗口顯示范圍,設(shè)為S(x,y,width,height)。B為當(dāng)前緩沖區(qū)的范圍,B的長(zhǎng)度和寬度分別為S長(zhǎng)度和寬度的3倍,且S位于B的中央,所以B可以表示為B(x-width,y-height,3*width,3*height)。這樣,無(wú)論在顯示窗口中怎樣操作地圖,將要顯示的內(nèi)容都在緩沖區(qū)中,所以要顯示的地圖可以從緩沖區(qū)直接加載,提高了地圖操作指令的響應(yīng)速度。每次地圖操作完成后,由于S發(fā)生了變化,B也要進(jìn)行相應(yīng)的更新。B的更新要從原地圖文件讀取數(shù)據(jù),因此需要的計(jì)算時(shí)間相對(duì)較長(zhǎng),同樣會(huì)造成響應(yīng)速度慢的問(wèn)題。為了解決這一問(wèn)題,B的更新放在兩次地圖操作的中間進(jìn)行。上一次操作完成時(shí)即開(kāi)始更新緩沖區(qū),這時(shí)B鎖定為不可用狀態(tài),直到更新完畢恢復(fù)可用狀態(tài)。在B處于不可用狀態(tài)時(shí),程序不響應(yīng)用戶的地圖操作。這種緩沖區(qū)更新方法充分利用了用戶兩次操作之間的時(shí)間空隙,提高了計(jì)算機(jī)計(jì)算能力的利用率和地圖瀏覽的流暢程度。
圖3 緩沖區(qū)
地圖操作分為平移和放縮兩種。首先設(shè)置一個(gè)全局的放縮系數(shù)m,用m去控制當(dāng)前顯示地圖塊的寬度和高度。當(dāng)執(zhí)行一次放大操作,m減小一個(gè)固定的步長(zhǎng)d,當(dāng)前顯示地圖塊的范圍變小,由于顯示窗口大小不變,就表現(xiàn)為地圖的放大,反之地圖則縮小。地圖平移的距離通過(guò)捕捉鼠標(biāo)在顯示窗口內(nèi)按下左鍵時(shí)移動(dòng)的距離獲取。
以圖3為例,加上放縮系數(shù),則當(dāng)前顯示區(qū)域?yàn)镾(x,y,width*m,height*m)。假設(shè)鼠標(biāo)在顯示窗口按下左鍵并向右平移a個(gè)像素單位,向下平移b個(gè)像素單位。則平移后的窗口顯示區(qū)域?yàn)镾'(x-a*m,y-b*m,width*m,height*m),緩沖區(qū)則相應(yīng)更新為B'(x-width*m-a*m,y-height*m-b*m,3*width*m,3*height*m)。
執(zhí)行一次放大操作時(shí),放縮系數(shù)m減小步長(zhǎng)d,變?yōu)閙'=m-d。放大后顯示范圍的中心點(diǎn)為執(zhí)行放大操作時(shí)鼠標(biāo)在顯示窗口中點(diǎn)擊的點(diǎn)。若當(dāng)前顯示區(qū)域?yàn)镾(x,y,width*m,height*m),鼠標(biāo)雙擊點(diǎn)在地圖中的坐標(biāo) (需要從窗口坐標(biāo)轉(zhuǎn)換成地圖中的坐標(biāo))為 (x',y'),則放大一次后顯示區(qū)域變?yōu)镾'(x'-width*m'/2,y'-height*m’/2,width*m’,height*m’)。緩沖區(qū)則相應(yīng)更新為B’(x’-3*width*m’/2,y’-3*height*m’/2,width*m’*3,height*m’*3)??s小時(shí)與此類似,只需將放縮系數(shù)增大步長(zhǎng)d。
飛行器的實(shí)際飛行軌跡為一條連續(xù)的曲線,但在飛行仿真中,必須先將飛行器的航跡離散化,變成一個(gè)個(gè)的航跡點(diǎn),通過(guò)一系列的航跡點(diǎn)去描述飛行器的飛行,然后再把離散的航點(diǎn)還原為連續(xù)的航線顯示出來(lái)。本方法從動(dòng)力學(xué)模型中實(shí)時(shí)獲取飛行器當(dāng)前的航跡點(diǎn)后,通過(guò)一定的算法把當(dāng)前航跡點(diǎn)和上一個(gè)航跡點(diǎn)之間的航線計(jì)算并顯示出來(lái)。
首先設(shè)置兩個(gè)集合A和B,A中為所有從動(dòng)力學(xué)模型中獲取并轉(zhuǎn)化為用地圖文件中像素坐標(biāo)表示的航跡點(diǎn),B中為通過(guò)計(jì)算得到的航線上的所有航跡點(diǎn) (航線在地圖文件中是通過(guò)一個(gè)個(gè)的像素點(diǎn)表示出來(lái)的,所以可以把航線上的所有航跡點(diǎn)都列舉出來(lái))。航跡顯示一個(gè)刷新周期的流程如圖4所示。
圖4 單個(gè)刷新周期
動(dòng)力學(xué)模型中提供的航跡點(diǎn)是用經(jīng)緯度坐標(biāo)表示的,應(yīng)用本方法時(shí)需轉(zhuǎn)換為地圖文件中的像素坐標(biāo)。以圖5為例,圖5中方框表示地圖文件的邊界,地圖左上頂點(diǎn)的經(jīng)緯度坐標(biāo)為 (lon1,lat1),像素坐標(biāo)為 (0,0)。地圖右下頂點(diǎn)的經(jīng)緯度坐標(biāo)為 (lon2,lat2),像素坐標(biāo)為 (width,height),其中width為地圖的像素寬度,height為地圖的像素高度。
則對(duì)于地圖范圍內(nèi)的任意一點(diǎn)A,已知其經(jīng)緯度坐標(biāo)為 (lon,lat),其像素坐標(biāo) (x,y)按式 (2)和式 (3)得到
圖5 坐標(biāo)轉(zhuǎn)換
由于程序從動(dòng)力學(xué)模型獲取航跡點(diǎn)的時(shí)間間隔非常小(一般在30毫秒左右),所以把這段時(shí)間內(nèi)飛行器飛過(guò)的航跡近似為一條直線段。這樣問(wèn)題就轉(zhuǎn)化為已知一條直線段的兩個(gè)端點(diǎn)坐標(biāo),求直線段上某些點(diǎn)處的坐標(biāo),這可以根據(jù)直線段所在直線的方程求解。具體到本問(wèn)題,還需要做一些特別的考慮。
計(jì)算兩航跡點(diǎn)之間的航線,如圖6所示。
圖6 計(jì)算兩航跡點(diǎn)之間的航線
以地圖文件的左上角為坐標(biāo)原點(diǎn)建立坐標(biāo)系,A(x1,y1),B(x2,y2)兩點(diǎn)為從動(dòng)力學(xué)模型中獲取的相鄰兩個(gè)航跡點(diǎn)。則線段AB上的任一點(diǎn)C(x,y)有兩種求法 (此處假設(shè)x1≠x2且y1≠y2):
(1)已知x坐標(biāo),可求得y坐標(biāo)
(2)已知y坐標(biāo),可求得x坐標(biāo)
在x和y坐標(biāo)為連續(xù)實(shí)數(shù)的情況下,上面兩種方法產(chǎn)生的結(jié)果相同。而這里的x和y表示的是在地圖文件中的像素坐標(biāo),為離散的整數(shù)值,這就會(huì)導(dǎo)致按照式 (4)和式(5)計(jì)算可能產(chǎn)生不同的效果。
要想把A和B之間的航線計(jì)算出來(lái),必須計(jì)算出線段AB經(jīng)過(guò)的每個(gè)像素點(diǎn)的坐標(biāo)。在A點(diǎn)和B點(diǎn)坐標(biāo)已知的情況下,可以從x1到x2遍歷x從而按照4式求出對(duì)應(yīng)的也可以從y1到y(tǒng)2遍歷y按照5式求出對(duì)應(yīng)的x(當(dāng)求出的值為非整數(shù)時(shí)按四舍五入取整)。設(shè)A和B兩點(diǎn)橫坐標(biāo)的距離為△x,縱坐標(biāo)的距離為△y。當(dāng)△x<△y時(shí),若按照4式遍歷x求相應(yīng)的y值,就會(huì)出現(xiàn)y1和y2間有些y值沒(méi)有對(duì)應(yīng)的x值,按照像素構(gòu)成圖形的原理這就會(huì)使顯示出來(lái)的線段AB在這些地方出現(xiàn)間斷,不能滿足顯示連續(xù)航線的要求。此時(shí)若按照5式遍歷y求出各個(gè)x的值,則x1和x2之間的每個(gè)x都有對(duì)應(yīng)的y值,y1和y2之間的每個(gè)y也都有對(duì)應(yīng)的x值 (只不過(guò)有些y對(duì)應(yīng)相同的x),這樣就不會(huì)出現(xiàn)上述問(wèn)題。綜上,計(jì)算航跡點(diǎn)A,B之間航線的方法是
△y<△x時(shí),按照4式遍歷x求相應(yīng)y
若x1=x2,此時(shí)可以遍歷y坐標(biāo),令各y處對(duì)應(yīng)的x值均為x1。y1=y2時(shí)類似的遍歷x即可。
航線的顯示是通過(guò)對(duì)當(dāng)前緩沖區(qū)中的像素點(diǎn)進(jìn)行處理實(shí)現(xiàn)的,也即把航線顯示在緩沖區(qū)中。這樣當(dāng)顯示窗口從緩沖區(qū)加載要顯示的內(nèi)容時(shí)就同時(shí)把飛行器飛過(guò)的航線也加載并顯示給用戶。例如要把飛行器飛過(guò)的航線顯示為紅色,只要在地圖緩沖區(qū)中把航線所經(jīng)過(guò)的像素點(diǎn)的顏色設(shè)置為紅色即可,這可以通過(guò)圖像處理中的像素處理函數(shù)實(shí)現(xiàn)。這里選擇把整個(gè)緩沖區(qū)內(nèi)的航線表示出來(lái)而不是僅把顯示窗口中的航線表示出來(lái)主要有兩個(gè)原因:一是考慮到在顯示航線的同時(shí)用戶有可能會(huì)對(duì)地圖進(jìn)行操作,這樣當(dāng)前窗口顯示的內(nèi)容就會(huì)發(fā)生變化,把航線顯示在緩沖區(qū)中可以使用戶移動(dòng)地圖時(shí)航線不會(huì)消失而且航線和地圖是作為一個(gè)整體移動(dòng),視覺(jué)效果更好;另外若僅在窗口顯示范圍內(nèi)把航線顯示出來(lái),當(dāng)操作地圖時(shí)需要同時(shí)繪制航線,增加了算法的計(jì)算量,使程序響應(yīng)變慢。
飛行器的航線有可能會(huì)超出緩沖區(qū)的范圍,只有在當(dāng)前緩沖區(qū)范圍內(nèi)的部分才需要顯示,因此在緩沖區(qū)中表示航線的時(shí)候要首先判斷航線是否在當(dāng)前緩沖區(qū)范圍內(nèi)。這只需根據(jù)航線上每個(gè)點(diǎn)與緩沖區(qū)范圍的坐標(biāo)關(guān)系進(jìn)行判斷。隨著用戶對(duì)地圖的操作,緩沖區(qū)也在不斷的變化,隨之緩沖區(qū)中的航線就要重新繪制。前文中提到存放航線上所有航跡點(diǎn)的集合B,每次緩沖區(qū)更新時(shí)只要遍歷B中所有航跡點(diǎn),將處于新緩沖區(qū)范圍內(nèi)的航跡點(diǎn)繪制出來(lái)即可。
飛行器當(dāng)前的位置也需要顯示出來(lái)。把從動(dòng)力學(xué)模型最后獲取的航跡點(diǎn)作為飛行器當(dāng)前的位置,以該位置為中心連同周圍的點(diǎn)一起形成一個(gè)點(diǎn)集,把該點(diǎn)集中的點(diǎn)以相同的顏色顯示出來(lái)表示飛行器當(dāng)前的位置,這樣顯示的效果會(huì)比較明顯,便于觀察。
3.3 節(jié)介紹的是對(duì)于飛行器已經(jīng)飛過(guò)的固定的航線部分的顯示,在實(shí)時(shí)仿真中,飛行器的位置一直在變化之中,航線也一直在動(dòng)態(tài)的更新,這就要求航線的顯示要能實(shí)時(shí)跟隨飛行器的位置。
每次從動(dòng)力學(xué)模型獲取一個(gè)新的航跡點(diǎn)后航線就要刷新,此時(shí)若將已飛過(guò)的全部航線刷新顯然不是最佳方法。前文中給出了存放所有從動(dòng)力學(xué)模型獲取的航跡點(diǎn)的集合A,每次從動(dòng)力學(xué)模型獲取一個(gè)航跡點(diǎn),首先按照3.2節(jié)中方法計(jì)算A中最后一個(gè)航跡點(diǎn)與最新獲取的航跡點(diǎn)之間的航線,并將計(jì)算出的航線位于當(dāng)前緩沖區(qū)中的部分繪制到緩沖區(qū)中,同時(shí)更新飛行器當(dāng)前位置,然后把計(jì)算出的航線上的所有航跡點(diǎn)加入到集合B中,最后將最新獲取的航跡點(diǎn)加入到集合A中。這樣每次只刷新飛行器最新飛過(guò)的航跡點(diǎn)和上一個(gè)航跡點(diǎn)之間的航線,減少了計(jì)算量。
將最新飛過(guò)的航線繪制到緩沖區(qū)后,還需要把當(dāng)前顯示窗口顯示的內(nèi)容刷新,否則最新飛行的航線體現(xiàn)不到當(dāng)前顯示窗口。
在仿真程序中,航線的刷新并不需要與主程序的刷新同步。可以根據(jù)需要設(shè)置主程序刷新一定的幀數(shù)時(shí)航線刷新一次,這樣可以減少計(jì)算機(jī)的計(jì)算量。
作為實(shí)時(shí)仿真程序,單線程模型很難滿足需要,本方法的實(shí)現(xiàn)采用了多線程模型。
程序中開(kāi)辟了兩個(gè)線程。由于緩沖區(qū)加載需要較多的計(jì)算時(shí)間,因此單獨(dú)用一個(gè)線程進(jìn)行處理,除此之外的功能實(shí)現(xiàn)則放在另一個(gè)線程中處理。這樣,當(dāng)用戶執(zhí)行地圖操作觸發(fā)緩沖區(qū)加載的執(zhí)行時(shí),程序還能繼續(xù)響應(yīng)用戶的其它操作,否則就要等到緩沖區(qū)加載完畢用戶才能執(zhí)行其它操作。這里把加載緩沖區(qū)的線程稱為加載線程,另一個(gè)線程稱為主線程。線程工作的流程如圖7所示。
圖7 線程模型
程序開(kāi)始執(zhí)行時(shí)主線程處于工作狀態(tài),加載線程處于休眠狀態(tài)。當(dāng)主線程中觸發(fā)了緩沖區(qū)的加載操作時(shí),加載線程被喚醒。此時(shí)加載線程鎖定緩沖區(qū),開(kāi)始緩沖區(qū)的加載更新。在加載線程鎖定緩沖區(qū)時(shí),主線程不響應(yīng)用戶的與緩沖區(qū)有關(guān)的操作。緩沖區(qū)加載完畢時(shí),加載線程釋放緩沖區(qū)鎖,繼續(xù)進(jìn)入休眠狀態(tài)。此時(shí)主線程重新開(kāi)始響應(yīng)用戶與緩沖區(qū)有關(guān)的操作。
介紹了一種采用圖像處理技術(shù)實(shí)現(xiàn)的飛行器航跡顯示方法,該方法可以作為一個(gè)組成部分應(yīng)用在飛行仿真中
。本方法已經(jīng)成功應(yīng)用到實(shí)際飛行仿真系統(tǒng)中。在Intel酷睿2雙核E4500、2GB內(nèi)存的普通PC機(jī)上運(yùn)行整個(gè)仿真程序的同時(shí)執(zhí)行一次航線刷新需要的時(shí)間為15ms左右,再加上航線的刷新頻率遠(yuǎn)低于仿真主程序的刷新頻率,所以完全能夠滿足實(shí)時(shí)仿真需要。
該方法的特點(diǎn)主要在于解決了實(shí)際仿真應(yīng)用中航跡顯示的開(kāi)發(fā)多通過(guò)第三方軟件實(shí)現(xiàn),而且需要用到較多地圖繪制和處理專業(yè)技術(shù)的問(wèn)題,同時(shí)地圖資源的獲取也更為方便。
[1]LIU Xuanming,LIN Lianlei,JIANG Shouda.Loading of the geographic pictures for digital map [J].Computer Applications,2009,28(10):34-41(in Chinese).[劉軒明,林達(dá)雷,姜守達(dá).一種數(shù)字地圖圖片加載方法[J].自動(dòng)化技術(shù)與應(yīng)用,2009,28(10):34-41.]
[2]LI Yang,SUN Yongwei,XU Yifeng,et al.Design and implementation of platform-type flight simulator[J].Joumalo of Jilin University(Information Science Edition),2009,27(5):550-556(in Chinese).[李洋,孫永維,胥義豐,等.臺(tái)式飛行仿真模擬器的設(shè)計(jì)與實(shí)現(xiàn) [J].吉林大學(xué)學(xué)報(bào) (信息科學(xué)版),2009,27(5):550-556.]
[3]NING Tao,WANG Zheng,LONG Chuan.Gen,et al.Application oriented dynamic lo-ading mechanism [J].Computer Engineering,2008,34(17):79-81(in Chinese).[寧濤,王錚,龍川.面向一般應(yīng)用的動(dòng)態(tài)加載機(jī)制 [J].計(jì)算機(jī)工程,2008,34(17):79-81.]
[4]JIA Fenli,YOU Xiong,SONG Guomin,et al.Implementation of“Magnifier”effect in multi-scale display of electronic map [J].Journal of Geomatics Science and Tech-nology,2009,26(1):29-32(in Chinese).[賈奮勵(lì),游雄,宋國(guó)民,等.電子地圖多尺度顯示中放大鏡效果的實(shí)現(xiàn) [J].測(cè)繪科學(xué)技術(shù)學(xué)報(bào),2009,26(1):29-32.]
[5]WANG Jingcun,CHEN Bin,CHEN Heping.Design and realization of fast map display model for GISsystem [J].Computer Engineering and Design,2007,28(5):1179-1222(in Chinese).[王景存,陳彬,陳和平.GIS系統(tǒng)地圖快速顯示模型設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(5):1179-1222.]
[6]HUANG Guoyan,GUO Hui.Study on dataexchange method of CSCD based on XML [J].Computer Engineering and Design,2007,28(24):6000-6047(in Chinese).[黃國(guó)言,郭徽.基于XML的協(xié)同設(shè)計(jì)中數(shù)據(jù)交換方法的研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(24):6000-6047.]
[7]MENG Xiaoxuan,LI Yiming,BU Qingzhong,et al.Storage service-oriented BufferManagement model[J].Computer Engineering,2009,35(1):30-32(in Chinese).[孟曉烜,李一鳴,卜慶忠,等.一種面向存儲(chǔ)服務(wù)的緩存管理模型[J].計(jì)算機(jī)工程,2009,35(1):30-32.]
[8]LIU Qiaohong.Construction of computer virtual campus and humancomputer interaction technology[J].Computer Engineering and Design,2010,31(19):4332-4335(in Chinese).[劉巧紅.計(jì)算機(jī)虛擬校園的建造與人機(jī)交互的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(19):4332-4335.]
[9]YUAN Man,ZHANG Leying.Application of dynamic on-demand loading algorithm in GISmap [J].Computer Enginee-ring,2010,36(15):245-247(in Chinese).[袁滿,張樂(lè)英.動(dòng)態(tài)按需加載算法在GIS地圖中的應(yīng)用 [J].計(jì)算機(jī)工程,2010,36(15):245-247.]
[10]TANG Yong,LIU Changzhong,WU Honggang.3D flight track and 6-DOF flight simulation based on Google Eatrh[J].Journal of Computer Applications,2009,29(12):3385-3387(in Chinese).[唐勇,劉昌忠,吳宏剛.基于Google Eatrh的三維航跡監(jiān)視及六自由度飛行仿真 [J].計(jì)算機(jī)應(yīng)用,2009,29(12):3385-3387.]