怎样在arcengine中创建一个要素数据集。建立一个要素数据集,数据集下面建四个要素,分别是线要素和面要素

怎样在arcengine中创建一个要素数据集。建立一个要素数据集,数据集下面建四个要素,分别是线要素和面要素,第1张

DataSet数据集对象:可分为两大类:Table和GeoDataset,GeoDataset是一个抽象类,代表了拥有空间属性的数据集,包括FeatureDataset、要素类FeatureClass、TIN和栅格数据集RasterDataset。

创建要素数据集就是创建FeatureDataset,创建线要素和面要素就是创建FeatureClass,只是其Geometry不同而已。

多看看AE开发的书籍吧。

最短路径分析属于ArcGIS的网络分析范畴。而ArcGIS的网络分析分为两类,分别是基于几何网络和网络数据集的网络分析。它们都可以实现最短路径功能。下面先介绍基于几何网络的最短路径分析的实现。以后会陆续介绍基于网络数据集的最短路径分析以及这两种方法的区别。

几何网络是一种特殊的特征要素类,由一系列不同类别的点要素和线要素(可以度量并能图形表达)组成的,可在FeatureDataset下面创建,可进行图形与属性的编辑。包括流向分析和追踪分析两大功能。主要接口是ITraceFlowSolver。我们先在一幅地图上做出一个几何网络才能进行最短路径分析。下面是主要的一些步骤(ArcMap帮助中琐碎的说明有三四十项,被我省略很多):

1、打开ArcCatalog,连接到包含地图的文件夹。

2、在空白处,右键新建一个“Personal GeoDatabase”。

3、在生成的Personal GeoDatabase上右键新建一个feature dataset。

4、双击Personal GeoDatabase进去,找到刚才new出的feature dataset,右键Import导入Feature Class(Single),选择要建立几何网络的图层或者shape文件。

5、然后再右键新建一个Geometric Network,选择从已存在的图元中建立几何网络。

6、打开ArcMap,把刚才建立的“Personal GeoDatabase Feature Class”添加到地图中,这样几何网络就建立好了。

这样我们就建立好一个几何网络了。我们现在要通过编程来实现最短路径,用到的接口主要有INetworkCollection,IGeometricNetwork,IPointToEID,ITraceFlowSolverGEN(它实现了ITraceFlowSolver的接口),INetSchema,IEIDHelper等。主要步骤如下:

1、获取几何网络工作空间

2、定义一个边线旗数组,把离点串最近的网络元素添加进数组

3、设置开始和结束边线的权重

4、进行路径分析

5、得到路径分析的结果

1/9页

上面介绍了用几何网络实现的“最短路径”,这次用网络数据集实现真正的最短路径功能,跟上次一样,先处理下数据。

1、先打开ArcCatalog,连接到目标文件夹,假定该文件下有一个名为road的道路图层。

2、在road图层上右键新建一个网络数据集,并按照其默认设置直至完成。

2/9页

3、打开该地图的工作空间,把刚才新建的网络数据集添加工作空间中。

4、在网络分析菜单中选择新建最近设施点。

3/9页

这时在工作空间里,可以看到多了一个名为“Closest Facility”的图层。它下面还有4个子图层,名字分别为“Facilities”,“Incidents”,“Barriers”,“Routes”。“Facilities”就是设施点图层,也就是目的点,“Incidents”的意思就是出发点,“Barriers”是障碍点,意思就是地图某条道路附近有一个障碍点,如果障碍点与道路距离在容限范围内,则表示此道路不通,“Routes”就是最终的结果。这样我们编程实现最短路径的思路就出现了:

1、添加出发点。

2、添加目的点。

3、生成最优路径,获取结果。

4/9页

这里的添加出发点或者目的点,是往“Facilities”或“Incidents”图层上添加元素。获

取结果也是从“Routes”中获取Polyline。往“Facilities”或“Incidents”图层上添加元素用

到的主要方法是INALocator的QueryLocationByPoint函数,生成路径主要接口是INASolver和它的Solve方法。获取结果是按属性查找,因为“Routes”类其实就是一个图层类,只不

过只是存在于内存。

