APP下载

基于ArcGIS Engine的高速公路车辆轨迹查询与回放系统的设计

2017-01-13顾倩文曾献辉沈振一

关键词:监控点控件轨迹

顾倩文,曾献辉,沈振一

(东华大学 a.信息科学与技术学院;b.数字化纺织服装技术教育部工程研究中心,上海201620)

基于ArcGIS Engine的高速公路车辆轨迹查询与回放系统的设计

顾倩文a,b,曾献辉a,b,沈振一a,b

(东华大学 a.信息科学与技术学院;b.数字化纺织服装技术教育部工程研究中心,上海201620)

针对高速公路全程监控系统中车辆流水数据的多源异构特点,提出了采用同步复制技术将各监控子系统的车辆流水数据汇总至监控中心,利用数据同步复制技术形成车辆完整轨迹数据库.采用C#开发语言,结合ArcGIS Engine技术,开发出基于VS 2012平台的车辆轨迹查询与回放系统,实现了实时查询车辆的行车路线,并在地图上动态回放各个时段的车辆运行轨迹.经实际项目测试验证了该系统在交通管理中有很好的实用性.

车辆; 多源异构; ArcGIS Engine; 同步复制; 轨迹回放

随着社会经济的高速发展和城市化水平的不断提高,机动车数量也迎来了飞速的增长.在社会公共交通管理中,因交通拥堵、交通事故频频发生,对机动车辆进行合理的监控管理已经成了极为重要的部分,高速公路作为一种现代化的公路运输通道,在交通管理中发挥着越来越重要的作用.

目前高速公路全程监控系统正在不断完善,高速公路的全程安装了数量巨大的视频监控设施,基本实现了对高速公路全线无盲点监控,建设了全程视频监控系统和辅助交通检测系统.随着全程监控各系统不断地上线投入运营,各高速公路公司的管理人员也逐步体验新监控系统带来的便捷服务.在全程监控系统中,可以通过获取各断面所经过车辆的车牌、时间、车型等车辆的流水数据,利用这些端口采集的数据进行深入的分析,规划整理出有效的车辆信息,实现对过往车辆行驶路径的全程检测,为高速公路的交通管理提供更加有效的手段.本文针对高速公路全程监控系统中的车辆流水数据,实现了将各监控子系统的车辆流水数据汇总至监控中心,利用数据融合技术形成车辆完整轨迹数据库,结合ArcGIS Engine技术,实现了实时查询车辆的行车路线,并在地图上动态回放各个时段的车辆运行轨迹.

1 系统技术框架

本文的车辆轨迹查询与回放系统由3部分组成,即数据层、技术服务层、应用层.数据层用来存放所需要的系统数据,包括监控中心数据库、地图数据库;技术服务层提供各种服务组件来访问数据层和响应系统界面所发送的请求;应用层则提供给管理人员数据查询并发送请求,实现电子地图的浏览、车辆轨迹的回放.其系统框架如图1所示.在VS 2012开发环境中,采用C#开发语言,通过Ado.net连接与访问数据库, 采用Geo database管理ArcGIS地图数据库,调用ArcGIS Engine提供的接口实现访问和操作电子地图[1].

图1 系统框架结构图Fig.1 Structure of system framework

在高速公路监控系统中,收费站、服务区以及其他众多断面节点基本实现了无盲点监控,各地的子系统卡口采集了所经车辆的车牌、时间、车型等信息.高速公路监控系统将各地采集的车辆流水数据解析后实时传输到监控中心服务器上,其监控网络结构如图2所示.利用数据融合技术形成车辆完整轨迹数据库,用户通过系统的界面窗口查询,结合ArcGIS技术就能精确地显示车辆行驶轨迹,从而实现对车辆位置和状态的查询.

图2 高速公路监控网络结构图Fig.2 Structure of expressway monitoring network

2 系统功能结构

车辆轨迹查询系统主要实现管理人员对车辆行驶轨迹的可视化查询管理,除了在正常的监控管理中起到监管作用并防止交通事故的发生,还能对法治车辆的监护、犯罪嫌疑车辆的监控[2-3]以及配合警务人员侦查案件起到很好的作用,该系统的功能从以下3方面进行详细阐述.

2.1 多源异构数据的同步复制

