谢 瀚,黄泽纯,汤家法
(1. 西南交通大学 地球科学与环境工程学院,四川 成都 611756)
利用ArcEngine和C#实现地下管线断面分析
谢 瀚1,黄泽纯1,汤家法1
(1. 西南交通大学 地球科学与环境工程学院,四川 成都 611756)
结合城市地下管线网络分布情况和探测采集到的管线数据,设计了断面分析相关的数据组织结构,利用ArcEngine控件和Visual Studio 2005软件开发平台,实现城市地下管线横断面和纵断面分析功能,为城市地下管线的科学管理提供准确的决策信息。
GIS;地下管线;横断面;纵断面;剖面
城市地下管线种类繁多,是城市赖以生存和发展的“生命线”[1],与人们的生活息息相关。随着城市的发展,城市地下管线的管理和维护也越来越繁杂[2]。随着信息化工作的快速推进,GIS技术已被应用到城市地下管线信息系统中,其中的断面图可以直观、清楚地反映地下各条管线的埋深情况和管线之间的空间位置关系,这对于各类管线的埋设、管理和维修具有重要意义。
研究使用的数据是某城市的部分地下管线探测数据,主要分为燃气和供水管线,顾及到管线的现状和历史信息。管线断面数据组织设计基于ArcGIS的Geodatabase数据模型,将每类管线又分为4个图层,即既有管线段、既有管线点(阀门)、新增管线段(对管线维修和更新时新铺设的管线)、新增管线点(对管线维修和更新时新增设的阀门)。每类管线的管线段和管线点的属性表都包含了图上点号、管线材质、管线埋深、管径、埋设方式和地面高程、管线长度等字段,管线段地面高程和埋深字段存储的是各条管线段起止端点的地面高程和埋深,管线数据的数据库表结构如表1所示。
表1 管线的数据库结构
2.1 管线断面分析流程
横断面分析指用户在任意方向画横断面线确定横断面,横断面与多条管线相交,通过该断面图能够分析该断面上的地下管线分布情况,标示出管线的断面尺寸、高程、管线的间距等属性数据,正确地反映管线与地面间、管线与管线间的空间关系[3]。图1为本文实现的管线断面分析功能的流程图,包括横断面和纵断面分析。在断面图的绘制过程中,用户选择断面分析工具,在管线视图中绘制一条断面线或者框选多条相连管线,系统自动判断与断面线相交的管线是否满足条件。如满足条件,系统自动计算绘制断面图所需数据,然后自动绘制、显示断面图和断面分析属性表。
图1 断面分析
2.2 横断面图的生成方法
横断面图是以横坐标轴表示管线断点之间的间距、纵坐标轴表示管线断点的地面高程,单位为m。其生成步骤如下:
1)绘制断面线。
2)选择要进行断面分析的图层。
3)获取相应的断面数据,包括断面和管线交点的坐标、管线材质、管径、管线类型和地面高程等信息。大部分数据可以直接从数据库中获取,部分数据必须通过间接计算得到。
4)利用上述断点坐标,计算断点之间的距离,再根据地面高程和管线埋深计算管线高程,这是绘制横断面图的重要依据。
5)绘制和坐标轴标注。由于管线断点间距、管线埋深、管线之间的高程差值的差距很大,如果在绘制横断面图时纵坐标和横坐标的单位或比例尺一致,管线之间的高程差异就很难分辨,对管线的横断面分析达不到预期的效果。因此,断面图的纵坐标和横坐标的单位应根据高程值和断点之间的距离进行动态标注。
6)绘制管线的横截面。采用圆形符号表示管线的截面形状,然后根据管线断点之间的距离和管线断点高程确定管线断点在断面图中的位置,并根据管线的管径确定管线截面尺寸。
7)管线属性信息自动检索。由于管线断点属性与断点空间位置是关联的,所以可根据管线的断点坐标和管线属性绘制属性表。管线属性表的建立有利于用户和管理员直观而方便地查询管线的相关信息,并根据管线属性表中的内容检查断面分析中数据的准确度。
2.3 管线纵断面图的生成方法
纵断面分析流程和横断面大致相同,只不过纵断面分析只分析管线的地下埋设情况、地面情况并标示管线的种类、管径、管顶高等属性,表示管线沿地面的走势[3]。纵断面图的表示方法:横坐标轴表示管线的水平长度,横坐标表示地面高程,单位为m。纵断面图生成方法和横断面图类似,只不过在横坐标轴和图上绘制的折线定义不同。
3.1 断面数据的获取
断面数据的获取其实就是对管线图层和图层要素的遍历分析过程。以横断面数据获取为例,步骤如下:
第一步,以所绘横断面线为基准,对所选图层进行遍历搜索,获取断面线与管线相交的所有管线段,并存储在内存变量中;
第二步,将获取的横断面线与管线的所有交点坐标(x,y)组成交点坐标序列,并对所有交点按顺序进行编号以便提取;
第三步,根据已获取的管线段,从数据库中搜索各条管线段所对应的地面高程、管线埋深、管线材质、管线长度、管径和管线编号等属性信息;
第四步,将所获断面数据存放在自定义的数据结构中[4]:
Class clsProfileStruct{ // 横断面数据结构
Private string F_ID // 管线编号
Private string DH // 管线材质
Private double DMGC // 地面高程
Private double MS // 管线埋深
Private double GJ // 管线管径
Private double GXCD // 管线长度
}
纵断面数据获取和横断面大致相同,惟一区别是纵断面数据的选择是多条相连的管线,而横断面是用横断面线去切割多条相邻管线。
3.2 坐标轴的动态标注
横断面图中坐标轴动态标注方法如下:横坐标轴根据计算出的管线断点间距分段,其中设置间距最小值20 m、最大值100 m。当管线断点间距处于20 m和100 m之间时,按其间距按1︰1的比例分段,小于20 m按20 m分段,大于100 m按100 m分段。纵坐标轴中,根据从数据库获取的管线埋深信息的最值来确定等分刻度,如表2。
表2 横坐标刻度设置表
本文利用ArcEngine控件和Visual Studio 2005软件开发平台,实现了城市地下管线的横断面和纵断面分析功能,主要包括:
1)定位:利用Visual Studio平台中的ComboBox工具实现管线图层的下拉列表选择功能;利用ArcEngine控件中IPolyLine接口实现在管线视图上绘制断面线,并利用相关接口获取断面线与管线的交点,再利用CSharp语言计算管线数据。
2)绘制剖面图:利用GDI绘图工具绘制管线的断面图和相关属性表。具体操作为:用户选择需要进行断面分析的图层,使用设计好的横断面分析工具,在地下管线视图上绘制横断面线,双击后自动生成管线的横断面图(如图2),并保存在指定的文件目录下。
图2 管线横断面图
与管线横断面图生成方法相似,选择需要进行断面分析的图层,使用设计好的纵断面分析工具,在视图上框选多条地下管线,然后自动生成管线纵断面图(如图3)。
图3 管线纵断面图
本文给出的管线横、纵断面分析方法能直观地反映地下管线与道路的埋深情况和管线间的空间关系,能为市镇建设决策提供决策信息[5]。但相对于专业的GIS管线系统,笔者开发的程序在绘图效果上有所欠缺。
[1] 连军.基于GIS的城市地下管线综合管理信息化研究[D].重庆:重庆大学,2005
[2] 蔡宽余,杨晓慧.城市地下管线信息管理系统的设计[J].上海地质,2005(2):37-45
[3] 杨晓丽,李万辉. 基于GIS的城市地下管线横纵断面分析[J].测绘与空间地理信息,2010(3):58-62
[4] 于海龙,谢刚生,李大军.基于GIS的城市地下管网纵横断面分析的设计与实现[J].工程勘察,2001(1): 52-55
[5] 林华,杨萍.城市综合官网剖面分析模块的设计与实现[J].城市勘测,2004(1):30-32
[6] 高铁军.地下管线地理信息系统中任意剖面图的实现[J]. 测绘工程,2000(3):37-40
[7] 张书亮,姜永发,兰小机,等.基于GIS的城市地下管网断面可视化分析[J].南京林业大学学报:自然科学版,2004(5):86-88
P208
B
1672-4623(2014)04-0098-02
10.11709/j.issn.1672-4623.2014.04.033
谢瀚,硕士,研究方向为测绘工程。
2013-07-05。
项目来源:教育部人文社会科学研究规划基金资助项目(12YJAZH124);中央高校基本科研业务费专项资金资助项目(A0920502051308-12)。