一 引子

网络数据集,GIS空间分析基础的理论和知识,是最短路径分析、连通性分析等其他空间分析技术的数据基础。

以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网络数据集的实现流程,比较深入的了解。功能实现过程中,遇到了不少的问题,通过不断的解决问题,熟悉了相关的几个AE接口的设置和使用。创建网络数据集的功能实现,相对于其他的AE功能实现来说,是比较复杂的。主要是对应接口属性设置的不熟悉造成的,而且还有遵循固定的步骤设置。

ESRI官网样例代码及网络资料,对创建网络数据集的接口解释是不够明确的,需要对比使用ArcMap创建网络数据集流程,才能理解几个AE接口使用的作用。

记录下自己代码实现和解惑的过程,抛砖引玉,帮助后来人,也是在帮助自己。

二 网络数据集概述

网络数据集是GIS网络分析的数据基础,具备连通性,方向性等特性。根据ESRI官网的定义,网络数据集是可构建无向流模型的互连网络元素(边、交汇点和转弯)集合。

网络数据集是由网络元素组成的。网络元素包括三种类型,边(Edges)、交汇点(Junctions)和转弯(Turns)。Turn是重要的元素,Turn表达了禁止策略和转向成本,模拟现实中不同的转向策略,比如直行,左转,右转,其花费的成本都是不同的。网络数据集中包括两种Turn,Globle Turn和Turn Feature Class。

连通性对于网络数据集是个重要的特性,连通性也是网络分析的分析基础。连通性表达了网络元素之间的可达性。ArcGIS可以定义网络元素之间的三种连通方式(连通策略),即边线连通、交汇点连通、高程字段。

网络属性是控制网络可穿越性的网络元素的属性。网络属性有五个基本属性,即名称、使用类型、单位、数据类型和默认值。网络数据集包括四种类型,Cost,Hierarchy,Restriction,Descriptor。

三 ArcMap中创建网络数据集

在ArcMap中创建网络数据集的步骤是简单的,通过八个设置界面填写和设置数值,即可完成。这个过程就是为上一个主题中定义的内容设置数值。

1 定义网络名称;

2 选择参与创建数据集的要素类;

3 定义转弯数据,一般设置为Globe Turns;

4 设置连通性,其中可以设置端点连通策略;

5 设置参与要素类的高程字段;

6 设置网络数据集的属性。该步骤是关键的,可以通过添加属性,设置限制条件或参与计算字段;

7 设置网络数据集的方向属性,包括时间属性,长度属性,显示长度单位,道路详情等内容;

8 创建数据集设置概述;

总的来说,通过ArcMap创建网络数据集是可视化的,是操作简易的,如果没有特别的业务需求,采用默认值,就可以成功创建网络数据集。如果有约束条件的设置,通过字段的选择即可以简单完成;复杂的需求可以通过脚本编写,也可以实现业务要求。

未完待续...

