李 光
(天津市測繪院,天津 300381)
全球衛星導航系統(global navigation satellite system,GNSS)提供了覆蓋全球范圍、全天候、高精度的定位導航服務,目前,隨著GNSS技術、通信技術的發展和硬件成本的降低,基于GNSS的跟蹤定位服務逐漸由特殊領域走向普通大眾,被廣泛應用于城市巡檢作業監督、車輛調度、車輛導航定位等領域,成為空間位置服務(location based services,LBS)的重要內容之一,LBS是通過電信移動運營商的無線電通訊網絡或外部定位方式(本文即GNSS)獲取移動終端用戶的位置信息,在地理信息系統(geographic information system,GIS)平臺(本文即天地圖)的支持下,為用戶提供相應服務的一種增值業務,LBS業務需要提供兩方面支持:基于GIS平臺的實時定位和與位置相關的服務,由此可知,實現基于GIS平臺的實時定位跟蹤是LBS的關鍵所在。
因此,本文采用天地圖提供的地圖數據服務,開發了基于B/S(Browser/Server,即瀏覽器和服務器結構)模式的GNSS定位跟蹤平臺以及Windows CE手持終端下的客戶端軟件,客戶端與定位跟蹤服務平臺之間采用通用分組無線服務技術(general packet radio service,GPRS)方式進行網絡數據傳輸。
系統由B/S實時定位跟蹤平臺和手持終端兩部分組成,邏輯架構圖如圖1所示。系統平臺采用三層B/S結構,基于.NET技術開發系統應用平臺,整個平臺分為表示層、邏輯層和數據層;手持終端采用配有Windows CE操作系統的GNSS手持機。BS平臺各部分功能作用如下所述:
表示層:用戶直接操作的是界面表示層,即B/S平臺中的Browser,用戶的應用程序是一個通用的瀏覽器軟件,通過該層不同層次的用戶輸入請求操作的參數,系統將處理的結果顯示在瀏覽器界面,同時發布系統的公告通知等。
邏輯層:該層位于表示層和數據層之間,一是對各類數據請求進行相應的處理,管理系統用戶信息;二是接受來自瀏覽器的請求,進行數據處理,地圖操作,用戶實時定位、跟蹤;三是對歷史軌跡查詢,根據用戶所有的跟蹤定位點繪制規定時段內的軌跡圖。
數據層:用來定義、維護、訪問和更新數據,并管理和滿足應用服務對數據的請求,該層負責解析業務邏輯層所發出的數據請求,執行相關的操作。
采用三層結構模式,使系統各層協調工作,具備了很高的穩定性、延展性和執行效率,并且便于維護和升級擴展。

