陳立干 吳紹斌 姜 丹 高 利
摘要:針對用戶遠程查詢以及信息共享的需求,設計開發了一種基于WebGIS的物流車輛監控系統。分析了物流車輛監控系統的工作原理和功能,采用模塊化的設計思路進行系統總體結構設計,詳細研究了其關鍵組成部分的設計與實現。利用JAVA開發語言和MapXtreme平臺開發了基于B/S結構的物流車輛監控系統。應用表明,該系統能夠對物流車輛進行實時監控,使用戶可以直接在Internet環境下完成物流車輛信息的查詢。
關鍵詞:車輛監控;WebGIS;B/S結構;MapXtreme
中圖分類號:TP274 文獻標識碼:A
Abstract: According to the demand of remote inquiries and information sharing, a logistics vehicle monitoring system was designed. Based on the analyse of the principle and function of vehicle monitoring system, the structure of the system was designed by means of modular programming method, and key modules of the system were discussed in detail. The logistics vehicle monitoring system with Browser/Server architecture was developed by using JAVA programming language and MapXtreme GIS platform. The application of the system indicates that the system can realize real-time monitoring of vehicles and users can get the vehicle information under the internet environment by using the system.
Key words: vehicle monitoring; WebGIS; B/S; MapXtreme
0引言
物流車輛監控系統綜合運用GPS、GIS以及無線通訊技術,能夠對物流車輛進行遠程實時監控。傳統的物流車輛監控系統普遍采用C/S模式,要求客戶端安裝專用軟件和電子地圖,導致系統擴展和維護困難,且難以保障電子地圖的安全性。本文作者設計開發了一種基于WebGIS的物流車輛監控系統。系統采用B/S模式,在Web上實現物流車輛信息的發布。客戶端無需安裝專用軟件和電子地圖,只需通過互聯網登錄系統,就可以對物流車輛信息進行實時查詢并發送指揮、調度等信息。該系統不僅具有訪問范圍廣、操作簡單以及客戶端成本低、免維護等優點,還可以最大限度地實現信息共享,有效地彌補了傳統物流車輛監控系統的不足。
1系統功能設計
物流車輛監控系統的功能應滿足各類用戶的需求。企業用戶則希望通過車輛監控系統,優化車輛的管理調度。貨物托運者要求利用車輛監控系統,掌握車輛承運貨物狀態。根據各類用戶的需求,基于WebGIS的物流車輛監控系統的主要功能包括:
(1)用戶信息管理:核對用戶名和密碼,提供權限認證,允許不同等級的用戶通過互聯網登陸系統。
(2)物流車輛狀態監控:對車輛的位置、速度等進行實時監控;提供車輛防劫、防盜、超速、越界等報警功能;用戶可對車輛進行遠程控制和指揮。
(3)位置信息查詢:實時接受、處理并保存車輛的位置信息,為用戶提供車輛位置信息的在線查詢功能,且支持模糊查詢。
(4)地圖數據管理:在Web上實現地圖加載、地圖查詢、圖層管理以及其它常用地圖操作,如地圖縮放、測距、鷹眼、點選擇、矩形選擇等。
(5)歷史軌跡回放:存儲車輛的運行軌跡,并可以根據用戶指定的回放速度進行歷史軌跡回放。
(6)車輛漫游:受控車輛可以在各個監控中心之間漫游。如果需要將車輛漫游到另一個中心,車主只需申請漫游即可;申請漫游時可以預設漫游時間,漫游時間一到,系統將自動撤銷漫游。
(7)系統維護:提供用戶信息、車輛信息、地圖信息等的備份和日志管理功能。
2系統總體結構設計
車輛監控系統主要包括車載終端和監控中心,兩者之間通過無線通訊方式傳遞信息。為了在Web上實現系統的功能,在監控中心內部安裝了WebGIS服務器和Web服務器,從而實現傳統物流車輛監控系統的功能擴展。
2.1系統模塊化結構設計
為了保證系統升級、維護的效率,采用模塊化的設計思路進行物流車輛監控系統的設計。系統主要由以下模塊組成。圖1為系統結構圖。