由于车辆的信息分散在各地的子系统中,一般高速公路的数据源分为3个类别,即收费站、主线卡口、服务区,其特点如下:

(1) 各地子系统所选用的数据库类型是多种多样的,例如存在的数据库管理系统有SQL Server 2000、SQL Server 2008、Mysql、Oracle等[4].

(2) 数据存放的方式也是不固定的,包括单一表、生成表、按日生成表等.

(3) 有些表结构可修改,例如增加sendok字段;有些表结构不能修改,比如按月生成表的情况,因为无法获得生成表的源代码.

针对车辆流水数据的多源异构特点,高速公路车辆数据采集模块需要对全线各个站点的子系统中的车辆流水数据实现实时采集,即将各个数据源的数据实时地同步复制到上级监控中心数据库中.由地方数据库将动态产生数据中的关键信息同步到监控中心数据库,其同步复制结构如图3所示.

图3 多源异构数据同步复制软件结构Fig.3 The software architecture of multi-source heterogeneous data replication

监控中心根据地方子系统,动态地按日或按月生成一张表,表名为“traffic_年月日”,traffic表的字段定义如表1所示.同时考虑到数据存放模式的多样性,需灵活地处理数据源,将来自不同数据库类型的数据进行分析处理,并以XML格式配置数据源,将各地的车辆流水数据融合后同步到监控中心的数据库服务器.

表1 traffic表的定义Table 1 The definition of traffic table

2.2 电子地图浏览

在C#开发环境下建立GIS(geographic information system)的基本应用框架,地图浏览模块利用ArcGIS Engine地图引擎实现图层的加载、关闭、移除,以及地图随机放大、缩小、平移、全屏实现、比例尺等基本功能[1,5].在VS的编译器中添加“ESRI MapControl”控件,ESRI MapControl 是ArcGIS Engine 的一个控件,也是电子地图主视图区的构成控件.在ArcGIS Engine基本应用框架中使用 MapControl 和 ToolbarControl 两个控件.MapControl控件主要负责从固定目录中加载地图的mxd文件、管理控件的数据层,并通过监听事件实现与地图的交互.通过调用MapControl控件中的AddLayer、 DeleteLayer、 MoveLayer方法来添加、删除、移动图层[5].修改MapControl控件的Extent 属性值来实现地图的缩放功能,对不同的矩形范围可以实现不同比例的缩放,地图的移动可以通过调用Pan方法来实现.

2.3 空间最短路径查询

在空间查询中着重介绍两点间最短路径查询,计算最短路径的算法有Dijkstra算法、Floyd 算法、Moore 算法等,但是在ArcGIS Engine 中,对象库已经将最短路径算法封装,在使用时只需调用PathFinder模块,即可实现最短路径分析.

PathFinder模块主要是由SolvePath 函数和一些辅助函数(包括OpenFeatureDatasetNetwork函数和PathPolyLine函数)等组成.SolvePath函数主要执行过程如下:程序在开始计算最短路径时,首先调用一个循环,该循环中有两个函数,即GetNearestEdge 和QueryIDs.GetNearestEdge主要是查找输入点的最近边线, QueryIDs是以GetNearestEdge 找到的点为基础,将这些查找到的点变成下一次搜索的起点,通过这两个函数在循环中交替进行计算,查询出最短路径的两点间的所有路径,并保存查询路径的所有节点[6].

查询所有路径的部分代码如下:

for (inti= 0;i< intCount;i++)

{

INetFlag ipNetFlag = new EdgeFlagClass() as INetFlag;

IPoint ipEdgePoint = m_ipPoints.get_Point(i);

//查找输入点的最近边线

m_ipPointToEID.GetNearestEdge(ipEdgePoint, out intEdgeID, out ipFoundEdgePoint, out dblEdgePercent);

ipNetElements.QueryIDs(intEdgeID, esriElementType.esriETEdge, out intEdgeUserClassID, out intEdgeUserID, out intEdgeUserSubID);

ipNetFlag.UserClassID = intEdgeUserClassID;

ipNetFlag.UserID = intEdgeUserID;

ipNetFlag.UserSubID = intEdgeUserSubID;

IEdgeFlag pTemp = (IEdgeFlag)(ipNetFlag as IEdgeFlag);

pEdgeFlagList[i] = pTemp;

}

