刘云鹤,张 哲
(西北大学 城市与环境学院,陕西 西安710127)
随着GIS的普及,城市管线、交通、地下管道等行业开始采用GIS技术作用有效的管理手段。可是随着社会经济的发展,城市规模不断扩大,城市交通系统日趋复杂,由此所产生的交通问题也日益尖锐[1]。传统的方式主要通过CAD之类的制图软件来管理数据,主要是对地理要素图形的管理,而其属性信息往往被忽略。而对于管线、道路和地下管道这类线性要素,传统的平面直角坐标已无法实现其相关业务的需求。本文基于GIS技术的发展日渐成熟,地下管道数据库不失时机地引入了 GIS,即出现了管道GIS[2]。由于城市道路的线性特征和线性参考技术处理线性要素带来的便利,于是,将线性参考系统引入地下管道GIS中,探讨地下管道GIS的设计及实现。
道路、地下管道等是现实生活中线性物体的抽象,常规方法是根据线性物体上一些已知点的坐标以及沿线性物体的相对距离和沿线性物体的走向来推算未知点的平面x、y坐标。这种方法虽然理论上可行,但在实际操作中存在计算复杂、计算量大且定位不准确的问题。因为线性物体并不是单纯的直线,而是不规则的曲线,所以沿曲线的相对距离只能由曲线上各节点之间的直线距离累计而成,不仅计算繁琐,而且当累计到一定程度时,会出现较大的误差。解决问题的关键是如果能够建立一套线性参考系统,使得线性物体上每一点的位置都能直接由该线性物体的测量值来表示而不用转化成平面x、y坐标。因此,这类线性物体往往用沿线性物体的相对距离来定义线性物体上每一个离散点的位置。针对各个城市地下管网状况不佳,我们可以使用线性参考系统对城市的地下管道GIS进行设计与开发,从而有利实现地下管道数据管理的系统化、规范化和系统数据的更新。
根据本系统的需求分析,综合考虑软件性能,本系统采用C/S(客户端/服务器)的三层体系结构。数据层,采用一般的关系数据库管理系统实现对整个系统数据的管理;中间层,采用空间数据引擎协同管理空间数据库;应用层,用户直接接触的部分。对解决类似线性物体定位的问题,可以先在数据层,完成线性物体的输入、建立图层、数字化、校准等;在中间层利用ArcSED进行空间数据库管理;在应用层方面主要是在ArcGIS当中建立线性参考系统,利用AE提供的访问线性参考系统的方法进行系统开发和运用,既可以减少开发步骤,使问题简单化,又可以避免坐标转换中的误差,提高定位准确度。
根据系统总体设计原则、系统所要求开发的内容及用户需求,利于动态查询等特点,将系统主要的划分为地图操作、信息查询等子系统。地图操作子系统主要为用户提供友好的可视化界面,为用户出行和部门布置输油管道选址提供方便;信息查询子系统主要提供查询功能。
1.3.1 管理模块
管理模块分为用户管理模块和数据管理模块。前者主要功能是对用户和管理员登录的身份验证,对于一般用户要注册后才可登录到本系统,管理员主要完成对该系统及其数据的更新工作,需要对其进行身份识别。后者主要功能就是进行线性等数据储存;对线性要素栈,阀室,管道等数据分析;对一般数据和线性数据查询;对整个管道数据的输出等。
1.3.2 定位查询模块
查询模块可分为定位查询和范围查询,前者是当用户在地图上点击时,查询出在该点周围一定范围内的所有站点,栈、阀室等的信息。后者主要是圆形区域查询、矩形区域查询、任重多边形区域查询,通过以上查询出当前管道要素的结果地图,以便用户进行其他操作。
1.3.3 输入查询和结果输出模块
该模块的功能就是当用户选择输入查询时,从列表框中选择或输入要查询的站点、栈、阀室等点事件或线事件的名称后,查询到的物体的位置会在地图上闪烁。而结果输出主要实现:一是把查询结果写入文本文件中;二是输出当前查询结果后的地图,以便用户进行其他操作。系统总体设计结构图如图1所示:
为使本系统与其它相关线性信息系统实现数据共享与功能互补,给使用者提供完整统一的地下管道信息管理工具。本文采用基于 ArcGIS的二次开发组件——ArcEngine(AE),AE凭借其强大的功能及独立性使它成为许多GIS开发人员首选的二次开发组件。采用简单易用的C#开发语言进行开发。首先要做的工作就是在VS2008集成环境中引入AE对象库,接下来的工作就是在程序中利用ArcEngine对象库提供的接口实现系统功能。
2.1.1 概述
线性参考(LR,Linear Referencing)是指根据已存在的线性要素位置的相关性来存储地理数据的一种方法[3]。未知要素的位置信息可由已知线性要素的位置信息与其相对位置关系加以表示或量测。它一般包括三个部分:线性参考方法,线性网络和线性分布事件[4]。
2.1.2 数据组织
地理基础数据的地下管道要素包括管道、站场、阀室等,因此要对这些地理数据做好充分的准备。首先,进行数据的预处理,扫描纸质秦皇岛输油气分公司管道所经过的地区图:使用25万基础地形图和各个站场的影像截图;利用ESRI公司的ArcGIS9.3和管道部门软件对扫描后的地图采用WGS_1984投影进行配准。其次,数据采集,使用GPS320对秦皇岛输油气分公司管道上的要素:管道、站场、阀室等进行实地定位,测得它们的经纬度坐标。然后,进行空间数据的输入和编辑,主要通过ArcGIS9.3对以上两步的结果进行处理:对配准后的地图进行数字化处理;把从GPS得到的坐标输入到ArcGIS中,生成点图层。管道周边的辅助要素是根据航片矢量化得出的,而管道上的要素是根据坐标点入库的。最后,进行属性数据的输入,本系统的数据主要有ArcGIS的属性表进行管理,在数字化的同时,也将各个事件的属性信息输入到相应的表格中。
系统的各个功能模块的实现根据具体的要求和内容进行,下面重点介绍系统的几个主要模块的实现。
2.2.1 地图操作的实现
对于系统的数据加载显示,空间数据的加载由axTOCControl和axMapControl控件实现,MapControl控件的方法实现了图层的加载、删除、显示等功能,如AddLayer方法可以加载一个图层,DeleteLayer方法可以删除一个图层。通过IWorkspaceFactory类连接数据库,通过IFeatureWorkspace接口打开数据库的图层;加载打开的图层。
系统的地图查询浏览模块提供了地图数据查询浏览功能,可以加入ArcGIS放大、缩小,漫游等工具条,也可以自定义工具条。进入地图浏览功能,用户可对地图管道上的栈、站点、阀室等要素及管道周围的居民地、铁路等基础地理数据进行放大、漫游及鹰眼等操作,以方便对系统的认知和进行其它操作。
2.2.2 查询的实现
对于一般的查询功能,包括空间信息查询、属性信息查询、模糊查询、由空间信息查询属性信息、由属性信息查询空间信息等,还可以通过鼠标点选地物从而获取地物的详细信息。有QueryFilter可以实现属性信息到空间信息的查询,由IQueryFilter,IFeatureCursor,IFeature接口可以实现空间信息到属性信息查询。
而对于线性参考系统的查询功能,在查找在线点、最近点(例如:站点,阀室等)的时候,用到的主要接口主要有IRouteLocator,IRouteLocation, IRouteLocatorName,IRouteMeasureLineLocation等,可以先查询在线线,其次可以定位线上的事件点,最后还可以查询离这个事件点最近的点。同时,也可以先在管道五公里范围内建立缓冲区,然后查询在此缓冲范围内的桩等离线要素的查询。最终实现在线点、事件点的周围点、离线点的查询定位功能。
2.2.3 输入输出的实现
客户端可以通过接口 IfeatureLayer,IfeatureSelection,Itable,IqueryFilter,Icursor等输入站点、阀室、栈的名字,直接在地图上显示事件点,也可以输入起始事件点和终到事件点的名称,来查询管道的某一段管线并在地图上闪烁显示。除此之外,还可以直接在客户端地图上鼠标双击点选。
数据输出可以通过接口Iprinter,Ipaper,Ipage实现地图的打印输出,图层导出为图片,导出为其他格式文件等功能。文字输出包括管道上的桩、站点、阀室;图像输出包括电子地图相应区域、管道及线路标记。
系统主界面设计的原则是以用户为中心,在此基础上建立基于标准窗口系统、具有统一界面风格的图形用户界面。首先,界面要尽量避开复杂的内部实现细节,只显示用户需要的操作;其次,灵活的界面能够为用户提供更多选择,充分满足用户的需求;再次,要合理、高效地利用屏幕,窗口显示内容协调一致,功能菜单应建立层次,同时要处理好信息载负量和有限窗口的关系;最后,系统设计中要考虑到为用户提供反馈,建立有效的错误处理机制。该系统主界面运行如图1所示:
图1 系统运行主界面图
用线性参考技术解决线性物体定位的问题,大大减少了传统方法中由相对距离计算平面x、y坐标的误差,利用Arc-GIS软件平台建立线性参考系统,再基于ArcEngine对地下管道GIS系统进行开发和利用,实践证明用这种方法建立的系统对管道的定位查询、统计分析及数据添加等功能,不仅精度高,简单易行,而且极大地提高了人们对线性物体的理解、维护和分析能力。
随着新技术不断地被引入到地下管道GIS中,地下管道GIS系统将有望成为各运输部门日常信息处理不可缺少的系统工具,从而将彻底改变传统的信息处理方式,使管道规划、建设、管理和运营变得直观、轻松和高效。期望地下管道运输部门早日进入一个全新的数字化时代。
[1]张小文,刘勇等.GIS-T的类型方法及应用初探[J].遥感技术与应用,2002,17(6):344 -350.
[2]Paul A等.地理信息系统(下卷)-原理与技术(第二版)[M].北京:电子工业出版社,2004.250 -254.
[3]周振红等.基于公路线形特征的线性参照系及其应用[J].郑州大学学报(工业版),2005,26(4):69 -71.
[4]姜雁飞.线性参考系统在铁路勘测设计工程数据库中的应用[J].铁道勘测,2004,6:52 -54.