APP下载

基于ArcGis Server的高速公路数据校验系统设计与研究

2016-03-24吴景春刘志杰喻国军朱洪岩

吴景春 刘志杰 喻国军 朱洪岩

(贵州师范大学贵州省信息与计算科学重点实验室, 贵阳 550001)



基于ArcGis Server的高速公路数据校验系统设计与研究

吴景春刘志杰喻国军朱洪岩

(贵州师范大学贵州省信息与计算科学重点实验室, 贵阳 550001)

摘要:介绍了ArcGis Server的体系结构和开发方法,系统实现了地图图层的控制与显示、路径和费额查询与校对、历史行进道路的回放、空间数据的查询、最短路径和最小收费额显示等关键模块。为优化路况、提高公路通行率、减少人为干预、降低人工成本提供了技术支撑,并以贵州省高速公路为实际应用背景展示了整个系统的功能。

关键词:ArcGis Server; 高速公路数据校验; 路径和费额查询与校对; 车辆管理与查询

在过去快速发展的20 a里,我国高速公路的客运系统已逐渐完善,高速公路已经成为各省市(州)间的重要交通枢纽。但是由于客运企业数量增长过快和管理经验短板的存在,常导致高速公路数据管理过程中人工录入错误及运维成本增加等问题。高速公路数据校验系统是优化路况、提高公路通行率、降低人为干预和人工成本的重要手段,可为高速公路客运发展提供决策依据。目前该系统已在国内一些省份的高速公路管理局投入使用,为用户与各个高速公路段的所属业主提供方便与便利,提高了社会智能与信息化的建设步伐。本次研究以开发具有实用和推广意义的数据校验系统为例,阐述基于ArcGis和C#的开发平台,如何更可靠并有效地实现系统[1]。

1基于.net和ArcGis Server的开发原理

Visual studio .net 是微软公司推出的一款以.net Framework类库为基础的功能完善的开发工具,方便用户开发各种应用程序。其中,包含基本的图形用户界面程序和命令行程序,也包含基于asp .net所提供的web 窗体和XML Web services[2-3]。该类库可用于不同的开发语言,所有这些语言都可以访问 .net Framework,它们还可以彼此交互。此外其丰富的代码库和组件技术,减少了开发人员的工作量,便于进行系统部署、设计和后期维护。

基于ArcGis Server 的高速公路系统所用到的面向对象开发语言是C#,asp.net。在ArcGis Server中发布的资源是通过桌面产品进行创建和准备的。当在Gis服务器上将一个Gis资源发布为服务时,可以指定该服务包含的功能[4-6]。功能即客户使用该服务的方法,例如地图服务最基本的功能就是绘制地图。其中,关系型数据库使用的是Oracle,通过ArcGis的空间数据引擎ArcSDE把Oracle中的表数据转换成空间数据来管理与共享,与通用数据不同的是空间数据借助于图形图像来表现。用户在浏览器端发送请求,服务器端接收请求,并根据相应的算法程序进行处理分析,然后将可视化结果返回给浏览器端,使得用户可以方便地看到该功能所对应的效果。

2系统分析与设计

以高速公路车辆行驶时的状态为研究对象,并依托ArcGis Server 为综合平台,构建一个运行在标准的.net Web服务器中的基于BS架构的高速公路数据校验系统,能提高高速公路数据管理的效率。

2.1系统基本架构

按照现有的经典设计模式和高内聚低耦合原则,将高速公路系统分为表示层、业务逻辑层和数据层3层。其中表示层位于3层体系结构中的最上层,由一些asp页面、ArcGis Server 组件等组成,负责直接与用户交互,但不实现具体功能,仅将用户的请求传送给业务逻辑层或者接收业务逻辑层处理,并将结果数据以可视化的方式呈现给用户。业务逻辑层包含Web 服务器和Gis服务器2部分。其中:IIS是Web服务器,也是Gis服务器发布地图和服务的容器,还能实现非空间数据的逻辑运算;ArcGis Server是Gis服务器,实现地图服务的发布与管理,还包含与地图交互等相关操作,实现空间数据的逻辑运算。数据层包括地图信息等空间数据和一些基本的属性数据,如车辆和道路信息等。另外还可通过Esri ArcSde空间数据引擎对空间数据进行高性能的管理和高效率的操作。该系统结构清晰,层次分明,有利于各层之间逻辑的复用,减少层与层之间的依赖性。在软件后期进行维护时,可以有效地降低开发人员的维护时间与成本,提高了软件的可扩展性。其基本架构如图1 所示。

图1 高速公路系统基本架构

2.2系统功能设计

此高速公路系统包含的主要设计功能有地图的显示及基本操作、查询分析、数据校对、数据编辑、空间分析等,能提供多角度、多层次的信息采集,为用户及高速公路管理者提供决策及管理依据。

(1)地图操作:用户可以自由选择全景地图和分层地图,并带有导航和鹰眼功能,还可以对地图进行放缩、平移等操作,能够看到地图内部更具体的地物信息。

(2)查询分析:包含地图信息查询、车辆信息查询、模糊查询等,可用鼠标点选地图上的地物,以得到更精确的信息。

