一 引子

网络数据集,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. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

  2. 解决错误: java.lang.NoClassDefFoundError: antlr/RecognitionException

    网络质量不好的情况下,访问maven.org网站下载jar包,很有可能下载的包不完整或损坏的(表面看不出来):所以,最好的办法就是-直接到maven网站下载,然后放到对应的.m2目录,然后eclips ...

  3. Android中使用自身携带的Junit新建一个测试工程

    1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...

  4. mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是 -128到127 1.BIT[M] 位字段类型,M表示每个值的位数,范围从1到64,如 ...

  5. Android 布局之RelativeLayout

    Android 布局之RelativeLayout 1 RelativeLayout简介 RelativeLayout是相对布局. RelativeLayout布局属性 1.1 与parent相对的属 ...

  6. 你不一定知道的几个很有用的 Git 命令

    这里给大家分享一些很有用的 Git 命令,其中很多用法你可能都不知道,无论你是工作在团队环境中或在您的个人项目中,这些命令将对你帮助很大,让你可以更加高效的进行项目开发,更轻松愉快的工作和生活. 您可 ...

  7. Android 学习笔记之AndBase框架学习(三) 使用封装好的函数完成Http请求..

    PS:踏踏实实走好每一步... 学习内容: 1.使用AndBase框架实现无参Http Get请求... 2.使用AndBase框架实现有参Http Post请求... 3.使用AndBase框架实现 ...

  8. SQL Server窗口函数:ROWS与RANGE

    几乎每次我展示SQL Server里的窗口时,人们都非常有兴趣知道,当你定义你的窗口(指定的一组行)时,ROWS与RANGE选项之间的区别.因此在今天的文章里我想给你展示下这些选项的区别,对于你的分析 ...

  9. SQL Server 诊断查询-(4)

    Query #41 Memory Clerk Usage -- Memory Clerk Usage for instance -- Look for high value for CACHESTOR ...

  10. 构建之法 第6~7章读后感和对Scrum的理解

    第六章-敏捷流程 第六章主要详细介绍了敏捷流程,在软件工程范畴里,“敏捷流程”是一系列价值观和方法论的集合.这一章以敏捷流程的Scrum方法论而展开,而敏捷流程的精髓就是在于快速的交付. 敏捷开发的流 ...