基于GPS船用導(dǎo)航儀的嵌入式電子海圖數(shù)據(jù)的制作與顯示
摘要:在嵌入式GPS電子海圖顯示系統(tǒng)中,通過對(duì)ArcMap地圖軟件進(jìn)行定制等功能的二次開發(fā),不僅可一次性錄入點(diǎn)線面輸入時(shí)所有的參數(shù),而且在完成修改后可使用定制工具直接輸出特殊的點(diǎn)數(shù)據(jù)文本文件、面數(shù)據(jù)文本文件和線數(shù)據(jù)文本文件。可大大減小海圖文件數(shù)據(jù)的容量。
0 前言
地理信息系統(tǒng)(GIS) 在國(guó)民經(jīng)濟(jì)各領(lǐng)域已得到廣泛地應(yīng)用,ArcInfo是美國(guó)ESRI公司開發(fā)的GIS平臺(tái)軟件, ArcInfo憑借其強(qiáng)大的數(shù)據(jù)采集存儲(chǔ)、圖形編輯、信息檢索、地理分析等功能廣泛應(yīng)用于城市規(guī)劃、測(cè)繪、國(guó)土信息資源管理、海圖制作等各個(gè)業(yè)。ArcInfo包括ArcMap 、ArcCatalog 和ArcToolbox 三個(gè)應(yīng)用程序,其中ArcMap 提供了一體化的地圖繪制、顯示、編輯、輸出的集成環(huán)境,具有強(qiáng)大的制圖編輯功能。用ArcMap編制地圖,首先要獲得數(shù)字形式的地圖數(shù)據(jù),即對(duì)已有地圖進(jìn)行數(shù)字化或把地面測(cè)量中測(cè)得的點(diǎn)輸入計(jì)算機(jī),連接形成各類圖形要素,并對(duì)數(shù)據(jù)進(jìn)行符號(hào)化和地圖注記的放置,然后按照應(yīng)用的需要,制作出一幅完整的電子地圖,ArcMap 為用戶編制電子地圖提供了豐富的功能和途徑,目前已成為嵌入式電子海圖制作領(lǐng)域應(yīng)用最為廣泛的工具之一。
1 ArcMap 軟件功能的二次開發(fā)
用ArcMap制作的電子海圖可直接用于工控機(jī)設(shè)計(jì)的船舶電子海圖顯示系統(tǒng),但是在嵌入式電子海圖顯示系統(tǒng)中,為了充分發(fā)揮嵌入式處理器的優(yōu)點(diǎn),提高顯示海圖的速度與效率,需要將制作好的電子海圖轉(zhuǎn)換為特殊的二進(jìn)制文件格式。為了方便制作非標(biāo)格式嵌入式電子海圖文件,可對(duì)ArcMap軟件進(jìn)行了定制功能的二次開發(fā)。利用該工具可在電子海圖修改或制作中方便并提高輸入速度,使用該工具可進(jìn)行一次性將點(diǎn)線面輸入時(shí)所有的參數(shù)錄入。在完成修改后可使用該工具輸出三個(gè)文本文件,分別是點(diǎn)數(shù)據(jù)文本文件(point.dat)、面數(shù)據(jù)文本文件(polygON.dat)、線數(shù)據(jù)文本文件(polyline.dat)。圖1為定制功能中命令欄中經(jīng)二次開發(fā)產(chǎn)生的菜單工具功能選擇窗口圖。
圖1定制功能命令欄中經(jīng)二次開發(fā)產(chǎn)生的的菜單工具窗口圖
2 嵌入式電子海圖的制作與數(shù)據(jù)導(dǎo)出
嵌入式電子海圖的制作流程為:首先打開已有海圖或新建電子海圖,然后修改或創(chuàng)建點(diǎn)、線、面數(shù)據(jù),最后保存海圖文件,保存文件名為*.mxd,然后利用專用開發(fā)工具導(dǎo)出點(diǎn)數(shù)據(jù)文本文件(point.dat)、面數(shù)據(jù)文本文件(polygon.dat)、線數(shù)據(jù)文本文件(polyline.dat)共三個(gè)文件。三個(gè)文本文件再利用專用軟件生成為一個(gè)二進(jìn)制的文件即可寫入嵌入式電子海圖中的存儲(chǔ)器,供處理器調(diào)用顯示海圖。圖2為用ArcMap軟件制作舟山海域海圖時(shí)的操作窗口圖。
圖2 ArcMap制作中的舟山海域界面圖
3 嵌入式電子海圖數(shù)據(jù)的顯示
嵌入式電子海圖顯示系統(tǒng)使用前需要通過計(jì)算機(jī)的超級(jí)終端拷入處理主程序及至少5個(gè)文件才能運(yùn)行,5個(gè)文件是國(guó)標(biāo)漢字庫(kù)文件、logo圖片文件、文本文件(港口介紹等)、圖片文件(航行對(duì)景圖片)。首次拷入文件時(shí)需對(duì)Nand flash進(jìn)行格式化,以后如有圖片文件更新等操作,可用DOS命令進(jìn)行刪除或建立。
(1)logo圖片(PCX格式)的顯示方法
在嵌入式電子海圖顯示系統(tǒng)中,開機(jī)后會(huì)顯示一幅開機(jī)圖片,由于嵌入式電子海圖系統(tǒng)中內(nèi)存較小,CPU 處理速度有限,對(duì)現(xiàn)有計(jì)算機(jī)流行的圖片格式進(jìn)行比較后,嵌入式電子海圖系統(tǒng)中選擇了PCX 圖片格式作為開機(jī)顯示圖片。PCX 格式比BMP 格式占有存儲(chǔ)容量小,比JPG 格式圖片解壓時(shí)占有CPU 資源也少得多。顯示PCX 圖片的過程如下:
讀取 PCX 文件頭(讀出圖片文件的大小、判斷是否是PCX 圖片、顏色位數(shù)等)
讀調(diào)色板(讀取圖片的顏色信息)
解壓圖片數(shù)據(jù)(圖片數(shù)據(jù)恢復(fù))
設(shè)置調(diào)色板(設(shè)置嵌入式海圖系統(tǒng)中的調(diào)色板與顯示圖片調(diào)色板一致)
顯示開機(jī)畫面
以下是標(biāo)準(zhǔn)PCX 格式圖片的文件頭:
typedef STruct stPcxHead
{ //PCX 文件頭數(shù)據(jù)結(jié)構(gòu),共128 字節(jié)
int8 Signature; //PCX 文件標(biāo)志,始終是0AH
int8 Version; //版本號(hào)
int8 Encoding; //壓縮標(biāo)志,始終是1,表示有限行程編碼
int8 BitsPerPixel; //每像素所占位數(shù)
int16 XMin,YMin; //圖像左上角坐標(biāo)
int16 XMax,YMax; //圖像右下角坐標(biāo)
int16 HRes,VRes; //存儲(chǔ)此PCX 文件的圖形模式分辨率
int8 Palette[48]; //16 色DAC 調(diào)色板
int8 Reserved1; //保留
int8 ColorPlaneNum; //顏色平面數(shù)
int16 BytesPerLine; //每行字節(jié)數(shù)
int16 PaletteType; //DAC 調(diào)色板類型
int8 Reserved2[58]; //全為零
}stPcxHead;
圖3 為嵌入式電子海圖顯示系統(tǒng)開機(jī)時(shí)的顯示畫面。
圖3 嵌入式電子海圖顯示系統(tǒng)開機(jī)時(shí)的顯示畫面
(2) 嵌入式電子海圖數(shù)據(jù)的顯示方法
電子海圖數(shù)據(jù)的實(shí)時(shí)顯示是系統(tǒng)的核心程序。該程序根據(jù)給出的中心點(diǎn)位置(通常為GPS 給出的船位點(diǎn)坐標(biāo))及顯示比例范圍參數(shù),確定需要顯示的空間數(shù)據(jù)范圍,并從海圖文件中找出符合顯示范圍的數(shù)據(jù),從海圖文件中讀出圖層分層控制信息以實(shí)現(xiàn)電子海圖的分層顯示控制,最后按各類實(shí)體對(duì)應(yīng)的符號(hào)要素代碼繪制相應(yīng)的圖形符號(hào)在內(nèi)存中快速完成海圖的繪制。電子海圖顯示程序流程為:1、根據(jù)中心(船位)經(jīng)緯度及顯示比例參數(shù),計(jì)算出顯示數(shù)據(jù)塊的大??;2、從海圖文件中找出符合顯示塊范圍的所有點(diǎn)、線、面數(shù)據(jù);3、將要顯示的點(diǎn)、線、面數(shù)據(jù)按類型及屬性在顯示緩存中按對(duì)應(yīng)的位置、圖案顏色、中文標(biāo)注進(jìn)行畫圖;4、顯示涮新屏幕;5、按操作命令選擇顯示要素,重新計(jì)算顯示數(shù)據(jù)塊。
嵌入式電子海圖顯示系統(tǒng)中使用了16M 字節(jié)的內(nèi)存空間,電子海圖數(shù)據(jù)一般在10MB左右,剩下4MB 中用于顯示緩存作圖的為480KB,這是按800*600 點(diǎn)顯示屏幕計(jì)算的容量。剩下的空間用于程序計(jì)算及漢字庫(kù)、文本等數(shù)據(jù)的存放。由于顯示緩存只有一塊,因此在每次顯示范圍發(fā)行變化時(shí),都要從內(nèi)存中將海圖數(shù)據(jù)重新讀算一遍,再重新進(jìn)行畫圖。這在海圖移動(dòng)操作中會(huì)影響涮新的速度,使用大容量位圖緩沖內(nèi)存技術(shù)可提高海圖在移動(dòng)或漫游時(shí)的涮新速度。圖4 為嵌入式電子海圖顯示效果圖。
圖4 電子海圖顯示效果圖
4 小結(jié)
嵌入式電子海圖儀中海圖數(shù)據(jù)使用自定義數(shù)據(jù)格式,海圖數(shù)據(jù)格式與處理顯示方案自成一體,海圖數(shù)據(jù)按點(diǎn)、線、面類型分類,并且按一定的規(guī)律連續(xù)存儲(chǔ),有利于知識(shí)產(chǎn)權(quán)的保護(hù),也可大大減小文件數(shù)據(jù)的容量。缺點(diǎn)是數(shù)據(jù)文件的交換性較差,不適合全球性網(wǎng)絡(luò)式的應(yīng)用模式。