APP下载

基于ArcGIS的客车车队管理系统的开发

2013-09-10尚文利周晓锋

自动化仪表 2013年6期
关键词:车队轨迹管理系统

梅 晶 宋 宏 尚文利 周晓锋

(中国科学院沈阳自动化研究所1,辽宁 沈阳 110016;中国科学院研究生院2,北京 100039)

0 引言

车队管理系统是指一个以车辆为基础的后台应用系统,它整合车辆数据记录、卫星定位和数据通信等功能,可为运营商提供简单、有效的车辆及驾驶员管理方法,为乘客或客户提供实时的车辆运送信息,并可为管理机构提供车辆安全的监督管理信息[1]。目前,现实生活中车辆违规使用、车辆被堵、车辆遭抢劫、公车私用、车辆应急调度不及时等事件时有发生,而大多数企事业单位车队主要靠人工管理,统计资料不完整,管理漏洞比较多。因此,有必要采用现代高科技手段实现对车辆的跟踪监控及调度[2-3]。

目前,车队管理系统与车辆监控系统的研究大多将 GPS、GPRS、GIS 三者相结合[4-7]。其基本原理是先利用安装在车辆上的车载终端来获取车辆的位置和状态信息;然后通过无线网络通信技术实现数据从移动车辆到监控中心的传输;最后,在监控中心的车辆监控GIS系统中,以可视化的方式动态显示车辆的位置及状态信息[3]。目前比较主流的开发车辆信息管理系统的方法通常是选择ArcGIS Engine在VB开发环境中进行 C/S 模式的开发[3,8]。

1 总体结构

本文中介绍的车队管理系统可以同时分屏动态显示多辆车的运行情况。在开发本系统时,本文选择ArcGIS在VS2010开发环境中进行B/S架构的开发,因为与C/S模式相比,B/S模式更易于集中管理和维护,有更好的易用性和跨平台性[9]。然后调用ArcGIS中的 ArcSde、ArcgisServer、ADF 以及 Silverlight API,以模型-视图 -控制器(model-view-controller,MVC)设计模式来实现车队管理调度系统的开发。

客车车队管理系统架构如图1所示。由图1可以看出,整个系统分为表现层、服务层、业务逻辑层、数据访问层和网关,而左侧的浏览器、IIS宿主、Windows通信接口(Windows communication foundation,WCF)、数据读写服务、Oracle、数据接收则分别为各层的表现形式。具体来说,表现层指的是客户端浏览器所呈现的系统用户交互界面,系统管理人员界面使用WPF(Windows presentation foundation)技术开发,远程用户界面使用微软Silverlight技术开发。服务层则以IIS为宿主,通过平台消息服务总线来进行服务注册和服务调度。业务逻辑层是指以Windows服务为宿主实现逻辑业务的WCF服务。数据访问层则是指以Oracle为载体的数据读写服务。网关负责将接收到的GPS数据和CAN总线数据通过数据透传服务传输到数据库中。

图1 客车车队管理系统架构Fig.1 Architecture of the fleet management system for passenger car

在整个系统中,WCF服务器通过 IIS宿主于Windows Server 2008操作系统。系统采用Web Service技术和面向服务架构(service oriented architecture,SOA)的理念进行设计,所有应用程序通过访问WCF服务器来间接访问数据库中的业务数据,从而提高企业内部重要数据的完整性和安全性。系统包括车辆定位、地图附加功能、状态监控、日常维护、远程诊断、车辆信息管理、报表管理等服务,并通过这些服务的相互合作实现整体的系统应用。

在具体实施中,采用ASP.NET编程框架生成功能强大的Web应用程序,并同时采用ADO.NET全新的数据访问方式以及B/S模式。在数据管理方面,GPS数据库使用Oracle 10g数据库管理系统进行管理,而ArcGIS地图数据库则通过ArcSDE把地图数据存放到Oracle中。

2 系统功能及系统实现

2.1 系统功能

