原文AE中网络分析的实现 的各个类之间的关系

1.     创建网络数据集

在ArcCatalog中勾选网络分析模块,新建个人地理信息数据库—>新建要素数据集—>批量导入要素—>创建网络数据集。

在网络的属性中,可以添加成本、等级和限制等属性。成本用于累积计算最短路径(一般为距离和时间);等级用于道路等级的划分(使用等级执行网络分析时,将应用启发式算法,该算法在选择道路时倾向于更高级别的等级);可以针对特定元素标识约束条件,这样在分析过程中,不可遍历限制元素。

2.     AE中的网络分析

在AE中网络分析对应于NetworkAnalyst命名空间。在这里会用到很多不常见的接口INetworkLayer(网络图层),INetworkDataset(网络数据集),INASolver(网络分析求解器),INASolverSettings(网络分析设置),IDENetworkDataset(数据元素网络数据集),INAContext(网络分析环境),INALayer(网络分析图层),INAClass(网络分析类型),INALocator(网络分析定位器)等待。

在网络分析中,网络数据集是一切分析的基础,所以在进行网络分析之前,首先要得到网络数据集。将数据加载到AxMapControl之后,网络数据集所对应的图层类型为INetworkLayer,通过它的属性INetworkLayer.NetworkDataset就可以的到网络数据集INetworkDataset。

要想进行网络分析,还需要新建一个网络分析求解器(INASolver),并且根据不同的分析需求实例化不同的求解器类型,而不同的求解器类型中包含着不同的网络分析类型(NAClass),不同的求解器接口又可以进行相应不同的设置(如INAClosestFacilitySolver可以设置默认目标设施点数量和默认成本切断值即最大成本)。

如果要对网络分析进行设置,则通过强制转换将NASolver转换为INASolverSettings,根据实际需要对其属性进行设置。AccumulateAttributeNames用于设置多个累积单位字段,ImpedanceAttributeName用于设置成本字段,HierarchyAttributeName用于设置等级字段,UseHierarchy设置是否使用道路等级,RestrictionAttributeNames用于设置限制字段。

在INASolver和INetworkDataset基础上使用INASolver.CreateContext方法创建网络分析环境,使用INASolver.CreateLayer方法创建网络分析图层,在INALayer上就可以进行网络分析了。在最近设施点分析(NAClosestFacilitySolver)中,事件点(Incidents)和设施点(Facilities)是两个必要的网络分析类型,所以在进行分析之前需要加载位置要素到网络分析环境的网络分析类型中,可以使用INAClassLoader批量加载,也可以将INAClass强制转换为IfeatureClass然后通过CreateFeature添加单个要素。

准备工作完毕,使用ISolver.Solve方法进行分析计算。不同的分析求解器有不同的输出要素类型,均包含在网络分析环境中,可以对其进行查询或其它操作。

AE中网络分析的实现 的各个类之间的关系的更多相关文章

  1. 请解释ASP. NET中的web页面与隐藏类之间的关系

    请解释ASP.NET中的web页面与其隐藏类之间的关系 其实页面与其隐藏类之间就是一个部分类的关系,你在页面上放一个一个的控件就是在这个类中定义一个一个的属性, 因为是同一个类的部分类的关系,所以隐藏 ...

  2. 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...

  3. python中对象、类型和元类之间的关系

    在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...

  4. 请解释ASP.NET中的web页面与其隐藏类之间的关系

    其实页面与其隐藏类之间就是一个部分类的关系,你在页面上放一个一个的控件就是在这个类中定义一个一个的属性, 因为是同一个类的部分类的关系,所以隐藏类可以访问到页面上控件,这样做是为了把展现与处理逻辑分开 ...

  5. 请解释ASP.NET 中的web 页面与其隐藏类之间的关系?

    一个ASP.NET 页面一般都对应一个隐藏类,一般都在ASP.NET 页面的声明中指定了隐藏类例如一个页面 Tst1.aspx 的页面声明如下 <%@ Page language="c ...

  6. java中StringBuilder、StringBuffer、String类之间的关系

    今天在CSDN的高校俱乐部里看到了"Java基础水平測试(英文)".感觉自己学了java这么久,想看下自己的java水平究竟是个什么样.測试结果就不说了,反正是慘不忍睹. 看了一下 ...

  7. Python中对象、类型、元类之间的关系

    Python里的对象.类型和元类的关系很微妙也很有意思. 1989年圣诞节期间,上帝很无聊,于是创造了一个世界. 对象 在这个世界的运转有几条定律. 1.一切都是对象 对象(object)是这个世界的 ...

  8. Java中接口与接口和类之间的关系

    接口和接口之间的关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方 ...

  9. Java 中类与类之间的关系

    在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系     继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在J ...

随机推荐

  1. Spark MLlib LDA 源代码解析

    1.Spark MLlib LDA源代码解析 http://blog.csdn.net/sunbow0 Spark MLlib LDA 应该算是比較难理解的,当中涉及到大量的概率与统计的相关知识,并且 ...

  2. ViewPager (下)-- 利用 Fragment 实现美丽的 页面切换

    之前用的ViewPager适用于简单的广告切换,但实现页面间的切换最好是用官方推荐的Fragment来处理. 本人力争做到最简单.最有用,是想以后用到的时候能够方便的拿过来复制就能够了. 效果图: w ...

  3. 学习笔记(二):javascript之dom操作

    一.document.getElementById()    根据Id获取元素节点 <div id="div1"> <p id="p1"> ...

  4. Android内存泄露分析之StrictMode

    转载请注明地址:http://blog.csdn.NET/yincheng886337/article/details/50524709 StrictMode(严格模式)使用 StrictMode严格 ...

  5. nuxt按需引入 element-UI、自定义主题色(终极按需引入)

    首先你要知道 nuxt.js怎么引入第三方插件 : 不多BB. 一.按需引入element-UI 第一步:安装 babel-plugin-component: npm install babel-pl ...

  6. import 与export详解

    ES6 1.export default 其他模块加载该模块时,import命令可以为该匿名函数指定任意名字. 如: import Vue from 'vue' vue里面的第三方模块都是用了这个 使 ...

  7. JPA的配置文件persistence.xml参数详解

    <?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0&q ...

  8. MyCat:对MySQL数据库进行分库分表

    本篇前提: mycat配置正确,且能正常启动. 1.schema.xml <table>标签: dataNode -- 分片节点指定(取值:dataNode中的name属性值) rule ...

  9. C# 进制转换 在什么情况下使用16进制,字节数组,字符串

    C# 进制转换 Admin2013年9月18日 名人名言:从工作里爱了生命,就是通彻了生命最深的秘密.——纪伯伦 1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Con ...

  10. Linux定时器的使用(三种方法)

    使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务.要达到这一目的,一般有两个常见的比较有效的方法.一个是用linux内部的三个定时器,另一个是用sleep, us ...