zoukankan      html  css  js  c++  java
  • ArcGIS 网络分析[1.2] 利用1.1的线shp创建网络数据集/并简单试验最佳路径

     

     

    上篇已经创建好了线数据(shp文件格式)链接:点我

    这篇将基于此shp线数据创建网络数据集。

    在此说明:shp数据的网络数据集仅支持单一线数据,也就是说基于shp文件的网络数据集,只能有一个shp线文件参与。

    如何解决这个弊端呢?见下篇,利用地理数据库即可。

    本篇目录:

    1. 创建网络数据集 2. 给网络数据集命名

    3. 转弯 4. 连通性 5. 高程

    6. 网络数据集的阻抗属性

    7. 出行模式 8. 导航设置 9. 创建并构建网络数据集

    10. 试验最短路径


     1. 创建网络数据集!

    如图。

    2. 给网络数据集命名

    因为线shp的名称是Route,所以会自动命名为Route_ND(ND就是Network Dataset)

    在这我没用别的,就默认。

    3. ★ 转弯

    这一步关键,但是现在是最简单的创建模式(就是尽量减少复杂的步骤),直接默认用通用转弯,下一步即可。

    4. ★ 连通性

    这一步也很关键,这直接与线要素的创建习惯有关,见上一篇的折点问题,这里还不会看到效果,等实战到简单的最短路径分析时就知道了。

    在这里,连通策略使用按任意节点连通(就是按折点连通的意思)。不要问那么多,下一步。

    5. ★ 高程

    道路不可能一直平坦,但是这里作为示范,就不考虑这么多了,直接假设高程为0,选无即可。(好像shp也不能用高程)

    6. ★★ 网络数据集的阻抗(属性)

    这里必须谈一谈了。

    道路网,要求解最短的路径,是什么最短?有的同学可能说时间,也有的同学说长度。

    没错,这些就是阻抗,阻碍最小的那条路线,就叫最短路径。

    ArcGIS的网络数据集可以拥有多个阻抗属性,就如同要素类可以拥有多个字段一样。

    我们这里阻抗就用道路的长度——大白话说就是,假定道路畅通无阻,唯一影响我解算最短路径的就是道路的长度了。

    见下图:

    父窗口上的“长度”,即为网络数据集的一个阻抗属性,它的值怎么来?

    由右边的参数给其   赋值   为Route线要素的Length字段。也可以双击属性给其赋值。

    知道为什么要计算几何长度了吗?

    这里大有门路,不仅仅是长度这个阻抗,还有很多类型的阻抗能影响网络数据集。

    在这里,仅仅使用道路的长度作为阻抗,因为简单嘛。

    确定下一步。

    7. 出行模式

    直接下一步。

     

    8. ★ 导航设置

    这一步会影响导航窗口的单位和道路名称的显示,如下图设置:

    长度单位设置为千米。

    名称使用Route这个shp线文件的Name字段(就创建线数据的时候填写的道路名)

    确定下一步。

    9. 创建并构建网络数据集

    无视软媒魔方的浮动窗口。

    刚才设置的所有信息都会列举出来。此时只需下一步,即可创建网络数据集。

    软件会提示是否构建,选是。

    在这里多说两句:创建是无中生有的过程,构建是利用给定的各种参数(连通性阻抗什么的)进行逻辑组合的过程。

    创建只需这里一次,构建可以以后更新规则后再次进行。

    这里选否。我们只需把Route_ND网络数据集添加到数据框即可。

    创建完成后是这样的:

    多了一个.nd文件和一个网络数据集连通结点的shp文件。

    无视教程文件夹,那是我为了写这篇博客存放截图的文件夹。

    我们简单试验一下最佳路径:

    10.  试验最佳路径

    打开网络分析工具条,选择当前的网络数据集,创建路径图层,使用添加位置工具点两个点,按求解按钮:

    成功了!留心一下这里的蓝色结点,如果我改变起点终点位置:

    它可能会绕的非常大,为什么不是按红箭头的方式走呢?那样才是最快的呀?

    甚至会报错:起点和终点间没有连通。

    这是为什么呢?这里先卖个关子,这和线数据的质量有关,详情见这篇博客:点我

    在下一篇博客中,就使用地理数据库来构建网络数据集了。

    上篇使用shp文件创建网络数据集,然而在ArcGIS 9中就支持地理数据库了,数据库的管理更为科学强大。

    本篇就使用个人地理数据库进行建立网络数据集,线数据仍然可以是1.1中的线数据,但是我做了一些修改,读者仍然可以用1.1中制作的数据。

    1. 数据库的建立与数据的导入

    为什么要创建要素数据集呢?

    是因为地理数据库中的网络数据集是基于要素数据集的。

    这里就随便填写了,投影与Route的线shp文件一致。

    导入Route数据:

    这回我用了中文命名。

    注意,导入的数据集会自动计算几何长度(面还会计算面积),下面会提到。

    2. 创建网络数据集

    与上篇(点我)几乎一致,这里可以进行线和点要素类的多选,也可以选择网络数据集的版本:

    上面提及的自动计算几何,会体现为Shape_Length字段。

    值和Length字段是一致的,所以创建阻抗的时候选哪个都可以:

    构建完成就不截图了。

    3. 简单试验一下最短路径分析

    注意三角形的折点,这一篇的网络数据集使用的是经过我修改过后的道路线数据,与上一篇的线折点明显多了很多,凡是交点的地方都会有三角标号,说明这个地方是连通的。

    为什么?

    下一篇会解释这个的。

    导航窗口:

    The End。

  • 相关阅读:
    我的ZigBee学习之路
    php form表单post提交获取不到数据,而使用get提交能获取到数据 的解决办法
    Mac phpstorm破解版安装(简单,有效)
    Mac下phpstorm 浏览器出现 502 bad gateway 解决办法
    LayUI之table数据表格获取行、行高亮等相关操作
    钉钉自定义机器人配合SVN钩子事件进行消息的推送实践
    电脑无故失去焦点,罪魁祸首是谁?终极解决办法
    Java实现的电脑已连接WiFi热点的导入导出小工具 wifi备份
    C# DataGridView自定义分页控件
    C# DataGridView控件禁止拷贝数据
  • 原文地址:https://www.cnblogs.com/lihaijia/p/14543169.html
Copyright © 2011-2022 走看看