CMapControlDefault m_map

IPointCollectionPtr m_ipPointCollection

ILayerPtr ipLayer = m_map.GetLayer(0)// 网络数据集

INALayerPtr ipNaLayer = ipLayer

if (NULL == ipNaLayer)

{

return

}

INAContextPtr ipNaContext

HRESULT hr = ipNaLayer->get_Context(&ipNaContext)

INAClassLoaderPtr ipNAClassLoader(CLSID_NAClassLoader)

INALocatorPtr ipNALocator = NULL

hr = ipNaContext->get_Locator(&ipNALocator)

ipNALocator->put_SnapToleranceUnits(esriMeters)

ipNALocator->put_SnapTolerance(200)

ipNaContext

一、地理网络

(一)基本概念

由一系列相互连通的点和线组成,用来描述地理要素(资源)的流动情况。

(二)网络类型

1、定向网络

(1)流向由源(source)至汇(sink)。

(2)网络中流动的资源自身不能决定流向。

例如:水流、电流等。

2、非定向网络

(1)流向不完全由系统控制

(2)网络中流动的资源可以决定流向。

例如:交通系统等。

二、ArcGIS网络

ArcGIS中网络类型包涵几何网络(GeometricNetworks)和网络数据集(NetworkDatasets)两种,其区别见下表:

比较项目

几何网络/设施网络

GeometricNetwork

UtilityNetwork

网络数据集/运输网络

NetworkDatasets

TransportationNetwork

对应地理网络

定向网络

非定向网络

对应图标

组成元素

边线和交汇点

Edgesandjunctions

边线、交汇点和转弯

Edges,junctionsandturns

存储位置

GeoDatabase要素集(Only)

GeoDatabase要素集

或文件夹

应用要素

GeoDatabase

GeoDatabase

Shapefile

可否编辑

一种特殊的特征要素类(Features),

由一系列不同类别的点要素和线要

素(可以度量并能图形表达)组成

的,可进行图形与属性的编辑。

点要素和线要素的集合,是

“记录”其拓扑关系而创建的,

不能编辑网络中的图形要素。

连通性管理

网络系统管理

创建数据集时用户控制

网络属性

基于要素类属性

更灵活的属性模型

网络模式

单一模式

单一或多模式

分析类型

流向分析

追踪分析

最佳路径分析

服务区分析

最近服务设施分析

起止成本矩阵分析

对应模块

设施网络分析模块

UtilityNetworkAnalyst

网络分析模块

NetworkAnalyst

应用范围

常用于基础设施网络(如综合管网、

电缆线等),研究网络的状态及模拟和

分析资源在网络上的流动与分配情况。

常用于地理网络(如交通网络)的路

径、服务范围与资源分配等分析。

注释:1、在建立这2种网络的时候,Dataset下会自动产生2项,NetworkDataset会产生test_ND、test_ND_Junctions,GeometricNetwork会产生test_Net、test_Net_Junctions。test_ND和test_Net用于管理网络的规则、属性等,test_ND_Junctions和test_Net_Junctions都是点层,他们的作用是线层中的线互相连通时的连接点,所有的连接点都是自动生成的;2、要素类不能同时参与构成GeometricNetwork和NetworkDataset。

三、网络数据集(Networkdatasets)

(一)网络组成

1、物理网络

用于构建网络并生成网络元素:边线(edges)、交汇点(junctions)和转弯(turns)。

2、逻辑网络

由一系列属性表组成,用来模拟网络的连通性,定义网络元素的关系。

(二)物理要素

1、边线数据(Edge):线数据,参与网络数据集的边线被定义为双向的。

2、交汇点数据(Point):点数据,交汇点可以连接任意多条边线。

3、转弯数据(Turn):转弯数据,该类型数据专门用于网络数据集,可由线数据或描述边界转向关系的turn表生成。

(三)连通性(Connectivity)

在网络中有两种方法来表示天桥和地下通道:1、边线与交汇点的连通策略:天桥和其下的道路在它们的交叉处都表示无节点的连续路径;2、高程方法:是把天桥和地下通道视为平面要素,如果代表天桥的两条弧段相交于一个节点(高程为0),那么代表天桥下面的街道的两条弧段就相交于另一节点(高程为1)。

