6.3. 课: 网络分析

计算两点之间的最短距离是一项常见的GIS任务。可在 处理工具箱 中找到相关工具。

本课目标: 学习使用 网络分析 算法。

6.3.1. basic 跟我做: 工具和数据

您可以在 处理工具箱 ► 网络分析 菜单找到所有网络分析算法,在此您可以看到有许多可用的工具:

../../../_images/select_network_algorithms.png

打开工程 exercise_data/network_analysis/network.qgz ,它包含两个图层:

  • network_points

  • network_lines

network_lines 图层已经有了有助于理解道路网络的样式。

../../../_images/network_map.png

最短路径工具提供了计算网络两点之间最短或最快路径的方法,给定:

  • 在地图上选择的起点和终点

  • 在地图上选择的起点和从点图层获取的终点

  • 从点图层获取的起点和在地图上选择的终点

让我们开始吧。

6.3.2. basic 计算最短路径 (点到点)

网络分析 ► 最短路径 (点到点) 允许您计算地图上两个手动选择的点之间的最短距离。

在本例中,我们将计算两点之间的 最短 (不是最快) 路径。

  1. 打开 最短路径 (点到点) 算法

  2. 为 描绘网络的矢量图层 选择 network_lines

  3. 要计算的路径类型 使用 最短

    使用以下两个点作为分析的起点和终点:

    ../../../_images/start_end_point.png
  4. 单击 起点 (x, y) 旁边的 ... 按钮,选择图片中标记 起点 的位置,将添加单击点的坐标。

  5. 执行相同的操作,但选择标记 终点 的位置作为 终点 (x, y)

  6. 单击 运行 按钮:

    ../../../_images/shortest_point.png
  7. 将创建一个新的线图层,表示所选点之间的最短路径。取消勾选 network_lines 图层可以更好地查看结果:

    ../../../_images/shortest_point_result.png
  8. 打开输出图层的属性表。它包含三个字段,表示起点和终点的坐标以及 cost 。

    我们选择 最短 作为 要计算的路径类型 ,因此 cost 表示两个位置之间的 距离 (使用图层单位表示)。

    在我们的例子中,所选点之间的 最短 距离约为 1000 米:

    ../../../_images/shortest_point_attributes.png

既然您已经知道如何使用该工具,那就可以自由地测试其他位置了。

6.3.3. moderate 试一试 最快路径

使用与上一个练习相同的数据,尝试计算两点之间的最快路径。

从起点到终点需要多长时间?

6.3.4. moderate 跟我做: 高级选项

让我们探索一下网络分析工具的更多选项。在 之前的练习 中,我们计算了两点之间的 最快 路线。您可以想象,时间取决于行进 速度 。

我们将使用前面练习相同的图层、起点和终点。

  1. 打开 最短路径 (点到点) 算法

  2. 像之前一样填写 输入图层, 起点 (x, y) 和 终点 (x, y)

  3. 选择 最快 作为 要计算的路径类型

  4. 打开 高级参数 菜单

  5. 将 默认速度 (千米/小时) 从默认值 50 更改为 4

    ../../../_images/shortest_path_advanced.png
  6. 单击 运行

  7. 算法完成后,关闭对话框并打开输出图层的属性表。

    cost 字段包含依据您选择的速度参数的值。我们可以将 cost 字段从带有小数的小时数转换为可读性更强的 分钟 值。

  8. 单击 calculateField 图标打开字段计算器,将 cost 字段乘以60来添加新字段 minutes :

    ../../../_images/shortest_path_conversion.png

就是这样!现在您知道从一个点到另一个点需要多少分钟了。

6.3.5. hard 有限速的最短路径

网络分析工具箱还有其他有趣的选项。请看下面的地图:

../../../_images/speed_limit.png

考虑到每条道路的 速度限制 ,我们想知道 最快 的路线 (标签表示以 km/h 为单位的速度限制)。不考虑限速的情况下,最短路径当然是紫色路径。但是在那条路上限速是20千米/小时,而在绿色道路上您可以以100千米/小时的速度行驶!

正如在第一个练习中所做的那样,我们将使用 网络分析 ► 最短路径 (点到点) ,并手动选择起点和终点。

  1. 打开 网络分析 ► 最短路径 (点到点) 算法

  2. 为 描绘网络的矢量图层 参数选择 network_lines

  3. 选择 最快 作为 要计算的路径类型

  4. 单击 起点 (x, y) 旁边的 ... 按钮并选择起点。

  5. 对 终点 (x, y) 执行相同的操作

  6. 打开 高级参数 菜单

  7. 选择 速度 字段作为 速度字段 参数。通过此选项,算法将考虑每条道路的速度限制情况。

    ../../../_images/speed_limit_parameters.png
  8. 单击 运行 按钮

  9. 为更好地查看结果,请关闭 network_lines 图层

    ../../../_images/speed_limit_result.png

正如您所见,最快的路线并不对应最短的路线。

6.3.6. moderate 服务区 (从图层)

网络分析 ► 服务区 (从图层) 算法可以回答以下问题:给定一个点图层,给定距离或时间值,所有可达区域是什么?

备注

网络分析 ► 服务区 (从点) 是相同的算法,但它允许您手动选择地图上的点。

给定 250 米的距离,我们想知道从 network_points 图层的每个点在网络上可以走多远。

  1. 取消勾选除 network_points 以外的所有图层

  2. 打开 网络分析 ► 服务区 (从图层) 算法

  3. 为 描绘网络的矢量图层 选择 network_lines

  4. 为 包含起始点的矢量图层 选择 network_points

  5. 在 要计算的路径类型 中选择 最短

  6. 输入 250 作为 出行成本 参数

  7. 单击 运行 并关闭对话框

    ../../../_images/service_area.png

    输出图层表示从给定250米距离的点要素可以到达的最大路径:

    ../../../_images/service_area_result.png

很酷,不是吗?

6.3.7. 综上所述

现在您知道如何使用 网络分析 算法来解决最短和最快的路径问题。

我们现在准备对矢量图层数据执行一些空间统计。出发!

6.3.8. 下节引言

接下来,您将看到如何对矢量数据集运行空间统计算法。