admin 管理员组

文章数量: 1086019


2024年3月22日发(作者:容器分为)

2010年第2期 

文章编号:1006-2475(2010)02 ̄191-06 

计算机与现代化 

JISUAN-兀YU XIANDAIHUA 第174期 

基于Google Maps 

的车辆监控管理系统设计与实现 

跃,何小卫,欧阳铁磊 

(浙江师范大学数理与信息工程学院,浙江金华321004) 

摘要:车辆实时监控是车队现代化管理的重要手段,能有效提高车队的生产力。本文基于Google Maps API和Ajax技术 

设计车辆监控平台和数据通信服务,涉及GPS数据采集服务、协议解码、实时车辆定位、轨迹回放、围栏设置等功能的设 

计和实现方法,为车辆监控平台的设计提供参考。 

关键词:车辆监控;GPS数据通信;Google地图开放接口;Web地理信息系统 

中图分类号:TP393 文献标识码:A doi:10.3969/j.issn.1006-2475.2010.02.053 

Design and Implementation of Google Maps API-based Vehicle Monitoring System 

MA Yue,HE Xiao—wei,OUYANG Tie—lei 

(Mathematics,Physics and Information Engineering College of Zhejiang Normal University,Jinhua 321004,China) 

Abstract:Vehicle real time monitor,an importnta approach of modem autos group management,Call effectively improve the pro- 

ductive forces of trucking company.A platform of vehicle monitoring and a data communication service,which is based on Gcosh 

Maps API and AJAX,is designed in this paper,including he desigtn and implement of the service of GPS information collection, 

communication protocol decoding,real time vehicle location,Ⅱace playing,fence setting and etc.The work provides a useful ref- 

erence for the design of vehicle monitoring platform. 

Key words:vehicle monitoring;GPS data communication;Google Maps API;Web GIS 

0 引 言 

随着我国社会经济的快速发展,单位和家庭汽车 

单纯对车辆进行实时监控,没有结合企业自身的业 

务,不能最大限度地发挥系统的作用。本文所依赖的 

科技厅重点项目结合传统GPS车载系统的特点以及 

的数量急剧上升,公路建设、道路运输等各项交通事 

业正跨越式地向前发展,传统的交通行业管理和服务 

企业自身业务,设计并实现基于GPRS无线通信的车 

辆监控系统。 

手段已经无法满足现代交通的需要。各级交通部门 

和运输单位积极倡导利用先进的通信、控制、信息等 

技术建立信息化、实时化,能够满足业务需要的智能 

交通系统。车辆监控系统作为智能交通系统的一个 

重要组成组分,在当前具有重要的现实意义。将GPS 

本系统除完成车载终端的跟踪外,还完成GPS 

车载系统的管理和交互等功能,在不增加通信成本的 

基础上,方便用户进一步构建基于特定行业的高端业 

务应用。为达到这个目标,本系统采用自定义通信协 

议,有关该协议的详细内容请参见文献[1]。 

典型的基于GPRS通信的GPS车载应用系统架 

构,包括车载终端、数据服务中心、监控管理平台和无 

线通信四个部分 ]。车载终端收集并传送GPS信息 

或传送其他指令和信息,数据服务中心接收并存储车 

载终端传送过来的信息,GPRS无线通信为车载终端 

卫星定位技术应用于企事业单位,通过监控系统对车 

辆进行实时监控和交互,帮助企事业单位加强车辆管 

理,提高单位车辆的运营效率¨。,¨J,加强单位的车辆 

安全,全面提升单位车队的生产力。 

传统的基于GPRS的GPS车载系统主要功能是 

收稿日期:2009-07-01 

基金项目:浙江省科技厅科技计划资助项目(2007C21027) 

作者简介:马跃(1984.),男,安徽砀山人,浙江师范大学数理与信息工程学院硕士研究生,研究方向:嵌人式系统,GPS应用; 

何小卫(1968一),男,浙江金华人,副教授,硕士生导师,研究方向:软件工程,嵌入式系统,智能计算;欧阳铁磊(1983-),男,硕 

士研究生,研究方向:Web服务自动发现,GPS应用。 

192 计算机与现代化 2010年第2期 

与通信服务中心建立网络链接,监控管理平台为用户 

提供监控管理车载终端的服务,数据服务中心为监控 

