丁曉明,劉偉永,李 瑾
(山東科技大學 信息與電氣工程學院,山東 青島266590)
如今,隨著交通工具的普及和交通狀況的改善,人們的移動性逐漸增強,對于空間信息的依賴更大。全球定位系統 GPS(Global Positioning System)能有效解決此類問題,為出行提供便捷服務[1]。目前車載導航產業蓬勃發展,然而車載GPS系統受到道路限制,不能隨時隨地提供位置信息。個人移動導航系統基于移動終端(如手機、掌上電腦等)設計,可以彌補車載GPS系統受地形限制的不足,為個人用戶提供方便可靠的位置信息,幫助用戶在陌生環境中快速地找到目的地,具有體積小、便于攜帶等優點。
個人移動地理信息系統 GIS(Geographic Information System)是在傳統GIS基礎上利用空間定位手段結合嵌入式技術,以數字地圖為顯示背景、與個人手持設備相結合,通過無線通信網絡提供移動目標實時位置及周圍信息的系統。本文根據大多數用戶需求及我國網絡通信現狀開發個人移動導航系統,系統主要由五部分組成,如圖1所示。

圖1 系統構成
系統從GPS模塊獲取數據,根據NMEA-0183協議對數據進行篩選處理;由地圖匹配模塊將獲取的位置信息與電子地圖進行匹配;位置顯示模塊在完成地圖匹配的前提下,將位置信息實時地在地圖上顯示出來,它是路徑記錄模塊的基礎;路徑記錄模塊將行進位置記錄下來,將之前和當前位置同時顯示出來,并不斷更新,從而實現行進軌跡顯示功能;將地圖的縮放及移動功能設計于輔助功能模塊中。
本系統可根據用戶需求實現地圖縮放、平移、實時定位、路徑顯示等功能,有效地適用于個人移動定位。
本系統采用Goeget公司生產的ST-92系列GPS模塊,該模塊使用SIFR III芯片組,可以同時追蹤20個衛星信號,具有靈敏度高(-159 dBm)、定位坐標精度高(可達 5 m(1 Ω))、體積小、支持 NMEA-0183 協議等特點。GPS數據通過RS232接口傳遞給搭載有Windows Mobile系統的開發板,進行數據提取利用。系統結構示意圖如圖2所示。

圖2 系統結構示意圖
Windows Mobile操作系統是微軟專門為手持移動設備推出的“移動版 Windows”,它將 Windows桌面擴展到個人設備,使用Windows Mobile操作系統的設備主要有手機、PDA等[2]。導航系統采用微軟的Windows Mobile 6.5操作系統以及Windows Mobile 6 Professional SDK。開發平臺選用 Visual Studio 2005,它針對.net開發,并且提供了智能設備模擬器,可真實地模擬物理機器代碼,把軟件安裝在這個模擬器上運行,可使開發更加方便。
Mapx Mobile是Mapinfo公司提供的一種基于OLE(Object Linking and Embedding)的嵌入式 GIS組件,可以嵌入在Pocket PC、Windows Mobile平臺下的應用程序中,運用Mapx Mobile建立的軟件可單獨在設備上運行,并且可以與Pocket PC的Windows CE操作系統兼容[3]。
對Mapx Mobile組件的嵌入,首先需要在PC機安裝Mapx Mbile,在 VS2005工具箱選項窗口中,選擇COM組件欄,勾選Mapinfo Mapx Mobile V5選項,然后在工具箱中可看到新增的Mapx工具。對地圖操作時需要將組件拖到對話框窗口中,然后在VS2005界面中可對地圖屬性進行操作,選擇載入需要的地圖。
Mapx Mobile是移動GIS的高性能低成本的解決方案,具有標準用戶控制功能,可有效地嵌入到個人移動導航系統中[4]。
GPS模塊與應用程序間通過RS232接口交互信息,因此需要在VS2005平臺上編寫對串口的驅動。

通過進入函數LRESULT CwindowsmobileDlg::OnData-ArrivedMsg(WPARAM wParam,LPARAM lParam)來處理收到的數據。因為讀到的數據不是CString型,所以需要做進一步處理。

以下數據是GPS模塊接收到的部分數據。

本系統只需要提取經度、緯度和時間數據,根據NMEA-0183協議,這里篩選接收GPGGA下的數據[5]。
首先創建圖層,并將其設置為動態圖層,然后創建動態圖元,對其進行初始化,將其與mapx插件建立關聯。初始化中可設置定位點的大小、形狀及顏色。

