嵌入式Linux下基于MiniGUI的GIS實(shí)現(xiàn)
此外,系統(tǒng)采用了一些數(shù)據(jù)壓縮方法。對數(shù)據(jù)的壓縮方法通??煞譃閷ψ鴺?biāo)點(diǎn)有損壓縮和坐標(biāo)點(diǎn)無損壓縮。由于嵌入式設(shè)備的存儲器容量有限,而GIS系統(tǒng)數(shù)據(jù)量很大,為提高系統(tǒng)性能,通常這兩種壓縮方法都采用。次序是先進(jìn)行有損壓縮刪除不必要的點(diǎn),然后再進(jìn)行無損壓縮,將空間數(shù)據(jù)變?yōu)橄鄬ψ鴺?biāo),以減少單個(gè)坐標(biāo)點(diǎn)的存儲空間。具體采用的方法如下。
1)刪除在一條筆直的道路上的中間結(jié)點(diǎn),只保留首尾兩點(diǎn)。
2)將雙精度型或浮點(diǎn)型的坐標(biāo)映射為整型坐標(biāo),數(shù)據(jù)量可以減少一半。
3)每一條弧段(包括區(qū)域邊界和線狀地物)只記錄其起點(diǎn)坐標(biāo)(x,y),其后續(xù)點(diǎn)坐標(biāo)用相鄰兩點(diǎn)間的x、y的偏移量代替,即弧段除起始點(diǎn)以外的其它后續(xù)點(diǎn)只需用短整型記錄,這樣就可以將數(shù)據(jù)量壓縮到原來的1/4左右。
4.2 顯示速度
為提高地圖顯示和刷新速度,采用了以下處理技術(shù)。
1)引入一個(gè)內(nèi)存DC,首先利用內(nèi)存DC繪制地圖。當(dāng)需要顯示地圖時(shí),利用BitBlt函數(shù)將內(nèi)存DC中的地圖復(fù)制到顯示DC上。
2)系統(tǒng)引入變量m_pCSections和IDS。變量m_pCSections是一個(gè)鏈表,該鏈表中每個(gè)元素代表上次顯示時(shí)讀取的圖塊頭信息。IDS也是一個(gè)鏈表,其中每個(gè)元素為m_pCSections中與當(dāng)前視窗有交集的圖塊的ID號。具體處理步驟如下:
(1) 對m_pCSections中每一個(gè)元素,判斷它與當(dāng)前視窗是否有交集,若沒有交集,則從m_pCSections中刪除該元素。
(2) 對m_pCSections中的每個(gè)元素,將它的ID號添加到鏈表IDS中。
(3) 對數(shù)據(jù)集中的每個(gè)圖塊,循環(huán)執(zhí)行以下操作:
判斷該圖塊的ID號是否在IDS中,若在,則從IDS中將該ID號刪除,繼續(xù)處理下一圖塊。
若不在,則從數(shù)據(jù)文件中讀取該圖塊的圖塊頭信息,根據(jù)它的圖塊頭信息判斷該圖塊與當(dāng)前視窗是否有交集。若交集不為空,則從數(shù)據(jù)文件中讀取該圖塊的具體圖層信息;若交集為空,則釋放為該圖塊頭信息分配的存儲空間。
3)數(shù)據(jù)文件中存放每一條線段和面的最小外擴(kuò)矩形的左上角和右下角信息,這樣,就不需在程序中求它的最小外擴(kuò)矩形,提高了顯示速度。
4.3 界面設(shè)計(jì)
由于嵌入式設(shè)備的顯示屏幕通常很小,分辨率也不高,而顯示一幅較滿意的地圖又需要一定的屏幕空間,這就需要盡量減少其它元素占用的空間以將盡可能多的區(qū)域留給地圖顯示。為此,在嵌入式系統(tǒng)中通常將界面元素設(shè)計(jì)為按需顯示。為此,系統(tǒng)中將菜單設(shè)計(jì)為彈出式菜單,僅當(dāng)用戶需要時(shí)才彈出以使用戶執(zhí)行所需的功能。
5 結(jié)束語
系統(tǒng)利用MiniGUI在Linux上實(shí)現(xiàn)了一個(gè)嵌入式GIS,該系統(tǒng)能完成電子地圖的顯示、放大、縮小、漫游等基本功能。但如何實(shí)現(xiàn)GPS導(dǎo)航、信息查詢、GSM/GPRS通信等功能還需進(jìn)一步研究。
本文創(chuàng)新點(diǎn):本文提供了一種面向手持設(shè)備的GIS的實(shí)現(xiàn)方案—采用MiniGUI在嵌入式Linux上實(shí)現(xiàn)GIS,并提供了一種提高地圖顯示和漫游速度的處理方法。
參考文獻(xiàn)
[1] 汪亞雷, 余春暄. 基于嵌入式Linux的MapInfo格式地圖顯示[J]. 微計(jì)算機(jī)信息, 2006,10-2:184-186.
[2] 周立功. ARM嵌入式MiniGUI初步與應(yīng)用開發(fā)范例[M]. 北京:北京航空航天大學(xué)出版社,2006, 7-144.
[3] 北京飛漫軟件技術(shù)有限公司. MiniGUI編程指南, 2004.
[4] 北京飛漫軟件技術(shù)有限公司. MiniGUI用戶手冊, 2004.
評論