圖1 系統邏輯架構圖
總體設計的目標是明確系統的總體架構和系統運作數據流,系統由三個子軟件模塊組成,包括運行于手持GNSS終端上的定位數據采集與發送軟件、運行于服務器的數據接收軟件和基于B/S模式的天地圖跟蹤平臺,三者之間通過數據庫聯系起來。系統總體架構如圖2所示。
手持GNSS終端軟件需要實現的功能包括,GNSS定位功能,美國國家海洋電子協會(nation-al marine electronics associationNMEA 數據解碼功能以及無線GPRS傳輸功能。本論文采用中海達Q5地理信息采集終端[2]作為實驗的硬件平臺,其采用的是Windows CE操作系統,因此本文手持GNSS終端軟件基于此操作系統進行編寫;數據庫是系統的重要組成,是系統運行的紐帶,終端實時用戶將定位信息實時傳回服務器入庫,與此同時,內業天地圖跟蹤平臺用戶則通過瀏覽器實時向數據庫請求手持終端定位數據,完成對手持終端的定位跟蹤,因此設計高效、簡潔的數據表至關重要;定位跟蹤平臺需要對手持GNSS終端進行實時跟蹤,為了使得用戶能夠直觀的了解終端的實時位置情況,本文設計天地圖平臺作為服務器窗口,用于展繪終端實時位置。該平臺依托于國家地理信息公共服務平臺 “天地圖”,以天地圖服務接口實現二次開發,該平臺所有的地圖操作、在線跟蹤和歷史軌跡查詢都以天地圖為地理底圖。

圖2 系統架構及數據流圖
終端端軟件從Windows CE手持機的COM串口讀取NMEA0183格式的GNSS實時定位數據,進行解碼得到終端的位置、速度、移動方向以及協調世界時(coordinated universal time,UTC)等信息,然后對部分有效信息進行自定義編碼并通過GPRS發送至服務器;數據接收程序負責響應終端連接請求并接收解碼終端回發的定位數據,將得到的用戶信息、位置存入數據庫;天地圖跟蹤平臺則提供給瀏覽器端用戶數據查詢接口,實時從數據庫讀取用戶位置并基于天地圖實時位置展繪。
手持GNSS終端輸出的是NMEA0183格式的定位數據,這是美國國家海洋電子協會為海用電子設備制定的標準格式,目前已成為GNSS導航設備統一的標準協議。NMEA數據標準有0180、0182和0183這三種,0183可以認為是前兩種的升級,也是目前使用最為廣泛的一種。NMEA0183協議采用ASCII碼,其串行通信默認參數為:波特率4 800bit/s,數據位8bit,開始位1bit,停止位1bit,無奇偶校驗。解碼程序中使用Serial-Port類定義對象,用該對象打開終端串口,并讀取COM端口輸出的NMEA數據,根據NMEA數據結構,逐一提取系統所需定位信息。
如圖2所示,在實際應用中,往往是多個GNSS終端同時在線,同時天地圖跟中平臺也會向系統服務器發出數據請求,為了實現所有請求實時數據處理,系統服務器必須對各個請求操作實現并行處理,本文引入多線程技術來實現這一過程。
在實現多測站觀測數據并行解碼的過程中,首先通過一個主線程對各個GNSS終端和天地圖跟蹤平臺進行監聽,一旦監聽到終端向系統服務器發出的請求后,則為該外業終端開辟一個子線程,有多少外業終端請求就有多少個子線程同時工作,每一個子線程負責一個測站觀測數據的解碼計算過程,主線程負責以時間片為單位使處理器在多個子線程之間不斷切換,直到所有測站的數據請求完成,最后結束主線程。由于處理器運行速度很快,因此幾乎所有子線程都在同時運行,這樣就實現了多個測站觀測數據的并行解碼,算法流程如圖3所示。

圖3 多線程技術實現流程圖
以天地圖為底圖的跟蹤平臺采用B/S架構,傳統Web應用程序工作模式是首先載入頁面,然后,用戶執行一定的操作,比如單擊一個鏈接,在用戶等待的時候,頁面就將用戶的動作提交到服務器端的程序那里處理,此時整個頁面數據清空,用戶處于等待狀態,屏幕通常是一片空白,直到結果發送回來,Web應用程序重新載入整個頁面。
圖4為傳統Web應用模式,這種傳統的Web應用程序工作模式使得本文的實時監控平臺運行速度變慢,用戶體驗降低,因為底圖 “天地圖”的數據量較大,需要一遍一遍的重復加載整個頁面,這樣就導致頁面不變的數據也要重新加載顯示,這些重復的數據給服務器、網絡和客戶端造成了很多額外負擔,因此傳統的Web工作模式并不適合本文設計的B/S監控平臺,需要引入一種技術實現頁面局部重新加載,實現地理底圖之類數據量較大且一直不變的數據內容則保持不變,在頁面與服務器的交互過程中,服務器僅僅返回部分變化的數據,瀏覽器接收到數據之后,進行局部更新顯示即可。

圖4 傳統Web應用模式

圖5 AJAX Web應用模式
如圖5所示,AJAX Web應用模式,加入AJAX引擎的Web應用程序工作模式,每次用戶操作之后,首先通過JavaScript腳本進入AJAX引擎,AJAX將請求以異步的方式發送給服務器,與此同時,瀏覽器端對支持用戶繼續使用,而不會出現空白等待服務器響應的狀態。用戶只更新頁面中局部內容時,服務器將結果以XML數據格式返回瀏覽器,首先進入AJAX引擎,再利用后臺JavaScript和CSS腳本更新頁面內容,這樣前臺頁面看起來保持原樣,不會影響前臺加載速度。
本文天地圖定為跟蹤平臺每隔3s需要對數據庫信息進行訪問,并更新頁面以達到實時跟蹤的效果,頁面刷新非常頻繁,因此設計本文系統時引入了AJAX技術,主要應用于含有天地圖加載的頁面上,這樣可以避免天地圖數據的重復的刷新、加載。下面以實時監控功能模塊為例,闡述AJAX技術如何在其中發揮作用的,整個頁面的交互過程如圖6。

圖6 基于AJAX技術的監控頁面交互流程圖

圖7 用戶實時監控圖

圖8 用戶軌跡查詢
測試選地在山東某地,且底圖采用 “天地圖山東”API接口,手持終端采用中海達Q5接入系統。如圖7所示,登陸天地圖定位跟蹤平臺可以看到用戶名為 “張三”的在線用戶,從地圖上能清晰的對終端位置進行實時定位,并且通過信息框的形式展示該用戶的基本信息和實時經緯度,并且當終端移動時,地圖上的標記每3s刷新一次,達到對用戶的實時定位跟蹤;平臺同時可在線查詢用戶歷史軌跡,如圖8所示,選擇用戶名 “張三”并選擇軌跡所在時間段點擊查詢,測試時候終端移動1次,也就是采集了兩個點的位置信息,因此軌跡為一條直線,軌跡放大顯示見圖8。
隨著天地圖的推廣與應用,基于天地圖的位置服務將越來越多的被推向市場,無論是社交服務、團購服務還是專業測繪服務,這些基于天地圖的位置服務功能首要問題都是解決基于天地圖的實時定位跟蹤,GNSS實時定位跟蹤是位置服務系統的重要組成部分,是實現位置服務的基礎。本文設計的系統整合了GNSS、天地圖和GPRS技術,利用GPRS網絡的數據傳輸功能實現手持GNSS終端和監控中心之間的通信,實現了內業平臺用戶對GNSS終端的實時定位跟蹤;利用多線程技術實現多用戶并行處理,保證系統能實時響應用戶需求,測試表明,系統運行能夠準確的對多個流動客戶端進行位置監控,而且成本較低、結構簡單、系統覆蓋面廣、使用維護費用低且可靠性較高,可拓展并廣泛應用于天地圖位置服務領域、物流車輛監控以及船舶導航調度等位置服務的諸多領域。
[1] 何婷婷,羅曉曙,廖志賢,等.基于 GPS&GPRS車輛實時監控系統的設計[J].現代電子技術,2011,34(17):193-195.
[2] 譚巧林,譚建軍,劉俊.基于 GPS、GPRS和 GIS的遠程醫療監護系統的設計與實現[J].測繪科學,2011,36(6):216-218.
[3] 黃光玉,沈占鋒,駱劍承,等.車輛監控的信息管理系統設計及其關鍵技術分析[J].測繪科學,2007,32(1):100-102.
[4] 王繼周,李成名.嵌入式移動 GIS研究[J].測繪科學,2005,30(4):48-50.
[5] 董星宏,和朝霞,段鋒.“天地圖”在地震行業中的應用初探[J].地震研究,2011,34(4):552-557.
[6] 錢德俊,張哲,胡晨.NMEA0183協議解析[J].電子器件,2007,30(2):698-701.
[7] 任保剛,陳波,王仁禮.用多線程實現GPS接收機與PDA在 Windows CE下的串口通信[J].測繪與空間地理信息,2005,28(4):57-60.
[8] 劉旭光.基于AJAX與JAVASCRIPT技術在網頁中傳遞數據的實現[J].淮北煤炭師范學院學報:自然科學版,2010,31(1):51-55.