管理平台提供数据采集服务。这四个部分相互独立, 

而业务需求又把这四个部分紧密联系在一起。本文讨 

论的主要内容包括数据中心以及监控管理平台两个部 

分,车载终端和无线通信部分请参考文献[1]。 

三种通信任务状态的相互转换如图2所示。 

连 

1 车辆监控管理系统总体架构 

车辆监控管理系统由车载终端、通信链路、中心 

服务器、监控终端(浏览器)与Google Maps服务器五 

个部分组成,如图1所示。 

图1车辆管理系统架构 

车辆终端完成GPS定位信息的采集,信息或指令 

的发送和接收 ;GPRS通讯链路为信息的交互建立链 

路L9 ;中心服务器建立并维护与车载终端的连接,完成 

监控终端与车载终端信息或指令的交互,存储采集的 

GPS数据等;监控终端(浏览器)通过与中心服务器和 

Google Maps服务器的交互完成对车辆的监控,Googl ̄ 

Maps服务器完成对监控界面的可视化显示。 

(1)车载终端的通信任务设计。 

车载终端包括GPS信息采集模块、人机交互模 

块、GPRS通信模块、数据转换服务模块、短信收发模 

块、报警模块等,并由主控计算机运行的总控程序统 

调度运行。 

车载终端开机运行时,主控程序首先把控制权交 

给GPRS通信模块,与具有静态IP地址的中心服务 

器通过GPRS建立TCP连接,随后向中心服务器发送 

注册指令,中心服务器处理该注册指令,确认车载终 

端身份。随后车载终端就可以与中心进行各种指令 

信息的通信。终端GPS模块接收的卫星定位数据, 

包括经纬度、速度、方向等,由终端GPRS通信模块发 

送给中心服务器并将其写人数据库。在移动目标需 

要与伙伴进行通信时,可通过车载终端发送到中心服 

务器,中心服务器将信息存人数据库,若伙伴在线则 

由中心发送给目标终端,否则待目标终端上线后再发 

送给它。车载终端的GPS采集、通信及其它功能这 

里不多做介绍,可参考文献[i]。终端GPRS通信的 

图2牟载终端通信任务转换图 

(2)监控中心服务器。 

监控中心服务器主要包括中心数据库、数据通信 

服务和监控管理平台三个部分。中心数据库存放 

GPS数据及其它的数据;数据通信服务基于C/S模 

式[4],它的主要功能是维护车载终端的连接,解析并 

执行终端发送的协议指令,下达中心指令等,具体设 

计见第3节;监控管理平台是基于B/S模式的应用程 

序[4],为用户提供一个基于地图的监控管理平台,它 

为用户管理监控单位车辆提供了平台,包括车辆后台 

管理和车辆监控系统两个部分,车辆监控系统的主要 

功能包括电子地图服务、车辆实时监控跟踪、车辆历 

史轨迹回放、车辆围栏服务、报警处理模块等,具体设 

计见第4节。 

(3)Google Maps服务器。 

Google Maps服务器作为本系统的GIS服务器, 

提供监控用户需要的电子地图,为用户的监控提供方 

便。利用Google Maps API对从服务器获得的地理数 

据地理解码,定位车辆,并向Google Maps服务器请求 

地图服务,Google Maps服务器接收到请求后,响应带 

有目标的电子地图填充用户浏览器。 

2数据通信服务的设计 

该模块负责与车载终端通过TCP/IP通信,维护 

车载终端的运行状态,解析通信协议和编码,下达指 

令各种通信,采用自定义通信协议…。采用基于TCP 

通信协议的连接,主要考虑到下面几个因素: 

(1)节省发送流量。如果采用基于UDP无连接 

的连接,车载终端发送给服务器的每条信息都必须带 

有该车载终端的标识符。假设采用车载终端的1 8位 

SIM卡号作为标识符,并且车载终端每lO秒向服务 

器发送一条GPS信息,那么一天24小时的流量大约 

2010年第2期 马跃等:基于Google Maps API的车辆监控管理系统设计与实现 193 

是151.9Kb;而采用基于TCP的连接,通信链路建立 

之后会保持一个虚拟的连接,除非一方主动断开或者 

时刻车载进人信号薄弱地区,通信链路也可能意外断 

开,此时车载终端没有向中心服务器发送下线指令, 

