ArcGIS计算城市间最短距离(多元最短路径)

0. 最短路径

  • 数据结构中,图的相关知识中的一个重要知识点就是计算最短路径的问题。期中包括两个解决办法:
    1. 单源最短路径: Dijkstra算法.
    2. 多源最短路径:Floyd算法.
  • 问题:使用上述算法计算出来的最短路径长度,一般属于直线距离,如果用于计算城市间的最短距离,则不符合实际情况。
  • 城市间的各种联系往往基于路网发生,因此我们需要使用路网的距离作为两个城市间的实际距离。
    ArcGIS中提供了计算路网距离的方法,现以湖北省为例,使用ArcGIS计算各地级市之间的最短距离。

1. 准备工作

数据准备(以湖北省为例)

  • 准备湖北省边界、湖北各个市的边界和地级市驻点数据
  • 准备路网数据(国道、省道)
    链接:https://pan.baidu.com/s/1GVGuVsl-iEhqN25XiD9eVw 提取码:gi7h

环境

  • ArcGIS 10.2
  • 激活网络分析模块
    • 菜单 >> 自定义 >> 扩展模块 >> 勾选Network Analyst
      Customer >> Extensions >> Network Analyst
      在这里插入图片描述
  • 加载网络分析工具条
    • 工具栏空白处 >> 右键 >> 选择: Network Analyst
      在这里插入图片描述

2. 步骤

2.1 截取湖北省数据

2.1.1 新建地图(多源最短路径-湖北)

在这里插入图片描述

2.1.2 内容列表窗口>>图层>>右键>>添加数据, 再全国行政区划分中导入省和市的矢量图

在这里插入图片描述
在这里插入图片描述

2.1.3 对图层中的省点击右键>>打开属性表

在这里插入图片描述
全国各省列表, 名字乱码了, 按照邮编找>> 选择420000这一行(湖北省)
在这里插入图片描述

2.1.4 导出湖北省的边界

右键点击"省"图层>>数据>>导出数据
在这里插入图片描述
导出: 所选要素 >> 输出要素类: 找到保存位置, shapfile类型文件, 命名 >> 确定
在这里插入图片描述
将导出数据添加道图层中: 是 >> 删除原省份图层
在这里插入图片描述

2.1.5 导出地级市边界

"市"图层 >> 右键 >> 打开属性表 >> 选择多行(邮编420000,第三列)
在这里插入图片描述
“市"图层 >> 右键 >> 数据 >> 导出数据 >> 保存到"湖北省-市界.shp"中 >> 在图层中显示 >> 删除原"市图层”
在这里插入图片描述

2.2 创建网络数据集

2.2.1 创建文件数据库

  • 界面右侧 >> 目录工具栏 >> 右键 >> 新建 >> 文件夹 >> 文件数据库
  • 文件数据库 >> 右键 >> 新建 >> 文件地理数据数据 >> 湖北-交通
  • 湖北-交通.gdb >> 右键 >> 新建 >> 要素数据集 >> 名称: 路网 >> 坐标系: WGS 1984 >> … >> 完成
    在这里插入图片描述

2.2.2 导入要素类

路网 >> 右键 >> 导入 >> 要素类(单个) >> 输入要素: 选择湖北省国道中的.shp文件 >> 输出要素类: 国道 >> 确定
在这里插入图片描述
再导入省道的数据 >> 同意添加道图层
在这里插入图片描述

2.2.3 创建网络数据集

路网 >> 右键 >> 新建 >> 网络数据集(N) >> 命名: 网络_ND >> 勾选国道和省道 >>> 下一步 >>> 完成 >> 立即构建 >> 添加到地图
在这里插入图片描述

2.3 计算城市间网络距离

2.3.1 打开网络分析窗口

在这里插入图片描述

2.3.2 创建OD成本矩阵

在这里插入图片描述
左侧显示网络分析窗口
在这里插入图片描述

2.3.3 添加起始点和目的地点

a) 在内容列表中加入地级市的驻点, 作为参考确定起始点, 仅留下"地级市"和"路网_ND"两个图层.
在这里插入图片描述
b) 在网络分析工具栏上选择创建网络位置工具在这里插入图片描述
c) 网络分析窗口中选择起始点, 用鼠标点击地级市的位置, 添加18个点
在这里插入图片描述
d) 给这18个点矫正位置, 并重新命名
内容列表 >> “地级市"图层 >> 右键 >> 打开属性表
在这里插入图片描述
选择第一行, 图层上相应的点会高亮
在这里插入图片描述
在网络分析工具栏上点击"选择/移动网络位置"按钮
在这里插入图片描述
选择图层上刚才高亮显示的城市点, 在网络分析窗口中的起始点列表会高亮显示
在这里插入图片描述
双击修改其名字为"鄂州市” >> 确定
在这里插入图片描述
右键点击鄂州市 >> 缩放至所选要素
在这里插入图片描述
找到该点所在位置 >> 选择该点 >> 按住键盘上的"1" >> 将其托到附近的线上
在这里插入图片描述
完成18个地级市的起始点创建
在这里插入图片描述
e) 增加目的地, 我们要计算的是多源最短路径, 所以起始点也是终点, 将上面的18个点全选, 按住ctrl拖到目的地点中, 增加18个目的地点.
在这里插入图片描述

2.3.4 生成OD 成本矩阵

点击网络分析工具栏中的求解
在这里插入图片描述
会生成18*18 = 324条最短路径的线
在这里插入图片描述
这显然不是我们想要的表现形式. 我们先在内容列表上把OD成本矩阵的图层取消, 下一步我们进行OD成本矩阵的可视化展示.

2.3.5 导出OD成本矩阵

  1. 打开ArcToolbox在这里插入图片描述
    选择里面的转换工具>> Excel >> 表转Excel
    在这里插入图片描述
    在输入表的下拉列表中选择OD成本矩阵中的线 >> 选择输出文件的路径和名字>> 点击确定在这里插入图片描述
    期中 Tota_长度, 为两个城市间最短路径的长度(单位: 米).
    在这里插入图片描述

2.4 可视化

2.4.1 生成城市点对

想要画出路径图, 需要知道路径的起点和终点

  1. 导出路径的起点, 使用要素折点转点工具, ArcToolbox >> 数据管理工具 >> 要素 >> 要素折点转点工具.
    选取输入要素下拉列表中OD成本矩阵下的"线" >> 点类型选择START >> 确定
    在这里插入图片描述
  2. 导出路径的终点
    选取输入要素下拉列表中OD成本矩阵下的"线" >> 点类型选择END >> 确定
    在这里插入图片描述
    内容中增加了如下内容
    在这里插入图片描述

2.4.2 新建路径

  1. 选择网络分析中的新建路径
    在这里插入图片描述
    网络分析窗口中增加了路径窗口
    在这里插入图片描述
  2. 增加停靠点
    右键点击停靠点 >> 加载位置
    在这里插入图片描述
    增加起点: 加载自下拉列表中选择,刚才添加的START的要素 >> name字段设为空 >> RouteName字段设为 name
    在这里插入图片描述
    增加终点: 加载自下拉列表中选择,刚才添加的END的要素 >> name字段设为空 >> RouteName字段设为 name
    增加了324条路径的648个停靠点
    在这里插入图片描述

2.4.3 生成路径

点击Network工具栏上的求解.生成路径
在这里插入图片描述
生成并显示了324条最短路径
在这里插入图片描述

3 收尾

加上省界和市界的图层, 生成最终效果图
在这里插入图片描述

编辑后的数据下载

猜你喜欢

转载自blog.csdn.net/rexxa/article/details/107611676
今日推荐