(3)数据校对(业主有此功能):包含任意2个收费站之间的最短路径或最小费额路径,罗列该路径所经过的各个路段名称、路段长度、基础费率、业主名称、路段类型等。由于高速公路业主下辖各自的高速路段,所以收取费用时需按照一定的标准进行拆分,并对数据进行校对,以防出现差错。

(4)数据编辑(管理员有此功能):管理员可以对系统数据进行修改,包含对地图数据的修改,增加删除地图图层,增加修改地物信息等。

(5)空间分析:空间分析是地理信息系统的关键功能。系统实现了历史行进轨迹查询、路径分析(最短路径和最小费额路径)与显示、服务设施查询、里程测量等功能。

3高速公路系统中的关键技术

3.1电子地图显示

在ArcGis系统开发过程中,电子地图显示功能是实现其他功能的基础。在ArcGis Server中的地图服务是作为资源提供给Gis服务器的。要使用Esri 公司提供的控件,必须在需要显示地图的页面顶部添加注册信息,然后便可以在该引用页面内使用控件。在aspx页面中使用,然后在该Map上添加地图资源,这样地图就会按照要求进行显示。地图信息为标签表明在页面中添加了Map组件,是一个地图容器。在绑定一个或多个MapResourceManage控件后,可以存放各种不同的地图,管理页面中地图控件的显示内容。通过ArcMap加载地图的各个图层,生成mxd文件,并在使用ArcGis Server 成功发布地图之后,利用MapResourceManager 控件里的 ResourceItems 属性,来选择所需要的发布后的地图。

3.2电子地图基本操作

为了能够更加方便、精确地找到所需要的地图信息,需对地图进行一系列操作,包括对地图进行放大、缩小、漫游、测距、鹰眼、图层控制等。ArcGis Server提供了大量控件,开发者只要引用这些控件,并在此基础上进行适当修改,便可实现相应的功能。以地图缩小为例:

。代码是在页面中添加一个工具栏控件,在该标签内添加标签表示在工具栏上添加一个按钮,实现缩小地图的功能。其中:ServerActionAssembly 参数描述该功能具体属于WebControls 控件集合;ServerActionClass参数描述该功能属于该控件下的具体Tools.MapZoomIn类,负责对客户端请求进行响应,调用相应的API改变当前地图的状态,然后生成图片返回到客户端;ClientAction 参数指定了用户能够在页面上的操作,比如DragRectangle即指在地图上拉框。这些功能基于Ajax框架技术。当用户在地图上操作时,只将该地图局部刷新即可。

3.3空间分析

空间分析功能是整个系统的核心功能,最短路径和最小费额路径是2个高速公路收费站之间可以通行的最短路径和花费最小的路径。采用迪杰斯特拉(Dijkstra)算法进行全路径搜索,得到每个收费站到其他收费站的最短距离和最小费额路径,并用一系列代号数字进行存储。用户任意选择2个收费站,系统便会更新地图,在地图上显现出2个站点之间的最短路径或最小费额,供用户自行选择。下面的代码实现了最小费额的查询。其中,BPoint 对应初始站点坐标,EPoint对应终点坐标。实验步骤如下:

步骤1:通过函数传参获取ToolEventArgs对象,其包含了客户端Map控件和当前客户端工具的信息。

步骤2:用ToolEventArgs的Control 属性获取地图对象,然后得到用户在地图上画的矩形框。

adfMap =ToolEventArgs.Control;

mapPointEventArgs =ToolEventArgs;

Envelope adfPoint = mapPointEventArgs.Map Extent;

Envelope pEEnv = new Envelope(adfPoint.XMax - 500, adfPoint.YMax - 500,adfPoint.XMax + 500, adfPoint.YMax + 500);

pGeometry = pEEnv as Geometry。

步骤3:将矩形框对象、地图对象、地图资源对象、图层对象和每个站点对应坐标对象作为参数传入QueryName函数,得到用户所选站点对应的坐标。

String BorePoint = QueryName(pGeometry, adfMap, "MapResourceItem0", "SDE.node1", "NODE_CODE")。

步骤4:用户选择初始站点和终点站点后,调用SelectFeature函数获取最小费额。

上述代码中指定LessFreeTool实现IMapServerToolAction接口,是工具类所必须的。在IMapServerToolAction.ServerAction 方法中通过参数args得到用户在地图上拖动矩形的屏幕坐标范围。由于Web ADF 没有提供矩形从屏幕坐标转换为地图坐标的方法,因此上述代码利用矩形对角的2个点分别转换到地图坐标,然后利用Envelope类的构造函数构造一个地图坐标的矩形对象,最后调用QueryName方法实现查询。

步骤5:在SelectFeature方法中,从最小费用表中提取数据,执行sql语句,将所查询结果存储在数据集DS中,代码如下:

string sql = string.Format("select path from t_shortest_new where node_b_code='{0}' and node_e_code='{1}' and auto_type=1", oMap.Page.Session["BPoint"], oMap.Page.Session["EPoint"]); System.Data.DataSet ds = DbHelperOra.Query(sql)。