1、连通组(ConnectivityGroups)

对点或线要素的逻辑分组,用来定义哪些网络元素是连通的。默认情况下参与网络要素处于同一个连通组,也可以在一个网络数据集中定义多个组,用来进行高级网络建模,多连通组构建多模式网络的基础。

2、连通策略(ConnectivityPolicies)

用来定义一个连通组内的网络元素相互之间的连通方式。

(1)边线连通性

每个子类要素只能只能参与到一个连通组中;连通策略在同一个连通组中定义;默认情况下,不同连通组中的线要素不连通;可以使用点要素定义不同连通组中的线要素的连通性。

1端点连通(Endpoints)

2任意节点(Anyvertexes)

(2)交汇点连通性

可以参与到多个连通组中;可以将同一或不同连通组中的线要素连。

1依据边线规则(Honor):由边线决定是否连通。

2交点处连通(Override)

小结:

边线连通性

端点连通(Endpoints)

边线只能在端点处与其它边线或交汇点连通。

任意节点(Anyvertexes)

一条边线可以与其它边线或交汇点的任意节点处连通。

交汇点连通性

依据边线规则(Honor)

根据边线元素的连通性策略决定交汇点与边线的连通性。

交点处连通(Override)

交汇点与边线的连通策略为任意节点处连通。忽略边线的连通策略。

3、高程字段(ElevationField)

通过应用高程字段,使得网络数据集能够表达线要素的高度起伏关系,通过高程字段判定边线的连通性,通常命名为z-elevation或z-levels。

1连通(高程值相等):平交路口

2不连通(高程值不等):天桥和地下通道

(四)转弯(Turns)

转弯是网络中基于线要素创建的特殊要素类,一个弧段到另一个弧段的过渡,描述了两到多个边线元素的转向特征,用于模拟网络中流动资源的通行成本或者限制;转弯成本是完成转弯所需的时间,通过转弯表记录转弯成本;一个转弯表有三个项目:交叉的节点数、转弯涉及的弧段数和转弯成本。

(五)网络数据集属性(Attributes)

可以通过数据集的属性控制网络的走向,比如网络中的要素流动时的阻值、单行路等设置。每个属性都有相应的名称(Name)、用途(Usage)、单位(Units)、数据类型(Datatype),用户可以根据需要添加/删除这些属性。

1、成本(Cost)

穿过网络元素时累积的某种属性值。如行车时间,步行时间,距离等,通过属性字段确定成本。

2、限制(Restriction)

用布尔表达式Restricted(true)或者Traversable(false)表示,单行道或封禁的街道可以用字段标示在网络属性表中。字段值可显示单行道的交通方向,如FT表示允许从弧段的始节点到终节点,TF表示允许从弧段的终节点到始节点,而N表示在任何方向都不能通行。

3、等级(Hierarchy)

通过整型值对边线元素进行等级划分,用于在网络数据集中查找路径。默认支持三个等级,如:RoadType:1=highway,2=majorroad,3=localstreet。

4、描述符(Descriptor)

用于描述网络元素的整体特征。如:车道数、材质等属性信息。

5、网络属性的使用

在网络分析中使用属性,可以影响分析结果。

(六)创建网络数据

(七)网络分析流程

四、几何网络(GeometricNetworks)

1、Networks are made up of:

(1)Edges (derived from Line feature classes):

1These have distance and direction

(2)Junctions (derived from Point feature classes):

1All edges end at a junction

2Junctions may be end point of a line or intersections between lines

3If a point from a point feature class is not available to serve as a junction, a point, called an orphan junction, is created in the junction feature class

2、Edges and Junctions may be simple or complex

1Simple edges/junctions consist of a single feature

2Complex edges allows edges to connect without separate segments

3Complex junctions represent multiple features

A pump station complex junction may itself consist of multiple water lines (edges) and valves (junctions)

3、Weights may be associated with both edges and junctions

1They represent the cost of traveling over that feature

2They are calculated based upon an attribute of the feature (e.g. length of a pipe segment)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11881662.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存