原文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. 使用Microsoft.Office.Interop.Excel时,64位问题

    前不久,碰到一个问题. 曾经用的好好的Microsoft.Office.Interop.Excel实现的导出Excel,迁移至64位server后,就出现: 检索 COM 类工厂中 CLSID 为 { ...

  2. 1.2 Use Cases中 Metrics官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Metrics 指标 Kafka is often used for operati ...

  3. 有关Canvas的一点小事—canvas数据和像素点

    1.  canvas生成base64数据 canvas.toDataURL()生成的数据可以直接给image对象使用作为<img>显示在前端,也可以传给后台生成图片保存.前端生成保存图片的 ...

  4. Android Mvvm模式的理解

    1. Mvvm是什么,Mvvm是怎么来的?Mvvm模式广泛应用在WPF项目开发中,使用此模式可以把UI和业务逻辑分离开,使UI设计人员和业务逻辑人员能够分工明确. Mvvm模式是根据MVP模式来的,可 ...

  5. stm32单片机下载方式

    引用   编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2015/1012/article_22873.html 第一种 ISP下载: 这里类似51. boot1 ...

  6. Scala入门到精通——第十九节 隐式转换与隐式參数(二)

    作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 隐式參数中的隐式转换 函数中隐式參数使用概要 隐式转换问题梳理 1. 隐式參数中的 ...

  7. [D3] Modify DOM Elements with D3 v4

    Once you can get hold of DOM elements you’re ready to start changing them. Whether it’s changing col ...

  8. POJ 1270 Following Orders 拓扑排序

    http://poj.org/problem?id=1270 题目大意: 给你一串序列,然后再给你他们部分的大小,要求你输出他们从小到大的所有排列. 如a b f g 然后 a<b ,b< ...

  9. windows SID

    显示SID whoami /user 修改SID C:\windows\system32\sysprep\sysprep.exe /generalize /oobe /reboot

  10. 【例题5-6 UVA 540 】Team Queue

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用两个队列模拟就好. 记录某个队在不在队列里面. 模拟 [错的次数] 在这里输入错的次数 [反思] 在这里输入反思 [代码] #in ...