客车车队管理系统主要包括地图显示及标注、车辆定位、车辆状态显示、历史轨迹查询与回放、实时监控、报表管理6个功能模块。

①地图显示及标注。地图显示包括地图放大、缩小、全屏显示、地图鹰眼以及分层显示。而地图标注是指用户可在地图上的任意位置对任意感兴趣的点进行增加标注、修改原有标注内容和删除已存在的标注的相关操作。

②车辆定位。通过用特定符号将被监控车辆的地理位置在地图上显示出来。系统支持一些鼠标对车辆图标的操作,如右键菜单更换图标样式、显示车辆状态信息等。同时,支持全屏和分屏监控功能,全屏时一个屏幕只监控一辆车;分屏时支持多通道分屏监控,可以同时动态显示多辆车的运行情况。

③车辆状态显示。把鼠标放在所选定的车辆上,就能自动显示出车辆的速度、行驶方向、车辆的经纬度、行驶里程、当前时间等基本信息。

④历史轨迹查询与回放。通过历史轨迹页面提供的查询条件,选择需要生成的轨迹;当历史轨迹成功生成后,系统还可以对生成的轨迹进行操作,如暂停、播放、停止、快进等。系统支持车辆在1个月内的轨迹查询。

⑤实时监控及预警。系统先读取最新的GPS数据,然后动态显示车辆运行状态,车辆符号随着车辆运行方向动态变化。同时系统对车速和车辆行驶范围进行报警。

⑥报表管理。报表系统可以根据输入条件对车辆的分类、性质、行驶里程、作业量等进行查询统计,还可以灵活定义报表样式和报表统计项并输出打印。

2.2 系统实现

由于整个系统采用基于Web的B/S结构设计,故其管理系统的操作界面均为浏览器应用界面。系统应用服务器为基于Windows XP/7系统的IIS6.0服务器(framework3.5),采用 Oracle 10g数据库和 C#语言进行二次开发,通过ArcGIS实现电子地图的显示功能。

2.2.1 车辆定位

车辆定位是指先从数据库取数据,然后用定时器读数据,最后用图片标注的方式显示位置。即首先选择ArcGIS提供的一个地图作为底图,在上面添加图层;接下来创建点要素,这些点包括位置信息和属性信息,把这些点要素加入到相应的图层中;最后把这些图层覆盖在底图地图上便可实现车辆定位的功能。车辆的搜索直接调用ArcGIS提供的相应API即可。

2.2.2 车辆实时动态显示及预警

根据所选择的车辆号,在数据库中得到此车所走的路线,按一定的距离产生缓冲区,从而得到多边形。若获得的坐标点在多边形内,则说明车辆没有越界;反之则越界,系统即产生报警信息,同时将越界信息保存到数据库中。

2.2.3 车辆历史轨迹查询与回放

利用添加的Web Service项,在其中添加连接数据库,并获得所需数据的函数代码。添加服务引用,再在MainPage.xaml.cs中调用 Web Service 项中的函数。利用DispatcherTimer设置每隔2 s就往GraphicsLayer添加一个点,从而形成历史轨迹。

3 关键技术

3.1 数据透传服务

为了实时可靠地获得车辆定位功能中需要的车辆定位和状态等信息,本文采用了数据透传服务。首先系统将从终端接收到的GPS数据和CAN总线数据传输到数据透传服务模块,经过数据处理后,一部分数据直接传送到数据库,另一部分数据通过透传实时数据模块进行封装,然后以对象流的方式传递到上层服务模块,最后以可视化的方式实时显示。数据透传架构图如图2所示。通过数据透传方式,最大限度地保证了车辆实时状态信息的时效性、可靠性和准确性。

图2 数据透传架构图Fig.2 Framework of data transparent transmission

3.2 历史轨迹查询与回放