Arcengine实现创建网络数据集札记(一)的更多相关文章

  1. Arcengine实现创建网络数据集札记(二)

    四 ArcEngine实现创建网络数据集 ArcEngine创建网络数据集的过程,与ArcMap设置的过程类似,主要通过六个步骤即可以实现. 1 定义网络数据集对象,并设置基本属性,包括网络数据集名称 ...

  2. Arcengine实现创建网络数据集札记(三)

    后记 下面给出项目中用到的自定义的封装类. AE许可初始化封装类: public class AELicenseChecker { private static volatile AELicenseC ...

  3. ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集

    前言 似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何"使用自己的数据"创建"网络数据集"的文章. 有介绍几何网络的,有介绍如何用官方SanFrancis ...

  4. ArcGIS 网络分析[1.5] 使用点线数据一起创建网络数据集(如何避免孤立点/点与线的连通性组合结果表)

    ArcGIS中最基本的三种矢量数据是什么?点线面. 网络中除了路网之外,还会有地物点. 如上图,我们在建立网络数据集的时候,作为实验,当然可以只是公路网.但是在大型的决策任务中,网络数据集就不只是公路 ...

  5. ArcGIS 网络分析[8.3] 设置IDENetworkDataset的属性及INetworkDataset的对比/创建网络数据集

    创建网络数据集就得有各种数据和参数,这篇文章很长,慎入. 网络分析依赖于网络数据集的质量,这句话就在这里得到了验证:复杂.精确定义. 本节目录如下: 1. INetworkDataset与IDENet ...

  6. ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集

    上节提及如何使用IDatasetContainer2接口访问到网络数据集,上例可以封装为一个方法. 这节就使用IDatasetContainer2接口(Geodatabase类库)的CreateDat ...

  7. ArcGIS 网络分析[8.1] 资料1 使用AO打开或创建网络数据集之【打开】

    为了创建或打开一个网络数据集,你必须使用NetworkDatasetFDExtension对象(文件地理数据库中的数据集)或NetworkDatasetWorkspaceExtension对象(对于S ...

  8. ArcGIS 网络分析[1.3] 在个人地理数据库中创建网络数据集/并简单试验最佳路径

    上篇使用shp文件创建网络数据集,然而在ArcGIS 9中就支持地理数据库了,数据库的管理更为科学强大. 本篇就使用个人地理数据库进行建立网络数据集,线数据仍然可以是1.1中的线数据,但是我做了一些修 ...

  9. ArcGIS 网络分析[1.2] 利用1.1的线shp创建网络数据集/并简单试验最佳路径

    上篇已经创建好了线数据(shp文件格式)链接:点我 这篇将基于此shp线数据创建网络数据集. 在此说明:shp数据的网络数据集仅支持单一线数据,也就是说基于shp文件的网络数据集,只能有一个shp线文 ...

随机推荐

  1. undefined reference to `_imp___ZN8QWebViewC1EP7QWidget'

    add this line to your .pro file: QT += webkitwidgets

  2. ORA-12170:TNS:连接超时

    本文转自 http://www.cnblogs.com/kerrycode/archive/2012/12/14/2818421.html 1:首先检查网络是否能ping通 2:检查TNS配置(TNS ...

  3. Java知多少(111)数据库之修改记录

    修改数据表记录也有3种方案. 一.使用Statement对象 实现修改数据表记录的SQL语句的语法是:    update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特 ...

  4. Lua中调用C函数

    Lua利用一个虚拟的堆栈来给C传递值或从C获取值.每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回 ...

  5. 调用Ajax返回500错误的解决方法

    看代码: public ActionResult UserLogin(LogOnModel model) { #region 验证码验证 #endregion OperationResult resu ...

  6. 红黑树(四)之 C++的实现

    概要 前面分别介绍红黑树的理论知识和红黑树的C语言实现.本章是红黑树的C++实现,若读者对红黑树的理论知识不熟悉,建立先学习红黑树的理论知识,再来学习本章. 目录1. 红黑树的介绍2. 红黑树的C++ ...

  7. 15套漂亮的 PSD 格式的图标,不一样的视觉效果

    在 Web 设计领域,图标发挥非常重要的作用,因为美丽的和创造性的图标集可以很容易地使网页设计更有吸引力.网页设计设计师专注于每一个领域的设计,包括颜色选择.图标.创造力.混色等.正确的选择图标可以使 ...

  8. LeetCode——Gray Code

    Description: The gray code is a binary numeral system where two successive values differ in only one ...

  9. C#函数式程序设计之局部套用与部分应用

    函数式设计的核心与函数的应用以及函数如何作为算法的基本模块有关.利用局部套用技术可以把所有函数看成是函数类的成员,这些函数只有一个形参,有了局部套用,才有部分应用.部分应用是使函数模块化成为可能的两个 ...

  10. [JS] JavaScript由浅入深(2) 进阶

    本节,将围绕以下几点来讲. 知识点:多线程.作用域.闭包.this 先顶后看 1.多线程 在不支持H5的浏览器中.使用Concurrent.Thread.js. 在支持H5中,使用WebWork. 在 ...