新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Linux的MapInfo格式地圖顯示

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

作者: 時間:2012-05-21 來源:網(wǎng)絡(luò) 收藏

掌握了文件之間的關(guān)系之后,可以用C或C++語言編程實現(xiàn)對.TAB或.MIF文件的讀取。為了存儲對應(yīng)地理圖元的記錄的信息,本文構(gòu)造了如下的數(shù)據(jù)結(jié)構(gòu),如圖2所示:

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

圖 2 存儲地理圖元數(shù)據(jù)結(jié)構(gòu)

4. 地圖的繪制

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

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

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

4.2 功能擴展

在基本的繪制完成后,還可以根據(jù)之前得到的數(shù)據(jù)結(jié)構(gòu)和MiniGUI庫函數(shù)的API擴展其他的功能。

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

另外,對一些特殊的標(biāo)注點的圖形顯示,如醫(yī)院、學(xué)校,可以采用加載bmp格式的圖標(biāo)在顯示區(qū)標(biāo)注。

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

5. 結(jié)束語

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

本文由北京市教委基金委教育委員會發(fā)展計劃項目支持 項目名稱:CANOPEN現(xiàn)場總線與電動汽車綜合監(jiān)控系統(tǒng)關(guān)鍵技術(shù)研究項目編號:KZ20041000501

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

參考文獻:

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

[2] 劉瑜,張晶等 地理信息系統(tǒng)——原理、方法和應(yīng)用[M] 北京 科學(xué)出版社 2003

[3] 趙森 地理坐標(biāo)與直角坐標(biāo)相互轉(zhuǎn)換的算法[J] 火力與指揮控制 2001年12月

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

[5] 鄧玉嬌 高斯投影與經(jīng)緯度投影VC++ 編程轉(zhuǎn)換——以MIF 文件中投影轉(zhuǎn)換為例[J]中國地質(zhì)大學(xué)計算機應(yīng)用研究 2003年

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

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

linux相關(guān)文章:linux教程



上一頁 1 2 下一頁

關(guān)鍵詞: 嵌入式 地圖顯示 電子地圖

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