通過語句mobile.GetPoint().Set(gpsLongitude,gpsLatitude)將當前坐標數據與電子地圖進行關聯,然后通過mobile.Update()更新到地圖上并顯示出來。
對于路徑線的創建,需要對之前的定位點進行儲存,獲得定位點集[6]。通過CMapX Feature中的CreateLine函數將儲存的點用直線連接起來,可利用CMapXStyle中提供的函數設置線的寬度、顏色等屬性。
GIS基礎數據主要來源于地形圖、航片、衛片等。車載及個人導航系統主要數據源是地形圖,地形圖通過掃描矢量化將地圖轉換成矢量化數字地圖。就掃描矢量化而言,除了原圖質量影響數據經度外,在掃描過程中圖像預處理、矢量化過程等各個環節對數據質量都有一定程度的影響[7]。為保證定位準確性,在實際應用中需要對地圖進行匹配研究。
地圖匹配需要確定在給定定位數據和地圖信息的基礎上獲得最可能的路段,以及行人在該路段上最可能的位置。
本文采用最短距離匹配算法[8],該算法根據道路屬性預先設置一個閾值,通過計算當前GPS數據與各路段間的距離以及該數據在該路段上最短距離點,將在閾值范圍內的各路段匹配距離進行比較,得到一條最短路徑。
圖3表示基于投影的匹配算法基本原理,圖中V點表示行人當前位置,L1和L2表示附近的兩條路 ,V1、V2表 示 V 點 在兩條路上的投影,投影距離表示為d1、d2。在候選道路中選擇距離最短的作為匹配道路,并將在該條道路上的投影點認為是行人的當前位置。該算法可以在很大程度上消除地圖匹配中的各種誤差產生的影響。地圖匹配算法具體實現過程如圖4所示。


圖4 地圖匹配算法實現流程
地圖縮放及平移包括地圖的縮小、放大及平移。實現函數為 SetCur2rentTool()。

m_ctrlMap為Map對象設定了以上工具,分別是縮小、放大和平移工具,點擊鼠標即可進行地圖瀏覽。
在開發板(手機)上安裝MapX組件,該組件位于PC機的MapX安裝目錄下,將開發的軟件和對應的地圖拷貝到開發板中的maps文件夾中,雙擊運行即可。拷貝過程使用的是微軟的ActiveSync同步工具,它允許PC機與設備之間傳輸數據文件。
系統驗證時采用青島市區地圖,軟件運行界面示意圖如圖5所示。測試中端口號選擇為COM1,波特率為9 600 b/s,單擊右下角按鈕后啟動系統。GPS數據通過RS232接口進入開發板中,軟件進行處理后將位置坐標與電子地圖進行匹配,將該點位置以紅色五星符號在地圖上顯示出來,同時用戶可在界面下方看到經度及緯度數據。隨著位置的改變,定位點在地圖上會隨之實時移動,可準確地進行實時定位顯示。
點擊軟件右側的移動、放大、縮小按鈕對當前地圖進行縮放或移動,可以準確地查詢到當前和周圍環境信息。

啟動路徑顯示功能需將軟件界面右下角“路徑打開”按鈕按下。測試起點為四流北路與樓山路交點,終點為貴陽路中段。測試路徑示意圖如圖6所示。行進時紅色五星會實時移動并留下紅色軌跡。通過軟件右側的清空按鈕可將路徑及坐標信息消除,便于再次記錄路徑。

經過如上測試,系統可正確地、實時地獲取顯示位置信息并記錄行進軌跡,可滿足用戶基本導航需求。
本文利用Visual Studio平臺,嵌入 MapX Mobile地圖化組件,設計了一款基于Windows Mobile系統的導航軟件,并結合ST-92 GPS模塊,開發了一個移動導航定位系統,同時對其具體實現過程進行了闡述。本系統搭載青島市地圖進行測試,通過串口獲取GPS數據,完成了數據與電子地圖匹配,完成了地圖的顯示、縮放、平移,實現了定位導航功能。
[1]孫兵.基于AGPS的智能導航系統軟件開發與研究[D].北京:北京郵電大學,2010.
[2]凌澤軍,魏文娟,孫震強.智能終端的主流平臺——Windows Mobile 分析[J].移 動 通 信,2010(9):78-82.
[3]MapInfo Corporation.MapInfo MapX Mobile production introduce[S].2003.
[4]李凱鋒,呂志平.基于 MapX Mobile開發的個人移動導航系統[J].海洋測繪,2006,26(9):99-103.
[5]錢恭斌,尹文濤,王文富.基于WM6.0操作系統的智能手機定位監控系統設計[J].電子技術應用,2009,35(12):24-30.
[6]馬紅皎,胡永輝,張志武.使用Mapx Mobile開發 Pocket PC上導航軟件[C].全國時間頻率學術交流會,2005.
[7]曾波,江資斌.GPS車載導航系統的地圖匹配算法[J].測繪工程,2004,13(3):65-67.
[8]吳忻.基于GPS定位和電子地圖的最佳路徑搜索[D].西安:西安電子科技大學,2006.