在该系统中每个站点在Oracle数据库中都是用8位数字代号表示,所经过的路径也是以一系列数字作为表现方式,然后通过每8位数字进行截取解析得到相应的结果。

步骤6:把用户查询结果在地图上进行绘制:

geom = (Esri.ArcGis.ADF.Web.Geometry.Geometry)dt.Rows[ii][myGeometryIndex];

myGraphicsElement = new Esri.ArcGis.ADF.Web.Display.Graphics.GraphicElement(geom, System.Drawing.Color.Yellow);

myGraphicsElement.Symbol.Transparency = 50.0。

该功能可视化效果见图2,虚线代表站点间的最小费额路径,实线代表最短距离的路径;具体计算结果见表1。

图2 团泽站到平正站的最短路径和最小费额优化路径图

类型路径长度∕m收费金额∕元最短路径84146.4652.06最小收费额86961.2551.25

3.4数据校验

目前各省、地区大部分高速公路都是利用多元化的投资进行建设,收费权也归属不同的业主。如何使不同路段的业主建立信任、做到公平的拆分是联网收费顺利推进的关键。由于贵州省地区特色及高速公路建设情况,一方面,各个高速公路段的业主很多,另一方面每天在高速公路上通行的车辆非常多,这为业主拆分每天的收费额带来了巨大的不便。稍有不慎就会出现差错,损失业主利益。为此该系统提供了数据校验功能,罗列该路径所经过的各个路段名称,路段长度,基础费率,业主名称,路段类型等,供业主核对信息。

3.5车辆轨迹回放

系统自动将每天行驶的车辆信息存入数据库的相应表中,存储时间为半年。要进行车辆轨迹的回放,用户可根据车牌号和回放时间到数据库中查询;然后根据数据库的历史记录,调用车辆显示模块,在地图上绘制行驶轨迹。

4系统的测试优化及部署

一个开发程序通常都需要不断地优化与完善。该系统借助vs提供的调试平台进行优化与测试。常见问题有语法错误,语义错误和运行时错误。运行时错误是指在程序运行时出错,比如检查数组越界,函数库版本不一致等。出错原因需要具体问题具体分析。该系统的开发先采取单元测试进行模块化分析,然后达到语句全覆盖,再进行集成测试与系统测试以确保开发的程序满足设计需求。

在测试完整无误后,将程序部署到大型服务器上,安装.net程序所需的运行环境和.net Framework、ArcGis Server等。在.net平台下将程序部署到IIS web服务器上,这样用户就可在任意一台联网的电脑上使用浏览器端访问该程序,提高软件的易用性。

5结语

基于ArcGis Server、ArcSDE、vs.net、asp.net、Oracle等构建了能对高速公路信息进行空间分析、查询分析、数据校对等功能的信息系统。共设计了3种角色,可根据不同的用户需求划分相应的系统模块,达到配置灵活,分工明确的目的。利用BS结构简易方便的优势,增加了信息数据的共享性,为用户选择路线及行进方向等提供决策依据。目前该系统在贵州省高速公路管理局运行良好,取得了良好的社会效应。

参考文献

[1] 黎华,王重华,张勇.基于J2EE和ArcGis平台的WebGis设计与实现[J].计算机工程与设计,2006(6):966-969.

[2] 刘光,唐大仕.Web Gis开发——ArcGis Server与.net[M].北京:清华大学出版,2010:11-25.

[3] 李贞培,李平,吴明.基于ArcGis Engine和ArcGis Server的数字管道系统的设计与实现[J].计算机工程与设计,2010,31(3):638-642.

[4] 赵军,王群.基于ArcGis Server的综合管线信息发布平台[J].计算机应用,2009(增刊2):138-140.

[5] 董永峰,郭志涛,谷强,等.基于ArcGis Server的公交车辆监控系统的设计与实现[J].计算机应用与软件,2012(5):95-98.

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

Research on the Design of Highway Data Validation System Based on ArcGis Server

WUJingchunLIUZhijieYUGuojunZHUHongyan

(Key Laboratory of Information and Computing Science of Guizhou Province,Guizhou Normal University, Guiyang 550001, China)

Abstract:This paper introduces the structure and development methods of the ArcGis Server system, which systematically realized the control and display of the map layer, path and expense proofreading and query, playback of historical track, spatial data query, displaying the shortest path and the minimum charge and other key functions. The system also provides some important methods to optimize the road, increase the rate of road traffic, reduce the human intervention and labor cost. In the application background of Guizhou highway shows the function of the whole system.

Key words:ArcGis Server; highway data validation; proofread and query of the path and charge; vehicle management and query

文献标识码:A

文章编号:1673-1980(2016)01-0077-05

中图分类号:TP393

作者简介:吴景春(1990 — ),男,在读硕士研究生,研究方向为地理信息系统及软件工程。

基金项目:贵州省科学技术基金项目(200917);贵州省基础研究重大项目“大数据聚合机制及分析与交易机理研究”(黔科合JZ字[2014]2001号);贵阳市科技局重点项目(2010183)

收稿日期:2015-09-18