在循环查询后,所查询得到的由各个节点组成的路径并不都是最短路径,因此要进行更深入的分析,通过调用ipNetSchema.WeightByName(WeightName)设置边的权重,可以将边关系中的任何字段作为权重,通过findpath得到边线和交汇点的集合,并根据权重来选出哪些节点组成的路径是最短路径.

2.4 ArcMap电子地图的展示

电子地图是本文系统的基础,GIS的图层是通过读取Geo database数据库中的数据来显示的.在车辆轨迹查询系统中,为了方便数据的管理,将性质类似的数据放在同一层,并将不同的图层叠加.在本文系统中,地图区域以某省的4个市级区域为主,将地图划分为不同的图层,例如,道路、行政区域、监控点(卡口采集点)等部分,以便于地图的展示和车辆数据的管理,展示出更直观的可视化效果.系统中地图以市级区域矢量图为主,添加图层形成后的展示如图4所示.

图4 市级区域的矢量地图Fig.4 Vector map of municipal area

本文系统要实现车辆轨迹的回放,需要获取所经过路段的监控点信息,通过发送车牌号信息的查询请求,调用GetMinitorPoints函数得到车辆所经过的监控点,调用IgraphicsContainer获取的线元素中包含了车辆经过的监控点的位置信息.遍历所有point名称取得point的信息,调用最佳路径查询算法PathFinder 模块,得到穿越point的线,将这些线合并,调用GetCrossLine函数将合并的线路集成一条线路,将线集合中线的Geometry存入几何集合中,在得出最佳路径后,调用PathPolyLine 函数将最佳路径显示在电子地图上.

3 系统实现

本文系统以VS 2012为开发工具,ArcGIS Engine为GIS的支撑平台,中心数据库采用SQL Server 2008.车辆轨迹查询系统主要从以下几个方面来实现:数据同步传输、车辆行驶数据查询、车辆轨迹回放.

3.1 数据同步传输

在本文系统中,监控中心实时获取各地的车辆流水数据,并将获取数据的时间记录保存在监控中心数据库中的track表(同步追踪表)中,track表的定义如表2所示.track表中详细地记录各地获取最新数据的时间点,包括最近一个同步开始时间、最近一次上传结束时间,通过设定时间间隔,保证数据同步的实时性,上传的时间间隔越短,实时性越好.本系统设置时间间隔为60 s,考虑到网络负载能力,采用动态缓存机制提高同步的实时性,减轻网络负荷,即将已同步数据的关键字段保存在缓存中,在同步时只需判断缓存中关键字段是否已存在.数据同步机制的效果如图5所示.在保证数据同步效率的基础上,须保证数据同步过程中没有丢失数据.

表2 同步追踪表的定义Table 2 The definition of synchronous tracking table

图5 数据同步机制的效果图Fig.5 The rendering of data synchronization mechanism

3.2 车辆行驶数据查询

在完成下级系统的数据同步复制到监控中心之后,在系统的车辆轨迹查询界面输入所需查询车辆的相关信息,向监控中心的数据库服务器发送查询请求,根据查询条件返回车牌号码、车辆的行驶时间、经过的高速路段、采集信息的监控点、车辆行驶的方向,其操作流程如图6所示.

图6 查询流程图Fig.6 Flow chart of the query

根据各地数据库的数据生成模式,在监控中心数据库中每天自动生成一张表,表名为“traffic_年月日”,例如“traffic_20150521”,各地数据库将当天的车辆流水数据解析后同步上传到监控中心数据库服务器.在系统查询界面上输入车牌号码,并选择车辆行驶日期,例如输入车牌号码“浙AA5E76”,车辆行驶日期“20150521”,其数据请求返回结果的界面显示如图7所示,其中的字段包括车牌号码、车辆经过时间、经过的高速路段、采集信息的监控点、车辆行驶的方向.ArcGIS Engine通过返回的监控点数据信息,调用点图层,绘制出车行驶轨迹.

图7 车辆行驶路线查询Fig.7 Vehicle route query

3.3 车辆轨迹回放

