《基于ArcEngine的城市地下管网碰撞分析研究.pdf》由会员分享,可在线阅读,更多相关《基于ArcEngine的城市地下管网碰撞分析研究.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 35 卷 第 11 期2012 年 11 月测绘与空间地理信息GEOMATICS SPATIAL INFORMATION TECHNOLOGYVol 35,No 11Nov,2012收稿日期:2012 03 04作者简介:张著豪(1975 ),男,贵州印江人,工程师,学士,主要从事测绘工程和地理信息系统及其应用研究工作。基于 ArcEngine 的城市地下管网碰撞分析研究张著豪1,李隆方1,邓晓丽1,马磊2(1 德阳市勘察测绘设计院,四川 德阳 618000;2 南京大学 地理与海洋科学学院,江苏 南京 210093)摘要:研究了2 维平面管网碰撞分析算法,首先通过碰撞预判断,提高算法检测
2、效率,分析了基于矢量积的直线管段相交算法。提出基于 ArcEngine 的折线管段的碰撞分析算法,并介绍了具体实现流程,利用 C#编程技术实现了城市地下管网碰撞分析。关键词:ArcEngine;管网;碰撞分析;C#中图分类号:P208文献标识码:B文章编号:1672 5867(2012)11 0130 03Collision Analysis Research of the Urban UndergroundPipeline Network Based on ArcEngineZHANG Zhu hao1,LI Long fang1,DENG Xiao li1,MA Lei2(1 Deyang
3、 Survey and Design Institute of Surveying and Mapping,Deyang 618000,China;2 School of Geography and Ocean,Nanjing University,Nanjing 210093,China)Abstract:The article studied the algorithm of collision analysis of the urban underground pipeline network Firstly,by the pre esti-mation of the collision
4、,the detecting efficiency is enhanced Through analyzing the judging computation by vector product to decidethe space relation of two segment lines in plane,a new collision analysis algorithm is developed on the basis of the ArcEngine to decidethe space relation of the fold pipelines Then introducing
5、 the realizing flow,the collision analysis about the urban underground pipelineis realized by C#Key words:ArcEngine;Pipeline network;Collision analysis;C#0引言在城市地下管网管线设计中,容易出现管线的空间碰撞,包括两管线的管体相交、一部分重叠以及管线外表面的净间距小于设计要求。碰撞检测是指通过分析一条管线与其可能发生碰撞的管线之间的水平、垂直净距,同设计标准做比较,得出是否有碰撞的结论,并对不符合规定的管线进行提示1。本文通过研究平面管线碰撞
6、分析算法,结合 ArcEngine 技术,对与用户选择的管线相交的管线进行分析,实现了城市平面地下管网碰撞分析。1碰撞分析算法研究11碰撞预判断由于地下供水管网组成的空间管道数据量大,走向复杂,而且其与新设计管线之间碰撞部位相对较少,或者根本没有碰撞,这样盲目地进行碰撞分析不仅费时而且效率不高2。所以,在进行细致的碰撞分析之前,应该做一个简单的预碰撞判断,如果未发生碰撞就可以确认管网间没有发生碰撞2。预判断有两种方法:基于管线的包络图的预判与基于管线缓冲区的预判。基于包络图的判断思想为:如果一个矩形在另一个矩形的上方、下方、左方或右方,那么这两个矩形一定不会相交。假设某折线的包络图 sS(矩形
7、)的任意对角线上的两端点坐标为(X1,Y1),(X2,Y2),对应图 1 中的坐标为(x1,y2),(x4,y3);另一折线包络图 S对角线端点坐标为(X3,Y3),(X4,Y4)。则判断条件为:max(X1,X2)min(X3,X4)(1)max(Y1,Y2)min(Y3,Y4)(2)min(X1,X2)max(X3,X4)(3)min(Y1,Y2)max(Y3,Y4)(4)如果 S 与 S满足以上条件之一,则它们所属的两折线一定不相交。在 ArcEngine 中,通过接口 IPolyline 的Envelope 属性提取折线的包络图,再通过接口 IEnvelope的 XMax、XMin、Y
8、Max、YMin 属性提取该包络图对角线上的端点坐标。基于管线缓冲区的预判的基本思想为:若两折线相交,那么其中一条折线一定在另一条折线的缓冲区内,那么寻找距折线1 m 范围内的所有折线信息,存储这些折线以备进一步细致碰撞分析。如图 2 所示,经过预判断,可排除 c 折线,得到 b、d 折线集合,再进行细致碰撞分析,则缩小了判断范围。在 ArcEngine 中,通过接口 ITopological-Operator 的 Buffer(i)方法获取所选管线周围 i 米范围的几何区域,再通过接口 ISpatialFilter、ISpatialFilter 设置过滤条件,最后用接口 IFeatureLa
9、yer 的 Search(pQFilter,false)方法获取该折线缓冲区内的折线集合。图 1提取折线的包络图Fig 1Broken line extraction envelope通过以上预判断,无论选择哪一种判断方法,最后都能得到一个折线集合,为随后进一步细致判断做准备,以达到提高后续判断效率的目的。图 2缓冲提取被检测折线周边折线信息Fig 2The buffering of the extraction of surroundinginformation of detected broken line图 3平面向量Fig 3Plane vector12基于矢量积的碰撞分析设平面上有两
10、线段a1a2、b1b2,如图 3 所示,根据矢量积相关计算原理,判断b1a1,a1a2,b2a1这三个向量的相对位置就能初步知道两线段是否相交。首先计算矢量积 C1与 C2,如下式:C1=x1 x3y1 y3x2 x1y2 y1(5)C1=x1 x4y1 y4x2 x1y2 y1(6)判断条件3:1)若 C1、C2同时大于 0 或同时小于 0,那么线段b1b2的两端点在a1a2所在直线的同侧,a1a2与b1b2不相交。2)若 C1、C2同时等于 0,则a1a2与b1b2重合。如图 4a、图 4b 所示。则这时需要判断 a1、a2是否在b1b2两端点之间,若在,即相交,如图 4a;若不在,则不想
11、交,如图 4b。3)若 C1、C2其中有一个等于 0,另一个不等于 0,则a1a2与b1b2不相交。如图 4c、图 4d 所示。这里注意图 4c,虽然 b1在a1a2上,但是在碰撞分析中,我们认为不相交。4)若 C1 C20,则a1a2与b1b2可能相交。如图 4e、图4f 所示。图 4平面向量关系图Fig 4The relationship between plane vectors对于 e、f 这两种情况,可根据计算矢量积 C3与 C4进一步判断,如下式:C3=x3 x1y3 y1x4 x3y4 y3(7)C3=x3 x2y3 y2x4 x3y4 y3(8)判断条件:若 C3 C40,则a
12、1a2与b1b2不相交,否则一定有唯一有效交点。通过上述算法的研究,能够写出判断两直线线段是否相交的函数 IsCorssLine,如下:public static bool IsCorssLine(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4)/其中(x1,y1),(x2,y2)为其中一条线段的两端点,(x3,y3),(x4,y4)为另一条线段的两端点。13基于 AE 的折线管网碰撞分析不难看出,通过上述几何碰撞分析,仅能判断两条直线线段间的碰撞关系,对于折线管线则需要进一步分析。
13、基本思想为:首先将两条折线管线按其节点打断(对于有n 个节点的折线,打断后得到 n 1 条直线线段),随后对这两个直线线段集合按上述方法一一相互判断,如果有131第 11 期张著豪等:基于 ArcEngine 的城市地下管网碰撞分析研究任意一对线段相交,则能确定两折线管线发生碰撞。如图 5 所示,将折线 ABCD 按其节点打断,可以得到 3 条直线线段 AB、BC、CD。将折线 EFG 按其节点打断,可得到两条直线线段 EF、FG。然后通过上述基于矢量积的判断相交算法分别确定集合 L1 AB,BC,CD 中的线段是否存在与集合 L2 EF,FG 中的线段相交的情况,在图 5 中,由于 CD 与
14、 EF 相交,则可以判定折线 ABCD 与折线 EFG 相交,即对应折线管网发生碰撞。图 5碰撞几何解释Fig 5The geometric resolution of collision基于 AE(ArcEngine)与 C#NET 平台,实现上述折线管网碰撞分析算法的基本步骤为:1)获取基于几何网络数据结构的管线数据,通过IPolyline 接口表达各管段,IPolyline 接口的 Envelope 属性提取该折线管段的矩形包络图,通过 IEnvelope 接口的XMax、XMin、YMax、YMin 属性提取该矩形包络图的对角线上端点的坐标,进行碰撞预判断。如图 5 中,根据(X1,Y
15、1),(X2,Y2),(X3,Y3),(X4,Y4)坐标,利用式(1)、(2)、(3)、(4)判断。2)通过 ISegmentCollection 接口实现打断折线管段,具体用方法 get_Segment(i)遍历提取各直线管段,存储为ISegment,并将各直线线段两端点坐标通过 ISegment 接口的 FromPoint 属性和 ToPoint 属性提取,存储为点集。如图5 中,分别提取 A、B、C、D 与 E、F、G 的坐标,存储在点集中。将各直线管段的端点代入函数 IsCorssLine 判断是否相交。如图 5 所示,将(AB,EF)、(AB,FG)、(CB,EF)、(BC,FG)、
16、(CD,EF)、(CD,FG)的端点分别代入函数 Is-CorssLine 判断是否相交。其中任意一组相交,说明两折线相交。为了帮助理解 ArcEngine 中几何线要素的组织关系,这里给出上述接口间关系图,如图 6 所示。图 6接口关系图Fig 6The interface relationship14分析流程根据上述算法,将其按图 7 流程图编程实现。图 7流程图Fig 7Flowchart2碰撞算法应用实例在 Windows xp 操作系统下,基于 ArcEngine 与 C#NET 平台,编程实现以上所述算法流程,并将该模块封装为 ArcEngine 工具 ITool,能够方便的供其它
17、 GIS 应用系统调用该工具。该工具模块设计了区域碰撞检测窗口,能够将碰撞信息显示在列表中,以供操作人员查看碰撞详细信息。并提供两种碰撞探测方法,即全图碰撞检测和要素碰撞检测,如图 8 所示。图 9 为要素碰撞检测结果,通过选择需要探测的管线(绿色表示),系统能够自动分析出与该管线发生碰撞的其它管线信息(红色表示),并将管线的属性信息显示在区域碰撞检测窗口中,如图8 所示。这里笔者根据项目需要,仅仅实现了全图碰撞检测与要素碰撞检测,读者可以根据以上算法,发挥想象,实现更加丰富的功能。图 8区域碰撞检测窗口Fig 8Collision detection window3结束语本文系统阐述了平面管
18、网碰撞分析算法,与 Ar-cEngine 结合,研究了在 ArcEngine 环境下进行预碰撞判(下转第 135 页)231测绘与空间地理信息2012 年表 3GPS 与全站仪观测结果比较表Tab 3Comparison results of GPS and total station observations监测点GPS 测量 X 坐标/mGPS 测量 Y 坐标/m全站仪测量 X 坐标/m 全站仪测量 Y 坐标/mX 坐标差值/mY 坐标差值/mBJ 014 724 532 126537 7406894 724 532 124537 740694+00020005BJ 024 724 753
19、 645537 9366354 724 753649537 9366310004+0004BJ 044 729 194 796538 5406254 729 194 797538 54062800010003BJ 054 733 904 336538 8401364 729 194797538 5406280004+0004BJ 074 727 874 731538 8401364 733 904 337538 840138+00040003BJ 114 725 553 242539 4269414 725 553245539 4269380003+0003BJ 124 722 384 241
20、539 7319314 722 384 245539 7319270004+0004BJ 134 722 428 137537 6286784 722 428135537 628683+00020005表 4GPS 测量高程与水准高程的比较Tab 4Comparison results of GPS measurement and level elevation2008 年 10 月 12 日2008 年 10 月 15 日监测点GPS 高程/m二等水准高程/m高程差值/mmGPS 高程/m二等水准高程/m高程差值/mmBJ 016923569 236BJ 026932469 3262 069
21、32269321+10BJ 046964169 637+4 06963969636+30BJ 057056570 564+1 07056370561+20BJ 427024870 244+4 0698836988520BJ 436903769 032+5 06903669031+50BJ 447125671 2593 0712557125830BJ 206977469 7762 06977369771+20BJ 317124771 243+4 07124671242+40参考文献:1宋宜容,陈广峰 GPS 应用于建筑物变形观测的探讨与展望 J 测绘通报,2008(6):69 71,77 2王继
22、卫,徐学辉,刘茂华 GPS 在变形观测中的应用J 江西测绘,2006(4):25 27 3付宏平 GPS 技术在山体滑坡变形监测中的应用J 山西建筑,2008(24):351 352 4马艳艳 全球定位系统(GPS)技术在水利工程中的应用 J 山东水利,2009(11):15 17 5邱斌,朱建军,贺跃光 GPS 在大地及工程变形观测中的应用 J 矿冶工程,2002,22(2):35 37 编辑:胡雪(上接第 132 页)图 9碰撞图示Fig 9Collision chart断算法,并对基于矢量的直线管段相交分析算法进行改进,提出了基于 AE 的折线管段相交分析算法,并将其应用于城市地下管网碰
23、撞分析,实践证明,此套分析流程高效可行。不足之处,文章仅对平面几何网络碰撞分析进行研究,没有考虑三维管线碰撞情况,笔者将进一步研究高效的三维管网碰撞分析算法。参考文献:1吕露 综合管网信息系统空间分析功能的设计与实现 D 北京:中国地质大学硕士论文,2010 2肖翔 基于几何的三维地下供水管网碰撞分析D 武汉:华中科技大学硕士论文,2008 3黄皖苏 平面两线段相对位置的矢积判断算法 J 合肥工业大学学报(自然科学版),1990,13(4):154 164 4张建辉 基于 GIS 的海底管线应急系统关键技术J 地理空间信息,2010,8(4):74 76 5雷丽晖 基于 WEB 的三维管线信息
24、系统的设计与实现 D 西安:西北大学硕士论文,2003 6Hu Chunmei,Zhou Qiusheng,Yuwentao Research on 3DReconstruction of Petrochemical enterprise Pipeline and ItsCollision Detection Based on 3D Scannning Technology C International Forum on Computer Science Technol-ogy and Applications,2009,354 357 编辑:吴迪531第 11 期何骞:基于 GPS 的广州某公路沉降变形监测技术研究