0 引言
GPS全球定位系统是美国在1994年建成,具有在海、陆、空进行全方位实时三维导航与定位能力的卫星导航与定位系统。英国产业分析机构预测在2008-2013年,定位产业的年复合成长率为21.2%,将会成为Google、微软、诺基亚等公司未来产品的关键功能。本文基于GPS全球定位系统以及Google Maps API设计了一套车辆调度管理系统。公司管理人员可以通过该管理系统平台对车辆进行实时监控、调度管理以及人员管理,从而对车队进行有效的监控,提高了人车安全系数,增加了企业利润收入,降低交通拥堵几率,为社会提供更高水平的服务。该系统与以GIS,Google earth为平台进行二次开发的系统相比,有着开发流程简便,可移植性强等优点。只要拥有一台装有Web浏览器能联网的电脑,用户就可以通过本系统对车辆进行实时监控。
1 系统的工作原理
本系统通过GPS进行车辆导航,即应用GPS定位技术获取车辆所在地的经度和纬度坐标、行驶车速、时间等相关信息。GPS接收模块默认为每秒输出一次定位数据,用户通过设置主控器使其每隔一定时间向服务器发送一次数据。ARM CortexTM-M3为高级的32位微处理器内核,其任务是负责读取GPS的定位信息,由GPRS模块通过移动通信GPRS网络传送到服务器中,服务器端程序将车辆所在的位置和行走的轨迹绘制在Google地图上。
服务器端主要分为前台实时监控模块和基于Web的后台监控管理模块。前台实时监控模块主要采用TCP/IP协议与车载终端进行通信,解析和自定义编码各种通信协议,管理和维护车载终端日常的运行情况。基于Web的后台监控管理模块主要采用PHP+Ora-tie,JavaScript及XML技术,采用自顶向下的思想构建关系数据库模型,结合Google Maps API提供的相当便捷的AJAX技术获取查询结果,这样做一方面减少了流量,另一方面使得网页实现了局部自动更新的功能,提高了用户体验速度。
2车辆实时监控系统的结构和功能设计
本系统可以实现车辆管理、用户管理、数据统计、定位监控、行驶区域限制、数据备份和数据恢复等功能。
车辆管理功能通过搜索设备名称和日期,可从数据库中查询当天车辆的详细信息,包括车牌号、车载电话号码、车辆种类、司机信息及汽车运行状态,从而达到对车辆的实时监控和管理的目的。
用户管理功能 不同级别的用户可以拥有不同的权限对车辆进行管理和操作,这些权限可以由管理员在网站后台进行相应的设置。
数据统计功能包括报警统计、超速行驶统计两个功能。报警统计将车辆每次报警的信息,包括报警时间、报警地点都记录在数据库当中。同样,超速行驶统计也将车辆每次超速行驶的信息都记录在数据库中(把车辆速度大于120 km/h的视为超速行驶),用户在输入查询日期时,就可以查询到当天的报警信息、超速信息的相关统计。
定位监控功能 车载终端固定间隔自动将定位数据回传,通过GLatLng()函数把车载终端定位至Google地图上,采用Google Maps API提供的Gmarker()地标函数把车载终端的定位信息显示在地图上,这样即可实现对车辆的实时定位,其所定位的信息包括经度、纬度、车辆信息和行驶状态等。
行驶区域限制功能 行驶区域限制需要预先设置车辆的行驶区域,当车辆超越行驶区域时,系统将以报警提示的方式提醒相应公司管理人员。
数据备份和恢复功能 一旦不慎丢失或损坏数据库里的信息,可以重新导入备份好的后缀名为.Sql的文件,数据即可恢复到原始状态。
3 服务器端关键技术的设计与实现
3.1 计算行车路程的方法
系统可以利用Google Maps API计算行车总路程。首先假设地球作为一个完美的球体,半径为常量R=6 378.137 km。计算球面两点间弧长的算法为半径*弧度,而弧度可以从两点间的经纬度算出。此时,可以利用Google Maps API提供的四个类方法推算出行车路程。它们分别为返回角度值纬度Glatlng.lat()函数、返回角度值经度Glatlng.lng()函数、返回弧度值纬度Glatlng.latRadians()函数和返回弧度值精度Glatlng.lngRadians()函数。
通过上述公式可以近似求出相邻两点间行车路程,遍历所有行车点,把相邻两点间的行车路程进行叠加,即可近似求出行车总路程。由于发送数据的时间间隔很短,所以通过这个算法得出的行车路程和车辆实际行驶的路程公里数基本一致。
3.2 轨迹回放的实现思想
系统通过调用数据库中经度和纬度坐标、行驶车速、时间等车辆相关信息,可以实现轨迹回放功能。虽然在设计过程中可以采用直接读取数据库数据的方法进行轨迹回放,但是考虑到其扩展性远远不如XML文档大,所以该系统采用了从XML文件中读取数据并通过绘制Gpolyline折线来回放行车路线。实现该功能必须要预先定义好XML文件结构,这里令polyline为root节点下的一个子节点,在其属性中规定相应的颜色、边线宽度等,Polyline节点的子节点为lat,lon,data,speed等,用于定义每个节点的经度、纬度、行车时间以及速度等。XML文档设计好后,使用PHP语言编写了一个服务器程序动态读取数据库数据和自动更新XML文件。编写一个HTML程序,利用JavaScript解析XML文档,解析整个XML文档就是使用GXmlHttp对象把需要处理的节点取出(创建GXm-lHttp对象非常简单,直接调用GXmlHttp.create()方法即可)。利用函数getElementsByTagName()获取polyline节点,通过函数Node.childNodes[k].node-Name()获取polyline节点的子节点(变量k表示poly-
line节点下子节点的总数),根据两点间确定一条直线的公理,循环读取数据并绘制行车轨迹。
3.3 行驶区域限制功能的实现
行驶区域限制功能的实现最重要的是系统要建立XML文档,在文档里还必须预先设置好车辆的行驶区域,把整个区域相应的经度和纬度信息存储在XML文档中,通过利用PHP语言编写相应的服务器程序从XML文件中读取数据并自动在地图上绘制Gpolygon多边形来表示规定的行驶区域范围。当地图上需要绘制的多边形区域很大时,无论是直接写JavaScript脚本还是从XML文档中读取数据,数据交换量都没有减少,这时,可以先利用PHP语言编写一个对数据进行压缩编码的程序,通过使用Google Maps API提供的fromEncodes()的工厂方法利用编码后的数据创建相应的多边形对象,传递给客户端的浏览器进行解析。若车辆超越了在地图上绘制的多边形区域,则会弹出一个对话框来警示管理人员。
4 实验结果与分析
通过在实验车上安装该系统的硬件平台,与系统的软件平台联合进行行车实验。实验的路线是从桂林市大学生公寓城开始,经过花艺馆,向左转至位于普陀路的广西师范大学西大门。图1即为车辆轨迹的回放图,从图中可以看出此路线与预先设定的实验路线一致。通过系统计算出来的路程距离为1.22 km,车速是45 km/h。而通过Google earth计算出来的路程约为1.2 km,它们之间的误差范围小于等于20 m。经过多次实验,结果表明该系统符合实际运用的要求。
5 结语
地球上任何一个位置都有相应的经度和纬度,可以利用技术在地图上显示。随着GPS全球定位技术的成熟,可以实现将GPS定位得到的经度、纬度、速度、方向、车辆状态等详细信息通过GSM/GPRS sim300模块传送到服务器中,利用服务器端实现对车辆的管理及调度;随着GPS全球定位技术的广泛使用以及GoogleMaps API的不断完善,可以对车辆实现更精确的定位及监控;随着3G技术的不断发展,未来完全可以通过手机实现对车辆的管理及调度,届时,该导航产品和管理系统不仅仅是应用在商业领域,还是人们娱乐、生活的必备工具。该车辆调度管理系统可以应用在物流车队、私家车、租赁公司、120急救车辆调度、公交车队、银行价款车等领域,具有较广泛的应用前景。