(1)定位模塊。作為系統定位模塊的車載終端主要用于接收GPS定位信息,并通過無線通訊方式向監控中心發送。同時接受并處理從監控中心傳來的指揮、調度等信息。
(2)通訊模塊。通訊模塊包括通訊服務器以及通訊接口。它的主要功能是實現監控中心與車載終端的雙向信息傳遞。
(3)存儲模塊。存儲模塊中含有數據庫服務器。用于創建數據庫,實現信息存儲以及顯示模塊和定位模塊之間的信息中轉功能。
(4)顯示模塊。顯示模塊包括Web服務器、WebGIS服務器。主要用于開發WebGIS,將定位信息顯示在電子地圖上,并以Web網頁的形式返回給用戶,是系統的重要組成部分。
2.2系統工作原理
物流車輛監控系統的數據流主要分為兩部分:監控中心與車載終端之間,監控中心與瀏覽器之間(如圖1所示)。車載終端到監控中心的數據流主要是受控車輛的定位信息。車載終端接收GPS衛星信號,計算出受控車輛的定位信息,通過無線通訊網絡將定位信息發往監控中心的通信服務器,通信服務器對定位數據進行解析后,將其存入后臺的數據庫服務器中。監控中心到車載終端的數據流是監控中心發給受控車輛的指揮、調度等信息。監控中心的通訊服務器負責將該信息經由無線通訊網絡發送給相應的受控車輛。
瀏覽器到監控中心的數據流是用戶的請求信息,這可能是普通的Web服務請求,也可能是Web地圖服務請求。用戶還可以通過瀏覽器向受控車輛發送指揮、調度等信息。該信息通過監控中心的通信服務器轉發往車載終端。監控中心到瀏覽器的數據流是服務器對用戶請求的響應信息,Web服務器將各種響應信息(如返回的地圖數據以及車輛的定位信息等)封裝在Web頁面中返回給用戶。
3系統關鍵技術及其實現
由于顯示定位信息和行駛軌跡的電子地圖通常是矢量格式的,普通的瀏覽器大都無法識別[1]。因此,需要利用WebGIS服務器開發出WebGIS,使返回到客戶端的電子地圖是柵格格式的圖像,才能夠在Web上實現車輛位置、軌跡等信息的發布。由此可見,WebGIS的開發是實現系統功能的關鍵。
3.1WebGIS開發語言及相關軟件的選擇
為了使基于WebGIS的物流車輛監控系統具有跨平臺性、動態性、安全性以及操作簡單等特點,以Java作為開發語言[2],選擇MapInfo公司的MapXtreme for Java軟件作為WebGIS服務器,它是100%的Java產品[3],該軟件提供的Java類可直接用來實現各種地圖操作,從而簡化了編程過程,縮短了開發周期。而且,MapXtreme for Java軟件集成了Web服務器——Tomcat。Tomcat是Servlet/JSP容器,具有配置方便、功能強大、開放性等特點,可用于處理HTML頁面、Servlet和JSP,以實現系統的開發要求。
3.2WebGIS的實現
WebGIS的實現過程就是Web應用程序的發布過程。Web應用程序的創建采用MVC設計模式。MVC強制性地使應用程序的輸入、處理和輸出分開,體現了軟件設計的模塊化思想。MVC具備三個核心部件:控制器、模型和視圖,分別對應于程序的輸入、處理和輸出。WebGIS的軟件結構如圖2所示。
(1)控制器(Controller)—輸入。控制器的作用是接受用戶的請求(如用戶信息修改、地圖操作以及對車輛的指揮調度命令等),將模型與視圖匹配在一起,共同完成用戶的請求。控制器是通過Sevlet程序實現的。Servlet程序在本系統中有兩個作用:一是識別WebGIS地圖集的各種狀態(例如,地圖中心位置、地圖視野等)。二是接受并轉發客戶請求。Servlet是一個特殊的Java類,在這個類中至少要實現doGet或者doPost函數[4],將接受到的用戶請求轉發給JavaBean。Servlet程序是運用MapXtreme for Java中提供的類編寫的。例如,使用語句myMap=new MapJ()創建Web地圖對象。

(2)模型(Model)—處理。模型實現與數據庫通信,存儲實際的業務邏輯和狀態的功能。即模型知道用什么規則來得到和更新狀態,并通知視圖改變。模型是通過JavaBean程序實現的。JavaBean是具體的和公共的且具有無參數的構造器的Java類。在本系統中,JavaBean程序用于對用戶的請求進行處理。例如,當用戶通過JSP程序顯示的網頁鏈接按鈕提交定位請求時,Servlet接受用戶的定位請求,并根據請求的類型調用相應的JavaBean,將定位車輛的相關信息(如定位時間)寫入定位數據庫。經過定位后臺處理,數據庫獲得定位結果。Servlet再次調用相應的JavaBean,從定位數據庫中提取定位結果,并顯示于電子地圖上。讀寫數據庫的操作由JavaBean調用JDBC驅動軟件提供的Java類實現。
(3)視圖(View)—輸出。視圖向用戶提供可視化的操作界面,主要包括在Web上顯示車輛位置、軌跡以及用戶進行地圖操作的結果,是通過JSP程序實現的。JSP是在普通瀏覽器可以識別的HTML語言中嵌入了Java代碼的一個腳本,其中Java代碼用來生成在Web上點擊的鏈接按鈕[5],發送用戶請求,并顯示點擊鏈接的結果。例如setZoom()、setCenter()、showHideOverview()、refreshOverviewMap()、CompositeRender(),分別用來生成設置視野、設置中心、顯示隱藏鷹眼、刷新鷹眼以及顯示軌跡按鈕。點擊某一按鈕后,控制器Servlet調用相應的JavaBean進行處理,用戶便可以通過JSP程序的運行在Web上看到處理后的結果。
4結論
本文作者開發的基于WebGIS的物流車輛監控系統以MapXtreme for Java作為WebGIS服務器,采用MVC模式,集成JSP技術、servlet技術、JavaBean技術,結合GPS、GIS技術實現車輛監控,并在網絡上實現車輛信息發布。實踐證明,它實現了預期的功能要求。對于開發者來說,這種方法開發周期相對較短、成本較低;對于系統本身來說,可以實現系統跨平臺性、安全性且易于維護;對于用戶來說,可以實現更廣泛的訪問范圍、更簡單的操作并得到更友好的、動態的頁面。
參考文獻:
[1] 許向鋒. 用Java實現面向對象的WebGIS[J]. 計算機應用研究,2001(10):98.
[2] 韓海洋,龔健雅,袁相儒. Internet環境下用Java/JDBC實現地理信息的互操作與分布式管理及處理[J]. 測繪學報,1999(2):48.
[3] Mapinfo公司. MapXtreme Java Edition 4.8開發者指南[EB/OL]. (2009-01-15)[2009-02-25]. http://reference.mapinfo.com/software/mapxtreme_java/english/4_8_1/dev_guide/MapXtremeJava48_DG_CHS.pdf.
[4] Bryan Basham, Kathy Sierra, Bert Bates. Head First(Servlet & JSP TM)[M]. 北京:中國電力出版社,2007:15-99.
[5] Patrick Niemeyer, Jonathan Knudsen. Learning Java[M]. 北京:中國電力出版社,2001:4-125.