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. Click on the ... button next to Start point (x, y) and choose the location tagged with Starting Point in the picture. Enable the snapping options for an accurate selection. The coordinates of the clicked point are added.

  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. Open the field calculator by clicking on the calculateField icon

  9. Add a new field to store the path cost in minutes.

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

That's it! Now you know how many minutes it will take to get from one point to the other one if the whole network speed is at 4 km/h.

6.3.5. hard 有限速的最短路径

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

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

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

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

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

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

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

  4. Select the Start point (x, y) and End point (x, y) as we did before

  5. 打开 高级参数 菜单

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

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

  8. 为更好地查看结果,请关闭 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. In Conclusion

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

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

6.3.8. What's Next?

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