通信链路意外断开;车载终端建立连接后只需发送一 

次车辆标识符,服务器能够对应通信链路和车载 

终端。 

(2)有利于终端状态的维护。TCP是面向连接 

车载终端在同组其它车辆仍然显示为在线状态,与实 

际情况不符。为了预防这种情况的发生,在链接管理 

中增加链接探测模块,发现通信链路意外断开的情况 

并作出及时的处理。诊断链路状态的方法是发送心 

跳包,针对本系统的特点,车载终端每隔数秒或者数 

十秒钟就必须向服务器发送GPS信息包,如果服务 

的,可靠的通信协议,车载终端与服务器建立基于 

TCP的通信链路后会保持一个虚拟的连接,服务器通 

过定时检测通信链路的状态判断车载终端的状态 器很长时间没有收到某一终端的数据包,而车载终端 

(在线/离线)。 

(3)可靠地传输。TCP比UDP具备更完善的可 

靠性与控制机制,能够确保数据的接受,防止丢包。 

同时采用自定义协议格式有助于业务的扩展与集成。 

通信服务模块主要包括链接管理和业务管理。 

链接管理负责车辆终端运行状态的维护,保证准确、 

实时地反映车辆的运行状态;业务管理负责处理车辆 

终端与服务器的通信,根据自定义的通信协议,执行 

相应的动作,业务管理依赖于链接管理的有效性:准 

确性和实时性。 

2.1链路管理 

图3链路探测程序 

由于链路管理的特殊性和重要性,区别于其它业 

务指令,它是其它业务指令执行和监控终端用户管理 

的基础。车载监控管理系统能够及时响应车载终端 

的业务需求,能够实时准确地满足监控终端的业务要 

求,依赖于准确检测车载终端的运行状态。在理想的 

情况下车辆上线或下线是图3中的处理流程,在某些 

保持了GPS信息包的按时发送,那么可以认为车载 

终端已经处于离线状态或意外断开。 

本系统提供上述两种方式来检测通讯链路的状 

况,可由用户自行配置,如图3所示。服务器启动,链 

路探测模块自动启动,检测所有已连接链路的状态。 

根据用户的配置,自行选择检测链路的方式;当终端 

状态稳定时,该终端的设置或者其它指令根据协议编 

码并发送;如果终端断开连接,则向所有同组车辆终 

端发送此终端下线信息。接着遍历下一终端,重复上 

述过程,直至遍历所有在线终端。通过这种方式,监 

控终端和车载终端能够准确、实时的判断同车队车辆 

的在线状态,有助于车队业务的开展。 

2.2业务处理模块 

链路管理模块主要负责车辆终端的上线下线探 

测和管理,除此之外每一车辆终端的上线下线还需要 

通知同组的其它在线终端,车辆终端能够及时了解同 

车队其他车辆的在线情况,有利于加强同组车队终端 

之间的联系;另外还有其它的业务指令通信。以上业 

务指令的服务程序流程如图4所示。 

服务器启动时自动启动一个异步服务器监听端 

口,当有新的连接时自动跳转到异步监听处理程序。 

异步监听处理程序为连接建立一个终端服务线程,并 

检测链接探测模块是否启动,若没有则启动链接探测 

模块,并继续监听端口。 

为每一个在线终端启动一个服务线程,可以快速 

接收并处理终端发送来的各种指令。服务模块解码 

并处理指令,或者编码并发送指令。需要注意的是监 

控终端的发送机制决定了每次数据接收可能不止一 

个指令,这里首先分析本次通信的指令数目,然后逐 

条分析并执行。 

若接收到注册指令,首先提取终端标识符,确认 

终端分组,改变终端运行状态,若有同组车辆在线,则 

完成下面两个动作:①向所有同车队车辆发送该终端 

上线信息;②向该上线终端发送所有在线同车队车辆 

信息;若为下线指令,则需要向所有同组车辆发送车 

194 计算机与现代化 2010年第2期 

图4业务管理 

载终端离线信息。经过上面的处理,每个终端都能准 

确地掌握同车队其他车辆终端的状态,有助于车辆之 

间的联系。 

新[3],Google Maps API是Google公司提供的免费供第 

三方使用的应用开发接口。Google Maps API使用图像 

的动态属性来从服务器上获取所需的信息。它把地图 

