2009年3月15日星期日

【原】ArcGIS中最短路径的实现(一)

最短路径分析属于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. 得到路径分析的结果

具体的程序太过繁琐、冗长了,这里不便贴出,可以打开这个链接查看源程序。http://www.cnblogs.com/3echo/archive/2008/01/24/865527.html

相关链接:ArcGIS中最短路径的实现(二)

2 条评论:

  1. 我觉得可以继续跟SuperMap和MapInfo比较一下方法的区别和优劣,看来几何网络分析法还比较简单,很好,期待第二部分...

    回复删除
  2. 貌似只讲了如何建立几何网络,而没讲最短路径的实现,希望miaocl解答疑惑...

    回复删除