宋明月,贾远信,王文华,张冬有
(哈尔滨师范大学)
基于ArcGIS Engine的车辆轨迹回放系统的实现
宋明月,贾远信,王文华,张冬有
(哈尔滨师范大学)
随着越来越多的交通事故的发生,加强交通监管将显得尤为重要.根据车辆的行车信息进行车辆轨迹回放将在事故后续处理中发挥重要作用.采用二次开发语言C#,利用ArcGIS Engine以及access数据库技术,开发出一个基于VS2005平台的功能模块,动态实现了不同的时间段的车辆轨迹回放.除了在交通监管中的应用,它在森林防火、运钞车监护、犯罪嫌疑车辆监控也有着很好的实用性.
ArcGIS Engine;车载GPS;轨迹回放
在第十一届全国人民代表大会第四次会议上提出的十二五规划中,表示将继续完善产业发展政策,争取把地理信息产业纳入国家战略性新兴产业规划.作为地理信息产业的重要支持,地理信息系统(GIS)就将作为一个重要的技术手段推动地理信息产业的蓬勃发展,更好更快的实现十二五规划.
地理信息系统是一种专门处理地理空间数据的计算机系统与技术.这种技术使地图这种独特的视觉化效果和地理分析功能集成在一起,为人们提供决策支持手段.地理信息系统(GIS)具有空间数据结构和有效的数据集成、独特的地理空间分析能力、快速的空间定位搜索和复杂的空间查询功能、强大的图形生成的可视化表达手段以及地理过程的烟花模拟和空间决策支持等功能[1].引用ESRI公司的一句宣传语“没有你做不到的,只有你想不到的”,地理信息系统也具有如此的魅力.
近些年来,在科学发展观理论的指导下,人们的生活水平和科学技术发展的程度达到了一个新的高度,越来越多的人们拥有了自己的汽车.但随之而来的交通事故的频发,为了处理好这实际问题,智能导航系统将会应用的越来越普遍.车辆轨迹回放系统作为智能导航重要的子系统,它能向人们展示被监督车辆在具体时间内的具体行程以及行车信息.因此,车辆轨迹回放系统在森林防火、运钞车监护、犯罪嫌疑车辆监控、交警巡查等有着非常重要的应用.对于这一系统的成功实现,有着很强的实用性,并能拓展地理信息系统的应用方向.
车辆轨迹回放功能可按照不同日期进行轨迹回放.它结合了 GPS(Global Positioning System)导航技术、GIS(Geographical Information System)电子地图及计算机技术,实现了从数据采集、数据存储、数据管理,最后到实际应用,是一种多平台的GIS技术,对日常生活有很大的帮助.
车辆轨迹回放是利用车载全球定位系统终端接收机采集该车辆的实时数据,在地理信息系统(GIS)平台上按多时段进行轨迹回放时效模拟.由于GPS终端接收机的相对独立性和数据的底存储量,其接收数据的可视性和可比较性需要借助于其他的可视化操作平台.为此,该系统采用ArcGIS Engine开发技术、以ArcGIS 9.3集成平台,实现模拟车辆轨迹回放.
该功能的开发是借助ArcGIS Engine技术基于VS2005平台的C#开发语言实现.主要应用了C#语言、Ttimer控件以及AE开发框架的IMap-Control、IElement、ISymbol、IGraphraContainer 接口.功能实现的框架图如图1所示.
图1 轨迹回放流程
地理信息系统的矢量数据和属性数据是一个统一的整体.例如,Arc/Info中的一个Feature-Class元素既可以获得该元素的图形属性信息(空间信息)也可以获得该元素的非图形属性字段(属性信息).但在车辆轨迹回放功能实现流程中,采用外部数据库Access Database存储车辆的坐标数据,车行驶状态的表为car表,表结构见表 1、表 2.
表1 车辆行驶信息表
表2 车辆信息表
GPS接收机接收的数据是车载GPS终端所有时段的数据.在轨迹回放过程中,显示所有被监督车辆和时段的轨迹和路线,并没有太大的实际意义.因此,在实现过程中设定被监督车辆、回放时间为可选择的,利用ArcGIS Engine的Map-Control控件和Timer控件段依次将车辆运动轨迹现实.
数据的读取通过VS2005中C#连接数据库的规范实现,并实现多表单之间的数据调用,通过两个表之间同名字段名从车辆行驶信息表中获取模拟车辆GPS定位点得经度、纬度和时间以及行车信息.
在车辆轨迹回放系统实现具体过程中,数据表操作主要是将GPS数据库中的空间数据导入到属性数据库中的车辆行驶信息表和读取该表中数据,并实现相应的增删改查.在本系统中,GPS数据通过在IMapControl中的底图上用添加点来模拟汽车行驶途经点,并将该点的坐标和时间信息存储到car表中:
其中,car为车辆行驶信息表,s、x、y、dt变量分别是模拟车辆的车牌号、x坐标、y坐标和采集数据时的时间.上诉代码实现将模拟车车辆信息存储到车辆行驶信息表中.
在进行轨迹回放时,需要设定回放的指定车辆、指定时间,并通过窗口实现操作.比如查询出车主为Zhangsan,且指定时间处于dt1和dt2之间的数据,代码如图2所示.
查询的窗口界面如下,
图2 查询窗口
comBox1中的车牌号的信息是在车辆轨迹回放之前,通过对车信息表读取车主车牌号数据添加生成.并进行存储,为车辆轨迹回放的实现做前提.至此,完成了轨迹回放之前的数据准备工作.
实现轨迹回放的流程如图3所示.
图3 轨迹回放流程图
其中,在GraphicContainer中实现画线的功能通过以下实现,
轨迹回放功能的实现具体环节是通过调用IGraphicContainer中添加线元素而成.线元素的生成是通过IPoint接口的FromPoint()方法和ToPoint(),所以就需定义IPoint接口的两个对象p1和p2,p1和 p2是从上述数据库中读取.在IGraphicContainer添加 ILineElement过程中,通过for循环和Timer控件控制循环添加生成.具体的功能代码如下.
先定义一个新的图形容器IGraphicsContainer pGraphicContainer.调用新建的timer1_Tick函数,在该函数内调用FOR循环,设置两个点,起始点 IPoint p1和终止点 IPoint p2.通过调用IPolyline ppl=new PolylineClass();把数据库中的有关于车辆位置的坐标信息赋值给这两个点,再通过调用ISimpleLineSymbol pSimpleLineSymbol=new SimpleLineSymbolClass();主要利用IElement接口实现轨迹回放功能的实现.利用局部刷新的方法,刷新图像等待进入下次循环.
如果数据库中没有存储的点信息则利用catch跳出循环轨迹并提示.此时回放结束在轨迹回放的过程中,可以通过调用Timer.Pause()和Timer.Start()这两个函数控制回放的暂停和继续,使回放实现的了可控制性.图4为实现的效果图.
图4 实现轨迹回放效果图
基于ArcGIS 9.3集成平台利用C#语言开发出的轨迹回放程序.经过多次虚拟验证.该程序可以在不同时间段内实现轨迹回放.它结合了GPS(Global Positioning System)导航技术、GIS(Geographical Information System)电子地图及计算机技术,实现了从数据采集、数据存储、数据管理,最后到实际应用,是一种跨平台的GIS技术,对日常生活有很大的帮助,并为GIS和GPS的多系统集成实现提供了实例帮助.
[1]苏坦.ArcGIS Engine应用开发教程[M].北京:中国(北京)培训中心,2006.
[2]董钧祥,宋丽.MAPGIS数据向Oracle Spatial空间数据的转换[J].长江科学院院报,2006,23(2).
[3]高海辉,贾克斌,贺桀.路径匹配及轨迹回放的算法研究与应用[J].计算机应用与软件,2010,27(4).
[4]彭明军,李宗华.基于Oracle Spatial的空间数据互操作[J].计算机工程与应用,2006(32).
[5]宁静,臧淑英.基于ArcObject技术的森林扑火队行程轨迹回放功能研发[J].测绘与空间地理信息,2005,28(3).
[6]孙淑华,齐德昱.基于Oracle Spatial的GIS数据集成的研究与应用[J].微计算机信息,2007,23(4).
Implementation of Vehicle Track Playback Based on ArcGIS Engine
Song Mingyue,Jia Yuanxin ,Wang Wenhua,Zhang Dongyou
(Harbin Normal University)
With the growing number of traffic accidents,it's essential to reinforce the traffic supervision.Realizing vehicle track playback on the basis of the driving information will play an important role in the further treatment of an accident.Based on VS2005 platform,the function module is developed by ArcGIS Engine and the access database technology,which could keep dynamic the playback of vehicle tracks at different periods of time.Besides the supervision of transport,it was also useful in the forest fire prevention,bank vehicle guardianship,criminal vehicle monitoring.
ArcGIS Engine;Car GPS;Track Playback
2011-03-11
(责任编辑:季春阳)