若为其它业务指令,则根据自定义通信协议指令 

做相应的处理,包括数据库操作和通信转发等。以 

GPS信息为例,GPS信息指令是车载终端与服务器中 

心最常用的通信内容,每隔数秒就需要通信一次,数 

据通信服务器收到GPS信息指令,分析GPS信息的 

格式是否正确,如正确则把信息存人数据库。GPS信 

息的数据字段包含例如经纬度信息、发送信息时间、 

速度、方向等;如果某些字段格式不正确,则服务器补 

充合适的值代替。例如,GPS时间格式不对,则填人 

服务器当前时间替代。以上措施可以增加系统的容 

错性和健壮性。 

的视图分拆成很多小图像,这些小图像之间是相邻的, 

从而实现了一个大图像的效果。与其它商用Web GIS 

开发引擎相比,Google Maps API具有以下优点:① 

Googie Maps API是一个免费的第三方地图引擎,地图 

数据由Google Maps免费提供,并且还会不断地对地图 

数据进行更新,不需要自己维护地图数据,降低了系统 

的成本,同时节省了地图服务器的存储空间,减轻了服 

务器的负担n¨。②实现方式相对简单 ¨。 ̄Goosle 

Maps提供了多种地图显示方式,如:电子地图、卫星地 

图等,甚至还可以自定义地图显示方式。 

(2)AJax技术。 

Ajax全称为“Asynchronous JavaScript and XML” 

3基于Web的车辆监控的设计 

基于web的车辆监控主要包括监控平台和管理 

平台。管理平台是对车队基本信息的管理,包括驾驶 

(异步JavaScript和XML),它不是一项新的技术,而 

是多种现有技术的集合 ,Ajax由HTML/XHTML、 

CSS、DOM、XML、XSLT、XMLHrlTp、JavaScfipt等技术 

员基本信息、车辆基本信息、用车记录、警报记录、通 

信记录等;监控平台以电子地图为显示方式对车辆进 

行监控,功能包括车辆位置实时跟踪、车辆历史轨迹 

回放、车辆围栏设置、报警信息处理等。以下重点对 

基于地图的车辆监控设计进行讨论。 

3.1地图开发引擎的选择和Ajax技术 

(1)地图开发引擎的选择。 

构成。不过只有三种是必需的:HTML/XHTML(提供 

内容表示)、JavaScfipt(编写Ajax引擎)、DOM(为 

JavaScript提供内容表示的操控对象),Ajax主要用于 

创建交互式网页应用。在传统的Web应用程序模型 

Google Maps是Google公司提供的地图服务,完 

全基于Aja.x技术实现,全新的用户体验让人耳目一 

中,浏览器本身负责初始化向服务器的请求以及处理 

服务器的响应;而Ajax模型则不同,它提供了一种称 

为中间层(Ajax引擎)来处理这种通信 J。这个过程 

中只是把相应的信息提交给服务器,或者从服务器获 

取需要的信息,不影响页面中其他无关元素,因此其传 

送的信息比传统Web应用程序模型少得多;同时这所 

2010年第2期 马跃等:基于Google Maps API的车辆监控管理系统设计与实现 195 

有的一切动作都是对用户透明的,用户可以继续其它 

求某一车辆终端某段时间的历史数据,监控中心接受 

操作,不必等待服务器的响应,提高了用户的体验。 

3.2车辆实时监控 

到请求查询m车辆终端的历史数据,并响应浏览器的 

请求;浏览器利用JavaScfipt脚本分析响应数据,并调 

用Google Maps API请求车辆终端的定位地图;Google 

Maps服务器响应此请求,返回地图;如此监控终端可 

以看到带有监控终端位置信息和其它信息(如经纬 

度、车牌号码、通信时间等)。每隔固定时间重复上 

述步骤,直至遍历完响应历史数据。历史轨迹回放的 

用户在电子地图上实时查看车辆的位置。本系统 

选用Google Maps作为地图开发引擎,Google Maps作 

为第三方地图开发引擎,下面以车辆实时监控为例,讨 

论利用第三方地图引擎的通信流程与规则,C,oogle 

maps实现车辆实时监控的通信流程如图5所示。 

图5 Google Maps通信流程 

用户希望查询某些车辆的当前位置,并在电子 

地图上显示出来,用户浏览器向监控中心发出请求, 