历史轨迹查询和历史轨迹播放功能的具体实现方法,分别在类 VehicleTrack.aspx、ForwardTrack、StopTrack、PlayTrack和PauseTrack中被调用。在生成的车辆历史轨迹上,采用合理有效的算法,使得用户可查询24 h内的车辆历史轨迹,其响应时间保证在1 s以内甚至更短。历史轨迹的播放采用多线程处理的方式,提高了运算速度和性能。算法主要是通过从大量的车辆历史数据中选择用于生成历史轨迹数据的特征数据来减少生成轨迹的计算空间。算法描述如下。

①把t0时刻的起始位置作为轨迹开始的位置添加到轨迹中,更新轨迹中当前最新的行驶方向d(已存)为t0时刻的车辆行驶方向。

②按时间顺序读取下一条GPS数据,如果该GPS位置为终点,执行步骤⑤,并生成轨迹结束算法,否则执行步骤③。

③判断该点是否为道路路口或者折线道路的拐角点。如果是,则执行步骤⑤,否则执行步骤④。

④比较GPS数据中记录的车辆行驶方向d(当前)与d(已存)的差值,若|d(当前)-d(已存)|>δ(其中δ为阈值),则执行步骤⑤,否则执行步骤①。

⑤把GPS数据代表的位置加入到轨迹之中,更新轨迹中当前最新的行驶方向d(已存)为该GPS数据中记录的车辆行驶方向d(当前)。

3.3 分屏监控

在车辆监控过程中,用户可以在每个屏幕窗口,通过右键菜单列表来选择全屏的退出、分屏模式的选择和当前屏幕所监控的车辆,也可以通过每个屏幕顶部的条件查询选中监控车辆。在分屏监控时,通过用户选择显示多个屏幕,每个屏幕都是单独的事件。每个分屏上都可以选定要查询的车辆同时进行监控。分屏监控主要是靠类CustomPanel通过Silverlight来编写实现的,当实际使用时,用户只需要输入分屏的个数,就可以实时显示多个屏幕。

4 结束语

本文主要研究了基于ArcGIS的客车车队管理系统,利用C#语言和ArcGIS控件开发了车队管理应用平台。系统功能主要有实现车队的实时动态定位、监控、调度,从而实现可视化的车辆监控调度和控制;此外还具有地图标注、车辆编号、分屏显示等特色。该系统改变了以往过多人工干预的车辆指挥调度模式,为人们提供了一种全新的车辆管理手段,有效提高了交通部门及企事业单位的车队监控调度管理能力。

[1] Fagerberg J,Ryberg T.Fleet management and wireless M2M[M].Sweden:Berg Insight AB,2010.

[2]雷雨海,王宇.车队管理信息系统软件的研究与开发[J].交通科技与经济,2004(3):53-54.

[3]吴建华.基于ArcGIS Engine的车辆监控GIS系统开发[J].地球信息科学学报,2011(1):88-94.

[4]程一沛.基于GPS/GIS/GPRS的车辆监控管理系统的设计与开发[D].西安:西安科技大学,2009.

[5]贺丽红.基于GIS/GPS车辆监控子系统的设计与实现[D].北京:北京交通大学,2009.

[6]王俊,胡平,施涛,等.基于GIS/GPS/GPRS的车辆监控系统的实现[J].微计算机信息,2006(9):290 -292.

[7]张书毕,刘作才.基于GIS的GPS车辆监控系统设计与实现[J].测绘通报,2002(6):31-33.

[8]李春立,曾致远,徐学军.基于ArcGIS Engine的车辆监控系统[J].计算机工程,2006,32(24):257 -259.

[9]罗凌.基于.NET组件的车辆调度系统[J].计算机工程,2008,34(11):275-277.

猜你喜欢

车队轨迹管理系统
基于James的院内邮件管理系统的实现
全新充电专利技术实现车队充电
轨迹
轨迹
基于LED联动显示的违停管理系统
停车场寻车管理系统
雷尼亚诺车队Legnano
轨迹
TCR China R2:黄楚涵揽双冠 捷凯车队夺最佳车队奖
进化的轨迹(一)——进化,无尽的适应