6.3. 课: 网络分析
计算两点之间的最短距离是一项常见的GIS任务。可在 处理工具箱 中找到相关工具。
本课目标: 学习使用 网络分析 算法。
6.3.1. 跟我做: 工具和数据
您可以在
菜单找到所有网络分析算法,在此您可以看到有许多可用的工具:打开工程 exercise_data/network_analysis/network.qgz
,它包含两个图层:
network_points
network_lines
network_lines 图层已经有了有助于理解道路网络的样式。
最短路径工具提供了计算网络两点之间最短或最快路径的方法,给定:
在地图上选择的起点和终点
在地图上选择的起点和从点图层获取的终点
从点图层获取的起点和在地图上选择的终点
让我们开始吧。
6.3.2. 计算最短路径 (点到点)
允许您计算地图上两个手动选择的点之间的最短距离。
在本例中,我们将计算两点之间的 最短 (不是最快) 路径。
打开 最短路径 (点到点) 算法
为 描绘网络的矢量图层 选择 network_lines
要计算的路径类型 使用
最短
使用以下两个点作为分析的起点和终点:
单击 起点 (x, y) 旁边的 ... 按钮,选择图片中标记
起点
的位置,将添加单击点的坐标。执行相同的操作,但选择标记
终点
的位置作为 终点 (x, y)单击 运行 按钮:
将创建一个新的线图层,表示所选点之间的最短路径。取消勾选
network_lines
图层可以更好地查看结果:打开输出图层的属性表。它包含三个字段,表示起点和终点的坐标以及 cost 。
我们选择
最短
作为 要计算的路径类型 ,因此 cost 表示两个位置之间的 距离 (使用图层单位表示)。在我们的例子中,所选点之间的 最短 距离约为
1000
米:
既然您已经知道如何使用该工具,那就可以自由地测试其他位置了。
6.3.3. 试一试 最快路径
使用与上一个练习相同的数据,尝试计算两点之间的最快路径。
从起点到终点需要多长时间?
回答
打开
并将对话框填写为:确保 要计算的路径类型 是
最快
。单击 运行 并关闭对话框。
现在打开输出图层的属性表。 cost 字段包含两点之间的行进时间 (以时的小数形式表示):
6.3.4. 跟我做: 高级选项
让我们探索一下网络分析工具的更多选项。在 之前的练习 中,我们计算了两点之间的 最快 路线。您可以想象,时间取决于行进 速度 。
我们将使用前面练习相同的图层、起点和终点。
打开 最短路径 (点到点) 算法
像之前一样填写 输入图层, 起点 (x, y) 和 终点 (x, y)
选择
最快
作为 要计算的路径类型打开 高级参数 菜单
将 默认速度 (千米/小时) 从默认值
50
更改为4
单击 运行
算法完成后,关闭对话框并打开输出图层的属性表。
cost 字段包含依据您选择的速度参数的值。我们可以将 cost 字段从带有小数的小时数转换为可读性更强的 分钟 值。
就是这样!现在您知道从一个点到另一个点需要多少分钟了。
6.3.5. 有限速的最短路径
网络分析工具箱还有其他有趣的选项。请看下面的地图:
考虑到每条道路的 速度限制 ,我们想知道 最快 的路线 (标签表示以 km/h 为单位的速度限制)。不考虑限速的情况下,最短路径当然是紫色路径。但是在那条路上限速是20千米/小时,而在绿色道路上您可以以100千米/小时的速度行驶!
正如在第一个练习中所做的那样,我们将使用
,并手动选择起点和终点。打开
算法为 描绘网络的矢量图层 参数选择 network_lines
选择
最快
作为 要计算的路径类型单击 起点 (x, y) 旁边的 ... 按钮并选择起点。
对 终点 (x, y) 执行相同的操作
打开 高级参数 菜单
选择 速度 字段作为 速度字段 参数。通过此选项,算法将考虑每条道路的速度限制情况。
单击 运行 按钮
为更好地查看结果,请关闭
network_lines
图层
正如您所见,最快的路线并不对应最短的路线。
6.3.6. 服务区 (从图层)
算法可以回答以下问题:给定一个点图层,给定距离或时间值,所有可达区域是什么?
备注
是相同的算法,但它允许您手动选择地图上的点。
给定 250
米的距离,我们想知道从 network_points 图层的每个点在网络上可以走多远。
取消勾选除
network_points
以外的所有图层打开
算法为 描绘网络的矢量图层 选择
network_lines
为 包含起始点的矢量图层 选择
network_points
在 要计算的路径类型 中选择
最短
输入
250
作为 出行成本 参数单击 运行 并关闭对话框
输出图层表示从给定250米距离的点要素可以到达的最大路径:
很酷,不是吗?
6.3.7. 综上所述
现在您知道如何使用 网络分析 算法来解决最短和最快的路径问题。
我们现在准备对矢量图层数据执行一些空间统计。出发!
6.3.8. 下节引言
接下来,您将看到如何对矢量数据集运行空间统计算法。