要求显示包含GIS信息的网页,请求中包括希望查询 

的车辆编号;位于监控中心的Web服务器接收到用 

户的该请求后,按照指定车辆编号取m被请求车辆的 

实时经纬度信息通过互联网返回给浏览器;请求网页 

中包含的JavaScfipt在浏览器端运行,该JavaScfipt代 

码调用Google Maps API,向位于Google公司内部的 

GIS服务器请求Google Maps卫星地图,请求中包括 

响应数据;Google的服务器在接收到该请求后,将被 

查询车辆的经纬度信息和Google Maps卫星影像地图 

进行匹配,在卫星地图上定位出车辆的当前位置,然 

后将匹配好的卫星地图返回给浏览器,这样用户就可 

以在浏览器上看到自己需求的车辆信息在Google 

Maps卫星地图上显示m来,带有定位信息的Google 

Maps卫星地图填补了网页的占位符部分。每隔固定 

时间重复上述步骤,就能够得到监控终端的实时位置。 

位于监控中心的Web服务器和位于遥远的 

Google公司内部的GIS服务器协同工作,共同完成了 

被查询车辆在Google Maps地图上的定位和显示的过 

程。GIS服务器不存在于本监控系统的监控中心内 

部,而是位于Google公司内部,即在自己的系统中并 

不具备地图引擎,而是利用了第三方即Google提供 

的地图引擎来完成有关的GIS操作。本地服务器只 

承担提供实时数据的任务,减轻了服务器的负担。 

3.3历史轨迹回放 

历史轨迹回放能够重现车辆在某一段时间的轨 

迹,通信流程与实时监控类似。浏览器向监控中心请 

流程如图6所示。 

图6历史轨迹回放流程 

这里,监控中心的响应数据并不是监控终端某段 

时间的所有数据。在请求的某段时间,监控终端可能 

停留在某一位置或者在一个较小的范围活动,此时监 

控终端就没有必要把这段的数据全部显示出来,只需 

把这些点当做一个位置显示出来即可,避免了历史轨 

迹回放时,车辆终端停留在电子地图某一位置过长时 

间,给用户“死机”的假象,提高了用户的体验。 

3.4车辆围栏设置 

围栏设置的主要功能是设置车载终端的运行范 

围。当车载终端越过该范围时,将向监控用户提示监 

控终端驶出其设置范围,发出警报。 

图7车辆围栏设置 

考虑到实际需求以及设计难度,本系统的围栏设 

置采用矩形形式。设置过程如下:(1)选择要设置的 

车辆;(2)设置范围(矩形);(3)把矩形的右上角和 

196 升算机与现代化 2010年第2期 

左下角的经纬度利用Ajax技术发送给服务器保存起 

来(如图7所示)。 

围栏设置的难点在于第(2)步。在显示地图的 

容器中,添加另外一个图层,并设置显示在地图图层 

参考文献: 

[1]何小卫,王爱华,马跃.基于GPRS的GPS车载终端通信 

技术研究[J].计算机应用,2008,28(11):2952-2954. 

[2]Niekolas.C Zakas,Jeremy Mc Peak,Joe Faweett.Ajax高级 

程序设计(第2版)[M].徐锋,吴兰陟,等译.北京:人 

的上方。这个图层的大小和位置都与地图容器相同。 

利用Google Maps API提供的事件绑定函数,为该图 

层添加鼠标事件绑定。在鼠标按键按下时,触发 

mousedown事件,记录此时鼠标的位置,作为围栏的 

起点。在围栏起点不为空时,记录鼠标移动的位置, 

作为围栏的另一个端点,并且在起点和端点画一个矩 

民邮电出版社,2008. 

[3] 江宽,龚小鹏,等.coogle API开发详解[M].北京:电子 

T业¨;版社,2008. 

[4]袁陶颖,王忠,刘丹.基于MapXtreme的WebGPS系统的 

设计与实现[J].计算机应用研究,2003(5):109—110. 

[5]李明,肖秋霞,曹晓东.基于SVG的WebGIS的研究[J]. 

形。当鼠标按键松开时,触发mouseup事件,询问是 

电脑开发与应用,2005,l8(1):52—53. 

否确定设置该围栏,如果确定把围栏的经纬度信息以 

[6]涂振发,喻光明,张纯洁.基于Ajax和MapX的WebGIS 

