一 引子

网络数据集,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. access里like的通配符不能用%,要用*

    转自http://www.knowsky.com/339881.html access里like的通配符用法是这样:     “?”表示任何单一字符: “*”表示零个或多个字符: “#”表示任何一个数 ...

  2. 【软件分析与挖掘】BOAT: An Experimental Platform for Researchers to Comparatively and Reproducibly Evaluate Bug Localization Techniques

    摘要: 目前有许多的bug定位技术,但是,由于他们基于不同的数据集,而且有些数据集还不是公开的,甚至有些技术只应用于小数据集,不具有通用性,因此,不好比较这些技术之间的优劣. 因此,BOAT应运而生. ...

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

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

  4. 【转载】CSS 盒子模型

    转处:http://www.cnblogs.com/sunyunh/archive/2012/09/01/2666841.html 说在Web世界里(特别是页面布局),Box Model无处不在.下面 ...

  5. 轻量级IOC框架:Ninject (下)

    一,创建依赖链(Chains of Dependency) 当我们向Ninject请求创建一个类型时,Ninject会去检查该类型和其他类型之间的耦合关系.如果有额外的依赖,Ninject也会解析它们 ...

  6. JAVA和C# 3DES加密解密

    最近 一个项目.net 要调用JAVA的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题, 下面分享一下, 这里的KEY采用Base64编码,便用分发,因为Java的B ...

  7. android 隐藏标题栏的方法

    1:单个activity里 onCreate() { super.onCreate(); requestWindowFeature(Window.FEATURE_NO_TITLE); setConte ...

  8. vs2010设置

    解决方案管理器文件自动定位:工具--选项--项目和解决方案--常规--在解决方案资源管理器中跟踪活动项(前打勾). VAssistX拼写错误的下划波浪线去掉:在VAssistX菜单栏->Visu ...

  9. MySQL慢日志监控脚本实例剖析

    公司线上的 MySQL 慢日志,之前一直没有做好监控.趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下. 针对脚本的注解和整体构思,我会放到脚本之后为大家详解. 1 2 3 ...

  10. WCF安全1-开篇

    概述: WCF安全简介 1.在企业级应用中什么是“安全” 答: (1)应用能够识别用户的身份-认证Authentication (2)应用能够将用户的操作和可访问的资源限制在其允许的权限范围之内-授权 ...