轨迹数据是对车辆空间和时间位置序列变化的采集,而车辆行驶轨迹实际上是车辆在一段时间内行走通过的数据所形成的一条曲线,曲线上的每个点都是道路图层上的监控点.在ArcMap中显示的车辆行驶轨迹就是这些监控点所连接成的一条曲线,而每个监控点的位置就是车辆所经过时刻数据采集卡口的车辆位置,将这条曲线描出显示在电子地图上就是车辆的行驶轨迹.输入车牌号码“浙AA5E76”,输入车辆的行驶日期“20150521”,如图7所示,点击查询按钮,在datagridview控件中显示查询返回的结果.通过读取datagridview中监控点的信息,在图层遍历出这些监控点,按照顺序将监控点两两之间查询出空间最短路径,并调用PathPolyLine 函数进行轨迹描绘,得到的曲线集就是车辆行驶的完整轨迹路线.在ArcMap图中,设置ESRI(environmental systems research institute)Arc GIS符号库里的符号来标志车辆行驶的起点和终点,可更方便直观地显示车辆行驶的路线,如图8所示.

图8 车牌号码“浙AA5E76”的轨迹效果图Fig.8 The rendering of trajectory of license number "zheAA5E76"

由图8可以详细地知道车辆行驶路段、行驶方向,同时结合实际的道路状况,在某些监控卡口的采集信息丢失从而导致车辆线路中断的情况下,仍旧能够描绘出车辆的行驶轨迹,保证了数据查询的可靠性、有效性,同时方便管理人员更有力地监控车辆的行踪.

4 结 语

本文运用ArcGIS Engine技术,在VS 2012平台上成功开发了车辆轨迹查询与回放系统,该系统有机地结合车辆监控采集系统,动态获取监控点的信息,通过绘制监控点的集合路线,实时监控追踪车辆的行驶路线及方向,为营运管理提供更加有效的管理手段.通过结合高速公路的监控系统的实际项目进行了测试,表明该系统实现方法简单、效率高,能满足用户在实际应用中对车辆监控的需求.

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

[2] 宋明月,贾远信,王文华,等.基于Arc GIS Engine 的车辆轨迹回放系统的实现[J]. 哈尔滨师范大学自然科学学报,2011,27(3):5558.

[3] 苏子林,韩晓玲.基于GIS/GPS/GSM 的车辆监控系统的设计与实现[J].计算机工程与应用, 2003,39(19):206226.

[4] 何超,彭慧,尚文利.利用ArcGIS Silverlight 实现的车辆监控技术[J].自动化仪表,2013,34(7):5457.

[5] 张磊.基于GIS和GPS的车辆实时监控系统的设计与实现[D].苏州:苏州大学计算机学院,2013.

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

Design of Vehicle Path Query and Playback System for Expressway Based on ArcGIS Engine

GUQian-wena,b,ZENGXian-huia,b,SHENZhen-yia,b

(a. College of Information Science and Technology; b. Engineering Research Center of Digitized Textile &Fashion Technology, Ministry of Education, Donghua University, Shanghai 201620, China)

According to the characteristics of the data synchronization under the multi-source heterogeneous environment in the whole monitoring system on the expressway. Data synchronous replication resolution was used to collect the expressway data and analyse the collected data of the whole monitoring system, and then the synchronous replication data was sent to the monitoring center.A complete vehicle trajectory database was formed by using the data fusion technology. The query and playback system of vehicle was developed by using C# and it was also combined with ArcGIS Engine development tools based on VS 2012 platform. The vehicle track data can be showed each time on the map dynamically by the system. Finally, the actual project test shows that the system has a good practicability in traffic management.

vehicle; multi-source heterogeneous;ArcGIS Engine; synchronous replication; track playback

16710444 (2016)060863-06

20150916

顾倩文(1991—),女,江苏盐城人,硕士研究生,研究方向为数据库应用技术、数据挖掘与分析. E-mail:425867297@qq.com 曾献辉(联系人),男,副教授,E-mail:xhzeng@gmail.dhu.edu.cn

TN 311

A

猜你喜欢

监控点控件轨迹
石化工业区环境空气污染监控点选取分析
基于.net的用户定义验证控件的应用分析
轨迹
轨迹
高速公路室外监控点一体化智能箱设计浅析
关于.net控件数组的探讨
轨迹
进化的轨迹(一)——进化,无尽的适应
嘉兴拟三年打造无缝隙监控天网
高职教学质量监控点的选择与应用