及设置的车辆标识发送给服务器,由服务器保存。然 

体系及其实现[J].华中师范大学学报(自然科学版), 

后把围栏的起点设置为空,这样,鼠标再移动时,就不 

2008(3):136—139. 

会在起点和鼠标位置之间形成一个矩形。 

[7] 翟战强,蔡少华.基于GPRS/GPS/GIS的车辆导航与监 

控系统[J].测绘通报,20o4(2):34-37. 

在网页中画矩形主要有两种方法。一种是设置 

[8]陈黎夫.ASP.NET Ajax程序设计(第1卷:服务器端) 

Layer层,设置其边框样式及颜色。另外一种是采用 

[M].北京:人民邮电Ⅲ版社,2007. 

Svg 和vml的方法。这两种方法各有优点。Layer 

[93 Zhang PengChao,Zhong KeShl,Xu Meng.Design and im— 

层方法通用,在各种浏览器版本中都支持,画矩形比 

plementatlon of vehicle monitoring system bases嘶GPRS 

较方便,但其它图形则比较麻烦。Svg/vml方法受浏 

[C]//IEEE Conference Proceedings fo the Fourth Intema- 

览器的制约,Intemet Explorer支持vml,在lntemet 

tional Conference on Machine aIing and Cybernetics. 

Explorer中使用Svg,需要安装插件,而Firefox仅支持 

Guangzhou,2005:3574-2578. 

vml/Svg;Svg/vml很容易实现复杂图形的构建。因此 

[1O]王缓缓,李虎,张友纯.基于GPS的车辆管理系统的难 

具体采用哪种方法,根据具体情况实施。 

点及解决方案[J].计算机应用,2003,23(12):292-294. 

[11]王晓飞.车辆监控系统中Web GIS子系统的研究[D]. 

4 结束语 

南京:南京理工大学,2007. 

[12]王勃.北京市公路Web GIS系统设计与实现[D].大连: 

本文基于Google Maps API和Ajax技术设计并 

大连理工大学,2006. 

实现了车辆监控平台和数据通信服务,包括GPS数 

[13]明日科技.Visual c#开发技术大全[M].北京:人民邮电 

据通信、协议解码、车辆实时定位、轨迹回放、围栏设 

出版社,2007. 

置等功能的设计,下一步的工作主要在于扩展系统的 

[14]王缓缓,李虎.基于GPS的车辆管理系统的应用研究 

业务和设计Google Map中的道路匹配算法。 

[J].计算机与现代化,2003(12):82—84. 

(上接第190页) 

[9] 张军.基于.NET的报表生成系统设计[D].西安:西北 

[3]赵会群,等.基于组件的软件可靠性模型[J].小型微型 

工业大学硕士学位论文,2004. 

计算机系统,2002(8):950-954. 

[1O]袁航,王成耀.基于COM的通用数据库访问组件的设计 

[4]曹建福,等.基于构件的软件开发模型及其实现[J].小 

与实现[J].计算机工程与设计,2004,25(1):105—106. 

型微型计算机系统,2002(6):739342. [11]何玉云.软件重用技术在电子商务中应用[J].微机发 

[5]Kathafine Whitehead.基于组件开发[M].王海鹏,沈华 

展,2003,13(2):81.82. 

峰,译.北京:人民邮电fIl版社,2003. 

[12]陈文智,谢诚,石教英.基于构件框架及模型驱动的操作 

[6]脚唐伟,施永香,义巨峰.基于.NET的通用查询组件的 

系统内核[J].浙江大学学报,2005,39(9):1348-1352. 

开发[J].计算机工程与设计,2006,27(14):2708-2710. 

[13]马晓星,余萍,陶先乎,等.一种面向服务的动态协同架 

[73 董树霞, 永锋,邵增珍.基于软构件的软件开发框架研 

构及其支撑平台[J].计算机学报,2005,28(4): 

究[J].计算机应用研究,2005,22(6):33-35. 

467-477. 

[8]谢规良,陈晓丽,孙树栋.基于组件的库存信息管理系统 

[14]孙吕爱,金茂忠,刘超.软件体系结构研究综述[J].软件 

[J].计算机工程,2003,29(15):15.16. 

学报,2003,13(7):1228-1237. 


本文标签: 终端 车辆 监控 车载