新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的MapInfo格式地圖顯示

        基于嵌入式Linux的MapInfo格式地圖顯示

        作者: 時間:2012-05-21 來源:網絡 收藏

        掌握了文件之間的關系之后,可以用C或C++語言編程實現對.TAB或.MIF文件的讀取。為了存儲對應地理圖元的記錄的信息,本文構造了如下的數據結構,如圖2所示:

        其中NTz結構指明該文件包含多少個字段,ONETz指明該字段包含多少個部分,kind指明改部分是點、線還是標注,ONEPART又給出了各個部分包含的坐標點的數量和位置信息。接下來在MiniGUI中主要對這個ONETz結構進行處理。

        圖 2 存儲地理圖元數據結構

        4. 地圖的繪制

        4.1 基本的點、線、多邊形的繪制

        在把將上一步得到的坐標和坐標系的定義通過高斯投影變換[5],再將得到的坐標經過變換到MiniGUI的顯示窗口,在本文中即平臺的LCD的某個區域上,按照MiniGUI中定義的POINT類型,最后在MiniGUI中的MSG_PAINT消息中進行地圖的繪制。

        進入MiniGUI的繪制窗口前,首先完成對MapInfo格式文件的解析,得到上述的數據結構。進入窗口后,根據不同的地圖元數據中指示的類型特點,如點、線、面、文本,調用不同的MiniGUI的繪圖函數,如PollyLineTo、FillPolygon、 TextOut、Circle等函數在繪制區進行圖元的繪制。增加坐標的變換和比例尺的分析后,可實現放大,縮小,漫游,測距功能。

        4.2 功能擴展

        在基本的繪制完成后,還可以根據之前得到的數據結構和MiniGUI庫函數的API擴展其他的功能。

        選取圖元的功能可以通過截取鼠標鍵彈起的信息,得到當前的屏幕位置信息,如果將該位置與線元素的距離比較,如果小于一定的像素閾值,則認為選中,并顯示提示信息;如果是選取面,可以用是否在多邊形內部來判斷是否被選中。

        另外,對一些特殊的標注點的圖形顯示,如醫院、學校,可以采用加載bmp格式的圖標在顯示區標注。

        筆者的平臺要實時的通過串口接受GPS定位坐標和農田采集的信息,通過一個按鈕控制一個線程的開關,該線程讀取串口數據記錄到文件中。該線程和MiniGUI之間可采用信號量同步,最終根據屬性信息對農田區,即MiniGUI的API對多邊形區域進行著色,產生某種屬性的分布圖。最后還可以將所有農田數據整合,得到預測的產量等分布圖等等。

        5. 結束語

        本文提供了一種面向手持設備的工具的具體方案,通過對MiniGUI的移植和對MapInfo格式文件的分析,達到最終地圖的顯示。采用北京市二環以內的MapInfo地圖進行顯示(含1000個左右的各種圖元),將平臺顯示結果(圖3)和PC機上的 MapInfo軟件顯示的結果(圖4)進行對比,顯示效果良好,這種方案支持漫游、查詢、地圖匹配等功能,并可利用Linux和MiniGUI的API進行功能擴展,在手持平臺上很好的滿足一般的的要求,為今后地圖匹配,農田數據采集打下了基礎。

        本文由北京市教委基金委教育委員會發展計劃項目支持 項目名稱:CANOPEN現場總線與電動汽車綜合監控系統關鍵技術研究項目編號:KZ20041000501

        文章創新點:本文提供了一種面向手持設備的工具的具體方案--采用Linux和MiniGUI開發,在保證系統穩定性的同時,減小系統大小,保持穩定性,最終形成一個低成本的但能支持主流MapInfo格式地圖文件的地圖顯示平臺,平臺在小型地圖中應用良好,平臺用途廣泛,可擴展功能,滿足一些對地圖基本操作的應用,為農田信息采集或其它進一步功能的實現打下了基礎。

        參考文獻:

        [1] 三味工作室 MapInfo6.0 應用開發指南[M] 北京人民郵電出版社 2001年

        [2] 劉瑜,張晶等 地理信息系統——原理、方法和應用[M] 北京 科學出版社 2003

        [3] 趙森 地理坐標與直角坐標相互轉換的算法[J] 火力與指揮控制 2001年12月

        [4] 胡伍生,高成發 GPS測量原理及其應用[M] 北京 人民交通出版社 2002年

        [5] 鄧玉嬌 高斯投影與經緯度投影VC++ 編程轉換——以MIF 文件中投影轉換為例[J]中國地質大學計算機應用研究 2003年

        [6] 陳諷,毛洋林,潘志浩 基于嵌入式Linux的圖形界面顯示系統的設計[J] 微計算機信息 2004 20卷 01期 76頁

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛扎县| 永清县| 九江市| 新竹县| 三亚市| 邢台市| 关岭| 咸宁市| 呼图壁县| 通海县| 东港市| 义乌市| 长寿区| 巴林右旗| 肇庆市| 平利县| 浦县| 义乌市| 临夏县| 筠连县| 青川县| 固镇县| 黄浦区| 琼结县| 武宁县| 藁城市| 儋州市| 武夷山市| 延边| 嵊泗县| 昭通市| 卢龙县| 德州市| 日土县| 锦州市| 石首市| 清涧县| 青铜峡市| 江华| 喀什市| 新竹县|