一 引子

网络数据集,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. JavaScript面试库

    1.将一段字符串转成驼峰命名法. var str = "web-kit-index"; function to(str){ var j = str.split("-&qu ...

  2. __proto__与prototype

    值得一说的是对象没有prototype属性,只有函数有prototype属性. var a = function(){}; a.prototype.d = function(){ console.lo ...

  3. Mybatis对MySQL中BLOB字段的读取

    1.在sqlMapConfig中,定义一个typeHandlers <typeHandlers> <typeHandler jdbcType="BLOB" jav ...

  4. Innodb Read IO 相关参数源代码解析

    前言:最近在阅读Innodb IO相关部分的源代码.在阅读之前一直有个疑问,show global status 中有两个指标innodb_data_reads 和 innodb_data_read. ...

  5. 20个精美的免费 PSD 界面设计素材【免费下载】

    在这篇文章中,我们给大家收集了20个最新出炉的 UI 设计素材.这些来自优秀设计师的 PSD 源文件素材让其它的设计师们在设计用户界面原型的时候能够非常便利.些界面素材让他们使用快速和有效的方式完成用 ...

  6. SQL Server里因丢失索引造成的死锁

    在今天的文章里我想演示下SQL Server里在表上丢失索引如何引起死锁(deadlock)的.为了准备测试场景,下列代码会创建2个表,然后2个表都插入4条记录. -- Create a table ...

  7. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets

    jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持. ...

  8. C++中指针常量和常量指针的区别

    在C++学习使用过程中,每个人都不可避免地使用指针,而且都或多或少的接触过常量指针或指针常量,但是对这两个的概念还是很容易搞糊涂的. 本文即是简单描述指针常量和常量指针的区别. 常量指针 定义: 又叫 ...

  9. IOS开发UI基础UITextView相关属性

    UITextView相关属性 •    text: 设置textView中文本_textView.text = @"Now is the time for all good develope ...

  10. C语言编译过程详解

    前言 C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程. 编写hello world C程序: // hello.c #include ...