丁曉明,劉偉永,李 瑾
(山東科技大學(xué) 信息與電氣工程學(xué)院,山東 青島266590)
如今,隨著交通工具的普及和交通狀況的改善,人們的移動(dòng)性逐漸增強(qiáng),對(duì)于空間信息的依賴(lài)更大。全球定位系統(tǒng) GPS(Global Positioning System)能有效解決此類(lèi)問(wèn)題,為出行提供便捷服務(wù)[1]。目前車(chē)載導(dǎo)航產(chǎn)業(yè)蓬勃發(fā)展,然而車(chē)載GPS系統(tǒng)受到道路限制,不能隨時(shí)隨地提供位置信息。個(gè)人移動(dòng)導(dǎo)航系統(tǒng)基于移動(dòng)終端(如手機(jī)、掌上電腦等)設(shè)計(jì),可以彌補(bǔ)車(chē)載GPS系統(tǒng)受地形限制的不足,為個(gè)人用戶(hù)提供方便可靠的位置信息,幫助用戶(hù)在陌生環(huán)境中快速地找到目的地,具有體積小、便于攜帶等優(yōu)點(diǎn)。
個(gè)人移動(dòng)地理信息系統(tǒng) GIS(Geographic Information System)是在傳統(tǒng)GIS基礎(chǔ)上利用空間定位手段結(jié)合嵌入式技術(shù),以數(shù)字地圖為顯示背景、與個(gè)人手持設(shè)備相結(jié)合,通過(guò)無(wú)線(xiàn)通信網(wǎng)絡(luò)提供移動(dòng)目標(biāo)實(shí)時(shí)位置及周?chē)畔⒌南到y(tǒng)。本文根據(jù)大多數(shù)用戶(hù)需求及我國(guó)網(wǎng)絡(luò)通信現(xiàn)狀開(kāi)發(fā)個(gè)人移動(dòng)導(dǎo)航系統(tǒng),系統(tǒng)主要由五部分組成,如圖1所示。
圖1 系統(tǒng)構(gòu)成
系統(tǒng)從GPS模塊獲取數(shù)據(jù),根據(jù)NMEA-0183協(xié)議對(duì)數(shù)據(jù)進(jìn)行篩選處理;由地圖匹配模塊將獲取的位置信息與電子地圖進(jìn)行匹配;位置顯示模塊在完成地圖匹配的前提下,將位置信息實(shí)時(shí)地在地圖上顯示出來(lái),它是路徑記錄模塊的基礎(chǔ);路徑記錄模塊將行進(jìn)位置記錄下來(lái),將之前和當(dāng)前位置同時(shí)顯示出來(lái),并不斷更新,從而實(shí)現(xiàn)行進(jìn)軌跡顯示功能;將地圖的縮放及移動(dòng)功能設(shè)計(jì)于輔助功能模塊中。
本系統(tǒng)可根據(jù)用戶(hù)需求實(shí)現(xiàn)地圖縮放、平移、實(shí)時(shí)定位、路徑顯示等功能,有效地適用于個(gè)人移動(dòng)定位。
本系統(tǒng)采用Goeget公司生產(chǎn)的ST-92系列GPS模塊,該模塊使用SIFR III芯片組,可以同時(shí)追蹤20個(gè)衛(wèi)星信號(hào),具有靈敏度高(-159 dBm)、定位坐標(biāo)精度高(可達(dá) 5 m(1 Ω))、體積小、支持 NMEA-0183 協(xié)議等特點(diǎn)。GPS數(shù)據(jù)通過(guò)RS232接口傳遞給搭載有Windows Mobile系統(tǒng)的開(kāi)發(fā)板,進(jìn)行數(shù)據(jù)提取利用。系統(tǒng)結(jié)構(gòu)示意圖如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)示意圖
Windows Mobile操作系統(tǒng)是微軟專(zhuān)門(mén)為手持移動(dòng)設(shè)備推出的“移動(dòng)版 Windows”,它將 Windows桌面擴(kuò)展到個(gè)人設(shè)備,使用Windows Mobile操作系統(tǒng)的設(shè)備主要有手機(jī)、PDA等[2]。導(dǎo)航系統(tǒng)采用微軟的Windows Mobile 6.5操作系統(tǒng)以及Windows Mobile 6 Professional SDK。開(kāi)發(fā)平臺(tái)選用 Visual Studio 2005,它針對(duì).net開(kāi)發(fā),并且提供了智能設(shè)備模擬器,可真實(shí)地模擬物理機(jī)器代碼,把軟件安裝在這個(gè)模擬器上運(yùn)行,可使開(kāi)發(fā)更加方便。
Mapx Mobile是Mapinfo公司提供的一種基于OLE(Object Linking and Embedding)的嵌入式 GIS組件,可以嵌入在Pocket PC、Windows Mobile平臺(tái)下的應(yīng)用程序中,運(yùn)用Mapx Mobile建立的軟件可單獨(dú)在設(shè)備上運(yùn)行,并且可以與Pocket PC的Windows CE操作系統(tǒng)兼容[3]。
對(duì)Mapx Mobile組件的嵌入,首先需要在PC機(jī)安裝Mapx Mbile,在 VS2005工具箱選項(xiàng)窗口中,選擇COM組件欄,勾選Mapinfo Mapx Mobile V5選項(xiàng),然后在工具箱中可看到新增的Mapx工具。對(duì)地圖操作時(shí)需要將組件拖到對(duì)話(huà)框窗口中,然后在VS2005界面中可對(duì)地圖屬性進(jìn)行操作,選擇載入需要的地圖。
Mapx Mobile是移動(dòng)GIS的高性能低成本的解決方案,具有標(biāo)準(zhǔn)用戶(hù)控制功能,可有效地嵌入到個(gè)人移動(dòng)導(dǎo)航系統(tǒng)中[4]。
GPS模塊與應(yīng)用程序間通過(guò)RS232接口交互信息,因此需要在VS2005平臺(tái)上編寫(xiě)對(duì)串口的驅(qū)動(dòng)。
通過(guò)進(jìn)入函數(shù)LRESULT CwindowsmobileDlg::OnData-ArrivedMsg(WPARAM wParam,LPARAM lParam)來(lái)處理收到的數(shù)據(jù)。因?yàn)樽x到的數(shù)據(jù)不是CString型,所以需要做進(jìn)一步處理。
以下數(shù)據(jù)是GPS模塊接收到的部分?jǐn)?shù)據(jù)。
本系統(tǒng)只需要提取經(jīng)度、緯度和時(shí)間數(shù)據(jù),根據(jù)NMEA-0183協(xié)議,這里篩選接收GPGGA下的數(shù)據(jù)[5]。
首先創(chuàng)建圖層,并將其設(shè)置為動(dòng)態(tài)圖層,然后創(chuàng)建動(dòng)態(tài)圖元,對(duì)其進(jìn)行初始化,將其與mapx插件建立關(guān)聯(lián)。初始化中可設(shè)置定位點(diǎn)的大小、形狀及顏色。
通過(guò)語(yǔ)句mobile.GetPoint().Set(gpsLongitude,gpsLatitude)將當(dāng)前坐標(biāo)數(shù)據(jù)與電子地圖進(jìn)行關(guān)聯(lián),然后通過(guò)mobile.Update()更新到地圖上并顯示出來(lái)。
對(duì)于路徑線(xiàn)的創(chuàng)建,需要對(duì)之前的定位點(diǎn)進(jìn)行儲(chǔ)存,獲得定位點(diǎn)集[6]。通過(guò)CMapX Feature中的CreateLine函數(shù)將儲(chǔ)存的點(diǎn)用直線(xiàn)連接起來(lái),可利用CMapXStyle中提供的函數(shù)設(shè)置線(xiàn)的寬度、顏色等屬性。
GIS基礎(chǔ)數(shù)據(jù)主要來(lái)源于地形圖、航片、衛(wèi)片等。車(chē)載及個(gè)人導(dǎo)航系統(tǒng)主要數(shù)據(jù)源是地形圖,地形圖通過(guò)掃描矢量化將地圖轉(zhuǎn)換成矢量化數(shù)字地圖。就掃描矢量化而言,除了原圖質(zhì)量影響數(shù)據(jù)經(jīng)度外,在掃描過(guò)程中圖像預(yù)處理、矢量化過(guò)程等各個(gè)環(huán)節(jié)對(duì)數(shù)據(jù)質(zhì)量都有一定程度的影響[7]。為保證定位準(zhǔn)確性,在實(shí)際應(yīng)用中需要對(duì)地圖進(jìn)行匹配研究。
地圖匹配需要確定在給定定位數(shù)據(jù)和地圖信息的基礎(chǔ)上獲得最可能的路段,以及行人在該路段上最可能的位置。
本文采用最短距離匹配算法[8],該算法根據(jù)道路屬性預(yù)先設(shè)置一個(gè)閾值,通過(guò)計(jì)算當(dāng)前GPS數(shù)據(jù)與各路段間的距離以及該數(shù)據(jù)在該路段上最短距離點(diǎn),將在閾值范圍內(nèi)的各路段匹配距離進(jìn)行比較,得到一條最短路徑。
圖3表示基于投影的匹配算法基本原理,圖中V點(diǎn)表示行人當(dāng)前位置,L1和L2表示附近的兩條路 ,V1、V2表 示 V 點(diǎn) 在兩條路上的投影,投影距離表示為d1、d2。在候選道路中選擇距離最短的作為匹配道路,并將在該條道路上的投影點(diǎn)認(rèn)為是行人的當(dāng)前位置。該算法可以在很大程度上消除地圖匹配中的各種誤差產(chǎn)生的影響。地圖匹配算法具體實(shí)現(xiàn)過(guò)程如圖4所示。
圖4 地圖匹配算法實(shí)現(xiàn)流程
地圖縮放及平移包括地圖的縮小、放大及平移。實(shí)現(xiàn)函數(shù)為 SetCur2rentTool()。
m_ctrlMap為Map對(duì)象設(shè)定了以上工具,分別是縮小、放大和平移工具,點(diǎn)擊鼠標(biāo)即可進(jìn)行地圖瀏覽。
在開(kāi)發(fā)板(手機(jī))上安裝MapX組件,該組件位于PC機(jī)的MapX安裝目錄下,將開(kāi)發(fā)的軟件和對(duì)應(yīng)的地圖拷貝到開(kāi)發(fā)板中的maps文件夾中,雙擊運(yùn)行即可。拷貝過(guò)程使用的是微軟的ActiveSync同步工具,它允許PC機(jī)與設(shè)備之間傳輸數(shù)據(jù)文件。
系統(tǒng)驗(yàn)證時(shí)采用青島市區(qū)地圖,軟件運(yùn)行界面示意圖如圖5所示。測(cè)試中端口號(hào)選擇為COM1,波特率為9 600 b/s,單擊右下角按鈕后啟動(dòng)系統(tǒng)。GPS數(shù)據(jù)通過(guò)RS232接口進(jìn)入開(kāi)發(fā)板中,軟件進(jìn)行處理后將位置坐標(biāo)與電子地圖進(jìn)行匹配,將該點(diǎn)位置以紅色五星符號(hào)在地圖上顯示出來(lái),同時(shí)用戶(hù)可在界面下方看到經(jīng)度及緯度數(shù)據(jù)。隨著位置的改變,定位點(diǎn)在地圖上會(huì)隨之實(shí)時(shí)移動(dòng),可準(zhǔn)確地進(jìn)行實(shí)時(shí)定位顯示。
點(diǎn)擊軟件右側(cè)的移動(dòng)、放大、縮小按鈕對(duì)當(dāng)前地圖進(jìn)行縮放或移動(dòng),可以準(zhǔn)確地查詢(xún)到當(dāng)前和周?chē)h(huán)境信息。
啟動(dòng)路徑顯示功能需將軟件界面右下角“路徑打開(kāi)”按鈕按下。測(cè)試起點(diǎn)為四流北路與樓山路交點(diǎn),終點(diǎn)為貴陽(yáng)路中段。測(cè)試路徑示意圖如圖6所示。行進(jìn)時(shí)紅色五星會(huì)實(shí)時(shí)移動(dòng)并留下紅色軌跡。通過(guò)軟件右側(cè)的清空按鈕可將路徑及坐標(biāo)信息消除,便于再次記錄路徑。
經(jīng)過(guò)如上測(cè)試,系統(tǒng)可正確地、實(shí)時(shí)地獲取顯示位置信息并記錄行進(jìn)軌跡,可滿(mǎn)足用戶(hù)基本導(dǎo)航需求。
本文利用Visual Studio平臺(tái),嵌入 MapX Mobile地圖化組件,設(shè)計(jì)了一款基于Windows Mobile系統(tǒng)的導(dǎo)航軟件,并結(jié)合ST-92 GPS模塊,開(kāi)發(fā)了一個(gè)移動(dòng)導(dǎo)航定位系統(tǒng),同時(shí)對(duì)其具體實(shí)現(xiàn)過(guò)程進(jìn)行了闡述。本系統(tǒng)搭載青島市地圖進(jìn)行測(cè)試,通過(guò)串口獲取GPS數(shù)據(jù),完成了數(shù)據(jù)與電子地圖匹配,完成了地圖的顯示、縮放、平移,實(shí)現(xiàn)了定位導(dǎo)航功能。
[1]孫兵.基于AGPS的智能導(dǎo)航系統(tǒng)軟件開(kāi)發(fā)與研究[D].北京:北京郵電大學(xué),2010.
[2]凌澤軍,魏文娟,孫震強(qiáng).智能終端的主流平臺(tái)——Windows Mobile 分析[J].移 動(dòng) 通 信,2010(9):78-82.
[3]MapInfo Corporation.MapInfo MapX Mobile production introduce[S].2003.
[4]李凱鋒,呂志平.基于 MapX Mobile開(kāi)發(fā)的個(gè)人移動(dòng)導(dǎo)航系統(tǒng)[J].海洋測(cè)繪,2006,26(9):99-103.
[5]錢(qián)恭斌,尹文濤,王文富.基于WM6.0操作系統(tǒng)的智能手機(jī)定位監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,35(12):24-30.
[6]馬紅皎,胡永輝,張志武.使用Mapx Mobile開(kāi)發(fā) Pocket PC上導(dǎo)航軟件[C].全國(guó)時(shí)間頻率學(xué)術(shù)交流會(huì),2005.
[7]曾波,江資斌.GPS車(chē)載導(dǎo)航系統(tǒng)的地圖匹配算法[J].測(cè)繪工程,2004,13(3):65-67.
[8]吳忻.基于GPS定位和電子地圖的最佳路徑搜索[D].西安:西安電子科技大學(xué),2006.