牟乃夏ArcEngine教程-第9章管网几何网络分析_第1页
牟乃夏ArcEngine教程-第9章管网几何网络分析_第2页
牟乃夏ArcEngine教程-第9章管网几何网络分析_第3页
牟乃夏ArcEngine教程-第9章管网几何网络分析_第4页
牟乃夏ArcEngine教程-第9章管网几何网络分析_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

牟乃夏ArcEngine教程-第9章管网几何网络分析第一页,共21页。目录1.几何网络2.显示网络流向3.网络追踪分析4.爆管分析第二页,共21页。1.几何网络在ArcGIS中,使用GeometricNetwork模型来表示几何网络,并使用Geodatabase里某个数据集中的多个要素类来创建几何网络。几何网络的概念主要有几何网络中的要素、逻辑网络和网络元素,以及几何网络的属性(如源头和汇)等。几何网络的实例图,该图表示了一个简单示例的供水几何网络的网络连接关系。第三页,共21页。1.几何网络几何网络要素几何网络包括两种网络要素—边(Edge)和结点(Junction)。边是由数据集中的线状要素类创建的。结点是由数据集中的点状要素类创建的。在几何网络创建时,要素类之间的几何连接关系决定了几何网络的连通性(connectivity)。在几何网络中边和边之间必须通过结点连接在一起,网络资源在边之间的流动必须经过结点。第四页,共21页。1.几何网络几何网络中存在两种类型的边—简单边(SimpleEdge)和复杂边(ComplexEdge)。简单边在边的两端分别连接1个结点,它一直保持这种特性,如果简单边的中段加入了新的结点,则原有的简单边会被分割为2个新的简单边。复杂边除了在两端连接2个结点外,还可以在边上连接其他的结点。如果复杂边的中段添加了一个新的结点,复杂边不会被分割,仍只是一个网络对象。几何网络中同样存在两种类型的结点—用户定义的结点(User-definedJunction)和孤立结点(OrphanJunction)。用户定义的结点是在几何网络创建时根据用户数据(如点状要素类)所生成的。孤立结点是在创建几何网络时,当第一个网络边的要素类被加入后,由ArcGIS自动添加的要素类。第五页,共21页。1.几何网络逻辑网络当几何网络被创建时,ArcGIS也同时自动创建了与此几何网络相对应的逻辑网络(LogicalNetwork),它用来表达网络对象间的连接关系,各种网络追踪任务的执行均依赖于逻辑网络所维护的网络连通性。几何网络是网络的图形表示,逻辑网络是几何网络对应的表格结构,是用来记录和维护网络结构和进行网络分析的基础。通俗的理解,几何网络是用来展示给用户看的,逻辑网络是计算机进行计算使用的。右图是左图中几何网络所对应的逻辑网络。第六页,共21页。1.几何网络几何网络属性几何网络数据类型包含其特有的一些属性,如:源头和汇几何网络中资源的流向在ArcGIS中由源头和汇来确定,如上述例子中电力和水的传输由源头和汇来驱动,资源由源头(如发电厂和泵站)传输到汇(如住户家中)。网络权重权重用来表示资源在网络中进行传输时所造成的耗费。例如在供水管网中由于管网摩擦力的存在,随着在管线传输距离的增加水流的压力会有一定的损失。可用及不可用要素几何网络中的任意边和结点都可能在逻辑网络中表现为可用或不可用的状态。如果边或结点要素被设置为不可用,则在逻辑网络中它被认为是一个障碍(Barrier)元素。当执行网络追踪任务时,追踪操作将在其遭遇的障碍元素处停止。网络要素的可用或不可用状态是由名称为Enabled的属性字段值来决定的,该字段的值可以为ture或者false。在几何网络创建时,该字段可以自动创建到网络要素的要素类中。当在网络中添加新的网络要素时,其可用状态默认设置为可用,即Enabled字段的值为true。第七页,共21页。2.显示网络流向相关类与接口本节实例所使用的与几何网络相关的类主要有:GeometricNetwork、Network、UtilityNetwork,相关的接口主要有:IGeometricNetwork、INetwork、IUtilityNetworkGEN、INetElements、INetworkCollection2、IDataset等。这些类和接口都位于ESRI.ArcGIS.Geodatabase命名空间中。第八页,共21页。2.显示网络流向相关类与接口1)GeometricNetwork类该类是ArcGIS的几何网络类,提供与几何网络相关的信息和操作,为ArcGISClass类型,不能直接创建。要获取当前使用的几何网络可以通过FeatureDataSet类的INetworkCollection2接口中的get_GeometricNetwork()方法,从数据源的FeatureDataSet中获取。同时通过GeometricNetwork类的IDataset接口的Name属性获取几何网络的名称。GeometricNetwork类的另一个重要接口是IGeometricNetwork接口,该接口用于管理几何网络的各类属性,以及管理几何网络中的网络要素等,其Network属性返回当前几何网络的逻辑网络,为INetwork接口类型。第九页,共21页。2.显示网络流向相关类与接口2)Network类Network类为抽象类,提供与逻辑网络相关的属性和操作,它创建的子类为UtilityNetwork类和StreetNetwork类。如前所述,通常使用UtilityNetwork类来模拟现实世界中的各类公共设施网络。它实现了INetwork接口和INetElements接口。1)INetwork接口该接口的成员提供逻辑网络和网络元素的常用信息。(1)EdgeCount属性返回逻辑网络中边的数量。(2)JunctionCount属性返回逻辑网络中结点的数量。2)INetElements接口该接口成员进行空间要素ID(如ObjectID)与网络元素ID(networkelementID,EID)之间的转换。(1)GetEID方法根据空间要素的ID值返回其对应的网络元素ID值。(2)QueryIDs方法根据网络元素ID值返回对应的空间要素ID值。第十页,共21页。2.显示网络流向相关类与接口3)UtilityNetwork类该类提供与UtilityNetwork(管网网络)相关的信息和操作,它实现的一个重要接口是IUtilityNetworkGEN,该接口用来获取和设置管网网络的流向信息等,它继承自INetwork接口。(1)GetFlowDirection方法根据网络边元素的ID返回其流向的方向,其返回值为esriFlowDirection常量,包括沿数字化方向、与数字化方向相反、不确定流向和未初始化流向等几种情况。(2)EstablishFlowDirection方法根据给定的源头和汇建立所有网络边元素的流向方向,该方法需要在数据编辑环境下使用。(3)SetFlowDirection方法为给定的网络边元素设置某种流向方向。第十一页,共21页。2.显示网络流向实例通过点击相关按钮来自动显示当前几何网络的流向。实例程序实现思路如下:(1)获取当前几何网络的逻辑网络,使用INetElements接口获取每个网络边要素的ElemenID;(2)通过IUtilityNetworkGEN接口查询获得每个边的流向,因为每条边在二维几何空间上均有一定的方向,体现为角度,在显示流向时应沿着该边的方向进行显示,因此在计算该边的角度后,即在每个边要素的中心点绘制相应的流向符号来标识该边的流向。详细代码见程序第十二页,共21页。3.网络追踪分析几何网络分析的主要任务是网络追踪分析,主要包括上下游追踪、查找连接或未连接的网络元素、查找共同祖先、查找最短路径等多种分析任务。分析过程中需要通过选择管点、管线和障碍,再选择某种网络追踪任务后执行分析即可得到分析的结果。相关类与接口本节实例所使用的与网络追踪分析相关的类主要有:NetSolver、TraceFlowSolver、NetFlag、JunctionFlag、EdgeFlag、NetElementBarriers、EnumNetEIDArray、PointToEID等,第十三页,共21页。3.网络追踪分析1)NetSolver类NetSolver类为抽象类,主要实现了INetSolver接口,用来设置网络分析解决器的逻辑网络以及设置用于网络的各类障碍,其可创建的子类为TraceFlowSolver类。INetSolver接口的ElementBarriers属性用于设置网络分析解决器的各类障碍,其参数为INetElementBarriers接口类型的变量。2)TraceFlowSolver类TraceFlowSolver类是具体执行网络追踪任务的类,它包括一系列基本的网络追踪分析解决器,可以进行网络追踪分析任务。它主要实现了INetSolver接口和ITraceFlowSolverGEN接口。ITraceFlowSolverGEN接口用于执行网络追踪任务,它主要的方法如下:(1)FindAccumulation方法(2)FindCircuits方法(3)FindCommonAncestors方法(4)FindFlowElements方法(5)FindFlowEndElements方法(6)FindFlowUnreachedElements方法(7)FindPath方法(8)FindSource方法(9)PutEdgeOrigins方法(10)PutJunctionOrigins方法第十四页,共21页。3.网络追踪分析NetFlag/JunctionFlag/EdgeFlag类NetFlag类为抽象类,实现INetFlag接口,用于确定管点或管线标识所代表的网络元素。其可创建子类JunctionFlag类和EdgeFlag类,分别代表管点标识类和管线标识类。常用的INetFlag接口主要用来获取或设置管点标识或管线标识所对应的空间要素的各项ID,它的主要属性如下:(1)UserClassID属性空间要素所在的要素类的ID。(2)UerID属性空间要素的ID,通常为ObjectID。(3)UserSubID属性空间要素中某个独立网络要素的ID。第十五页,共21页。3.网络追踪分析NetElementBarriers类NetElementBarriers类用来为网络分析解决器定义哪些网络元素为分析的障碍,它实现了INetElementBarriersGEN接口,用来根据EID(ElementID)为网络分析解决器设置分析障碍。1)INetElementBarriersGEN接口该接口的INetElementBarriers方法用于将一系列的网络元素设置为网络分析的障碍,其参数为EID的数组。2)INetElementBarriers接口需要注意的是,根据目前ArcGISEngine的定义,INetElementBarriers接口并不是由NetElementBarriers类实现的,它的成员也不应被使用,它只使用在INetSolver接口的ElementBarriers属性中,可以将INetElementBarriersGEN接口的变量通过接口转换为INetElementBarriers接口的变量,从而在INetSolver接口中使用。第十六页,共21页。3.网络追踪分析EnumNetEIDArray类EnumNetEIDArray类定义一系列网络元素的EID数组,它主要实现IEnumNetEID接口,用来对这一数组进行操作。IEnumNetEID接口的成员用来迭代访问数组中的所有EID,其主要属性和方法如下:(1)Count属性返回数组中网络元素的总个数。(2)Next方法将指针向前移动一位,返回所指位置的网络元素EID。(3)Reset方法使指针重新定位到数组的第一个位置。

第十七页,共21页。3.网络追踪分析PointToEID类PointToEID类用于获取与给定点位置最邻近的网络元素,它实现了IPointToEID接口,该接口的成员用来根据所设定的查询条件得到与给定点位置最邻近的某种类型的网络元素,其主要属性和方法如下:(1)GetNearestEdge方法根据输入点找到最邻近的管线元素,同时返回管线元素的EID、管线上与输入点最邻近的点,以及该点所在位置占整个管线长度的百分比。(2)GetNearestJunction方法根据输入点找到最邻近的管点元素,同时返回管点元素的EID和该管点要素的位置点。(3)SnapTolerance属性设置进行空间搜索的容限值。(4)SourceMap属性设置当前搜索操作所使用的地图。第十八页,共21页。3.网络追踪分析实例详解本例通过在地图上添加需要分析的管点、管线标识或障碍,选择某种网络追踪任务(如:查找公共祖先、查找相连接的要素等),得到分析的结果。实例程序实现思路如下:首先通过添加分析管点、管线、管点障碍和管线障碍工具添加各类标识点;然后将各类标识点设置到网络追踪分析器中;根据所选择的追踪任务由分析器得到分析结果,最后将分析结果显示到地图中。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论