原文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. spring @configuration使用

    http://yaobenzhang.blog.163.com/blog/static/2143951132014811105138824/

  2. PowerApps和Flow,Power BI开发

    为PowerApps和Flow,Power BI开发自定义连接器 作者:陈希章 发表于 2017年12月20日 前言 我在之前用了几篇文章来介绍新一代微软商业应用平台三剑客(PowerApps,Mic ...

  3. 4.auto详解

    #include <iostream> using namespace std; template <calss T1,class T2> auto add(T1 t1, T2 ...

  4. Windows Forms 窗体篇

    1,显示窗体 非模式: Form form = new Form(); form.Show(); 模式: Form form = new Form(); form.Show(); 2,拥有者窗体与附属 ...

  5. h.264硬件解码

    // H264HWDecoder.m // H264EncoderDecoder // // Created by lujunjie on 2016/11/28. // Copyright © 201 ...

  6. CSS外边距合并(塌陷/margin越界)

    原文 简书原文:https://www.jianshu.com/p/5f18f12cd162 大纲 1.什么是外边距合并?(折叠外边距) 2.外边距带来的影响 3.折叠的结果 4.产生折叠的原因 5. ...

  7. 原生js大总结十

    91.ajax的优点     a.提高运行效率   b.提高用户体验,让多件事情同时发生   c.在不刷新页面的情况下可以对局部数据进行加载和刷新       92.ajax请求的流程   1.创建通 ...

  8. UVA 10391 - Compound Words 字符串hash

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  9. Android Studio查看android源码

    Android Studio的默认版本在/Applications/Android Studio.app/Contents/info.plist中设置,默认没有1.8.如下: <key>J ...

  10. LA 3026 - Period KMP

    看题传送门:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...