新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux下基于MiniGUI的GIS實現

        嵌入式Linux下基于MiniGUI的GIS實現

        作者: 時間:2012-03-26 來源:網絡 收藏

        此外,系統采用了一些數據壓縮方法。對數據的壓縮方法通常可分為對坐標點有損壓縮和坐標點無損壓縮。由于嵌入式設備的存儲器容量有限,而系統數據量很大,為提高系統性能,通常這兩種壓縮方法都采用。次序是先進行有損壓縮刪除不必要的點,然后再進行無損壓縮,將空間數據變為相對坐標,以減少單個坐標點的存儲空間。具體采用的方法如下。

        1)刪除在一條筆直的道路上的中間結點,只保留首尾兩點。

        2)將雙精度型或浮點型的坐標映射為整型坐標,數據量可以減少一半。

        3)每一條弧段(包括區域邊界和線狀地物)只記錄其起點坐標(x,y),其后續點坐標用相鄰兩點間的x、y的偏移量代替,即弧段除起始點以外的其它后續點只需用短整型記錄,這樣就可以將數據量壓縮到原來的1/4左右。

        4.2 顯示速度

        為提高地圖顯示和刷新速度,采用了以下處理技術。

        1)引入一個內存DC,首先利用內存DC繪制地圖。當需要顯示地圖時,利用BitBlt函數將內存DC中的地圖復制到顯示DC上。

        2)系統引入變量m_pCSections和IDS。變量m_pCSections是一個鏈表,該鏈表中每個元素代表上次顯示時讀取的圖塊頭信息。IDS也是一個鏈表,其中每個元素為m_pCSections中與當前視窗有交集的圖塊的ID號。具體處理步驟如下:

        (1) 對m_pCSections中每一個元素,判斷它與當前視窗是否有交集,若沒有交集,則從m_pCSections中刪除該元素。

        (2) 對m_pCSections中的每個元素,將它的ID號添加到鏈表IDS中。

        (3) 對數據集中的每個圖塊,循環執行以下操作:

        判斷該圖塊的ID號是否在IDS中,若在,則從IDS中將該ID號刪除,繼續處理下一圖塊。

        若不在,則從數據文件中讀取該圖塊的圖塊頭信息,根據它的圖塊頭信息判斷該圖塊與當前視窗是否有交集。若交集不為空,則從數據文件中讀取該圖塊的具體圖層信息;若交集為空,則釋放為該圖塊頭信息分配的存儲空間。

        3)數據文件中存放每一條線段和面的最小外擴矩形的左上角和右下角信息,這樣,就不需在程序中求它的最小外擴矩形,提高了顯示速度。

        4.3 界面設計

        由于嵌入式設備的顯示屏幕通常很小,分辨率也不高,而顯示一幅較滿意的地圖又需要一定的屏幕空間,這就需要盡量減少其它元素占用的空間以將盡可能多的區域留給地圖顯示。為此,在嵌入式系統中通常將界面元素設計為按需顯示。為此,系統中將菜單設計為彈出式菜單,僅當用戶需要時才彈出以使用戶執行所需的功能。

        5 結束語

        系統利用在Linux上實現了一個嵌入式,該系統能完成電子地圖的顯示、放大、縮小、漫游等基本功能。但如何實現GPS導航、信息查詢、GSM/GPRS通信等功能還需進一步研究。

        本文創新點:本文提供了一種面向手持設備的的實現方案—采用上實現GIS,并提供了一種提高地圖顯示和漫游速度的處理方法。

        參考文獻

        [1] 汪亞雷, 余春暄. 基于的MapInfo格式地圖顯示[J]. 微計算機信息, 2006,10-2:184-186.

        [2] 周立功. ARM嵌入式初步與應用開發范例[M]. 北京:北京航空航天大學出版社,2006, 7-144.

        [3] 北京飛漫軟件技術有限公司. MiniGUI編程指南, 2004.

        [4] 北京飛漫軟件技術有限公司. MiniGUI用戶手冊, 2004.


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛沁县| 响水县| 安化县| 岑巩县| 和龙市| 佛坪县| 山东省| 会宁县| 澄江县| 新乐市| 商洛市| 礼泉县| 获嘉县| 安化县| 呼玛县| 英吉沙县| 织金县| 神农架林区| 武宣县| 萍乡市| 海安县| 平南县| 藁城市| 习水县| 西宁市| 邹城市| 独山县| 镇沅| 吉林市| 怀宁县| 资中县| 加查县| 西盟| 永昌县| 聂荣县| 札达县| 西昌市| 博爱县| 闵行区| 虎林市| 屏边|