李功权,肖周林 (长江大学地球科学学院,湖北荆州434023)
随着我国社会经济和现代信息技术的不断发展,现有的交通运输管理与服务手段已不能适应交通运输业和城市管理的需求。虽然GPS的应用开始于军事领域,但随着近年来GPS技术的民用化,它逐渐成为一个全球性的工具,通过GPS提供的实时定位功能来实现车辆的实时定位,完全可以替代以前通过语音传送车辆位置信息的通信方式[1]。运用GPS的定位技术也可以在城市管理的许多单位得到应用,如交通、银行等,甚至可在商业车队运营公司使用,如出租车管理公司等[2~6]。但这种定位方法获得的仅仅是一个精确的地理坐标,无法与该坐标周围的地理环境联系起来进行分析和评估,而地理信息系统(GIS)是以地理空间数据为基础,采用地理模型分析方法,适时地提供多种空间的和动态的地理信息,为地理研究和地理决策服务。可见,整合GPS和GIS的车辆的定位系统将会在社会生活中发挥越来越重要的作用。为此,笔者整合GIS和GPS技术,并将其运用到车辆定位的实践中。
车辆的定位离不开电子地图的支持,因而电子地图的基本操作,如对地图进行放大、缩小、漫游、全幅显示、查询等操作需要作为最基本的功能提供给用户使用,用户可根据自己的需要来选择地图的显示比例和所需要观察的地图的范围。要对车辆进行定位,不仅能准确地知道移动目标当前所在的位置,而且能在电子地图上实时的观测到移动目标随着时间位置发生的变化,能对过去某一目标的移动位置进行回放。
车辆具体位置的获取主要来自安装在各个车辆上的GPS提供的数据,这些数据定时更新到车辆管理数据库中,系统从数据库中抽取车辆的位置等信息用来实现定位。定位操作和地图显示以及结果显示应在同一界面方便操作和观察。另外,还需要增加定位操作的控制功能 (包括开始、暂停、继续、停止等)。
图1 系统组成结构图
根据需求分析,车辆的定位系统可以看成是基于电子地图的一个实际应用,可由2部分组成(见图1):一部分是电子地图的基本操作,包括地图数据读取、地图显示、地图操作等,这些操作可以采用目前流行的GIS平台来实现,作为一个通用图层来管理;另外一部分是车辆定位,由GPS数据读取、动态定位、位置成图、轨迹回放等模块组成,以GPS数据为专题图层,车辆定位操作以该图层为基础来进行分析。
GPS的数据输出一般以语句 ($GPGGA)开始,这是一帧GPS定位的主要数据。其标准格式为:$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12) *hh(CR)(LF)。如:
$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,*65。其对应的含义为:
(1)定位UTC时间:05∶09∶01;
(2)纬度 (格式ddmm.mmmm:即dd度,mm.mmmm分);
(3)N/S(北纬或南纬):北纬39度31.4449分;
(4)经度 (格式dddmm.mmmm:即ddd度,mm.mmmm分);
(5)E/W(东经或西经):东经116度43.5123分;
(6)质量因子 (0=没有定位,1=实时GPS,2=差分GPS):1=实时GPS;
(7)可使用的卫星数 (0~8):可使用的卫星数=07;
(8)水平精度因子 (1.0~99.9);水平精度因子=1.4;
(9)天线高程 (海平面,-9999.9~99999.9,单位:m);天线高程=76.2m);
(10)大地椭球面相对海平面的高度 (-999.9~9999.9,单位:m):-7.0m;
(11)差分GPS数据年龄,实时GPS时无:无;
(12)差分基准站号 (0000~1023),实时GPS时无:无;(CR)(LF)回车,换行。通过使用ifstream类来将数据读取到一个Vector类型的变量中,来保存当前GPS的实时信息。
通过读取GPS数据填充车辆信息数据库中相关的数据表之后,就可以使用一个定时器从车辆信息数据库中提取目标车辆位置等信息,并在电子地图上绘制出来从而产生动态定位效果。如果需要进行车辆轨迹回放,实现方法与动态定位类似,只是需要给定回放的起始和终止时间即可。ArcGIS Engine中的Tracking Analyst的扩展模块,是基于时间序列的可视化和分析工具,可以实现带有时间属性的事物和现象变化的历史回放,以及实时数据的动态显示。可用于回放车辆、卫星等的动态位移;离散发生的犯罪、雷击事件;气象台站的风向监测信息;以及社会现象的变化迁移等。可见,采用ArcGIS Engine提供的T racking Analyst组件完全可以实现车辆的定位功能。
在对比了国内外常用的GIS组件平台后,鉴于ArcGIS Engine组件可以提供该系统开发的所有功能,因而选用ArcGIS Engine组件作为开发平台,采用VC++作为开发语言,Access作为车辆管理数据库来构建车辆定位系统。其中电子地图采用其可视化组件MapControl和ToolbarControl。由于Map-Control模块能直接读取.mxd文档,可见只需要在ArcMap中编辑好研究区的电子地图并保存为该格式后,就可以直接显示成电子地图,而 ToolbarControl有一个控件命令选择集,可以提供电子地图操作的基本功能。
为了测试该系统,采用模拟GPS的实时信息的方式进行,利用Window s编程的消息发送机制来实现模拟GPS发送数据这个功能。首先自定义一个消息用来进行模拟GPS信号的发送,然后创建一个接收消息的进程。在定位操作的视图中当点击开始模拟的按钮时候,通过调用SendMessage()函数向车辆信息管理模块发送GPS数据,以达到动态更新车辆位置的效果。
在地理信息系统中,数据管理的基本思想是将地球表层信息按其特性的不同进行分层,每个图层存储特征相同或相似的地理对象集,如河流、湖泊、道路、土地利用和建筑物等构成不同的图层,然后分层管理和存储。该电子地图也按照该模式进行编辑,可分为道路、行政区划、水系和主要企事业单位等图层。每个图层对应一个Shape文件。ESRI公司的Shape文件是一种二进制文件,能够同时存储空间图形数据和属性数据。一个Shape文件包括3个文件:一个主文件 (*.shp)、一个索引文件 (*.shx)和一个dBASE(*.dbf)表。主文件是一个直接存取变量记录长度文件,其中每个记录描述一个有它自己的vertices列表的shape。在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移,dBASE表包含了实体的属性数据。图形数据和属性数据通过索引号建立一一对应的关系。
在整理好各个图层的数据源之后,在ArcMap中进行编辑和整饰。当用ArcMap编辑完一幅地图后,它会把当前地图的页面设置,图层的符号显示等配置信息存储为mxd格式的文件。该系统首先将当前目录下的mxd格式的地图数据读取,作为车辆定位的电子底图,通过调用MapControl控件中的LoadMxFile方法直接读取.mxd文档,这时就可以看到在ArcMap中编辑好的地图 (见图2)。此时也可以进行地图放大、缩小、漫游等操作。
车辆定位信息可以看作是车辆随着时间序列变化而发生的位置变化。实时定位的实现方法是通过ADO访问车辆信息数据库,实时提取车辆位置信息;通过Tracking Analyst组件生成Track图层,然后加到电子地图中,如图3所示。加粗的黑线条就是某个车辆的运行轨迹。该功能既可以实施跟踪车辆的位置,也可以回放车辆走过的路径。
图2 加载电子地图后的系统界面
图3 定位演示结果全图
以ArcGIS Engine作为开发组件,实现了车辆实时信息的管理。实际应用测试说明,在GPS中整合GIS,不仅可以更好地发挥两者的优势,而且也可以扩大两者在实际社会生活中的应用范围。通过试用,该系统不仅可以满足日常车辆管理的需要,还能借助GIS的空间分析功能优化车辆行驶路线,具有较高的实用价值。
[1]陈俊勇.GPS运行现状和GPS定位 [J].测绘通报,1993,(1):6~8.
[2]张学庆.采用GPS定位的车辆运动状态监控方法的研究[J].无线电通信技术,1994,20(6):65~75.
[3]李新功,邱方,詹舒波.GPS、GIS在车辆实时监控中的应用 [J].遥感技术与应用,1995,10(2):33~37.
[4]侯仰杰.车辆监控调度系统中心监控软件研究与开发[D].北京:清华大学,2004.
[5]牛红军.自动车辆定位系统的研究 [D].西安:西安理工大学,2000.
[6]杨天军,杨晓光.GPS/GIS车辆实时监控调度系统研究 [J].城市交通,2004,2(1):17~20.