基于GPS&GPRS车辆实时监控系统的设计
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()的工厂方法利用编码后的数据创建相应的多边形对象,传递给客户端的浏览器进行解析。若车辆超越了在地图上绘制的多边形区域,则会弹出一个对话框来警示管理人员。
- 基于GPRS网络的GPS图形导航仪(上)(01-08)
- 基于GPRS网络的GPS图形导航仪(下)(01-08)
- 无线车辆管理调度系统的设计与实现(07-07)
- 车辆定位监控系统移动终端的设计(10-02)
- 基于GPS 和GPRS 的多功能汽车记录仪的设计(11-02)
- GPRS_ZigBee技术的公交车智能监控系统(06-14)