重要
Translation is a community effort you can join. This page is currently translated at 82.14%.
6.3. Lesson: Network Analysis
计算两点之间的最短距离是一项常见的GIS任务。可在 处理工具箱 中找到相关工具。
本课目标: 学习使用 网络分析 算法。
6.3.1. ★☆☆ Follow Along: The Tools and the Data
您可以在
菜单找到所有网络分析算法,在此您可以看到有许多可用的工具:打开工程 exercise_data/network_analysis/network.qgz
,它包含两个图层:
network_points
network_lines
network_lines 图层已经有了有助于理解道路网络的样式。
最短路径工具提供了计算网络两点之间最短或最快路径的方法,给定:
在地图上选择的起点和终点
在地图上选择的起点和从点图层获取的终点
从点图层获取的起点和在地图上选择的终点
让我们开始吧。
6.3.2. ★☆☆ Calculate the shortest path (point to point)
允许您计算地图上两个手动选择的点之间的最短距离。
在本例中,我们将计算两点之间的 最短 (不是最快) 路径。
打开 最短路径 (点到点) 算法
为 描绘网络的矢量图层 选择 network_lines
要计算的路径类型 使用
最短
使用以下两个点作为分析的起点和终点:
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.执行相同的操作,但选择标记
终点
的位置作为 终点 (x, y)单击 运行 按钮:
将创建一个新的线图层,表示所选点之间的最短路径。取消勾选
network_lines
图层可以更好地查看结果:打开输出图层的属性表。它包含三个字段,表示起点和终点的坐标以及 cost 。
我们选择
最短
作为 要计算的路径类型 ,因此 cost 表示两个位置之间的 距离 (使用图层单位表示)。在我们的例子中,所选点之间的 最短 距离约为
1000
米:
既然您已经知道如何使用该工具,那就可以自由地测试其他位置了。
6.3.3. ★★☆ Try Yourself: Fastest path
使用与上一个练习相同的数据,尝试计算两点之间的最快路径。
从起点到终点需要多长时间?
Answer
打开
并将对话框填写为:确保 要计算的路径类型 是
最快
。单击 运行 并关闭对话框。
现在打开输出图层的属性表。 cost 字段包含两点之间的行进时间 (以时的小数形式表示):
6.3.4. ★★☆ Follow Along: Advanced options
让我们探索一下网络分析工具的更多选项。在 之前的练习 中,我们计算了两点之间的 最快 路线。您可以想象,时间取决于行进 速度 。
我们将使用前面练习相同的图层、起点和终点。
打开 最短路径 (点到点) 算法
像之前一样填写 输入图层, 起点 (x, y) 和 终点 (x, y)
选择
最快
作为 要计算的路径类型打开 高级参数 菜单
将 默认速度 (千米/小时) 从默认值
50
更改为4
单击 运行
算法完成后,关闭对话框并打开输出图层的属性表。
cost 字段包含依据您选择的速度参数的值。我们可以将 cost 字段从带有小数的小时数转换为可读性更强的 分钟 值。
Add a new field to store the path cost in minutes.
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. ★★★ Shortest path with speed limit
网络分析工具箱还有其他有趣的选项。请看下面的地图:
考虑到每条道路的 速度限制 ,我们想知道 最快 的路线 (标签表示以 km/h 为单位的速度限制)。不考虑限速的情况下,最短路径当然是紫色路径。但是在那条路上限速是20千米/小时,而在绿色道路上您可以以100千米/小时的速度行驶!
正如在第一个练习中所做的那样,我们将使用
,并手动选择起点和终点。打开
算法为 描绘网络的矢量图层 参数选择 network_lines
选择
最快
作为 要计算的路径类型Select the Start point (x, y) and End point (x, y) as we did before
打开 高级参数 菜单
选择 速度 字段作为 速度字段 参数。通过此选项,算法将考虑每条道路的速度限制情况。
单击 运行 按钮
为更好地查看结果,请关闭
network_lines
图层
正如您所见,最快的路线并不对应最短的路线。
6.3.6. ★★☆ Service area (from layer)
算法可以回答以下问题:给定一个点图层,给定距离或时间值,所有可达区域是什么?
备注
是相同的算法,但它允许您手动选择地图上的点。
给定 250
米的距离,我们想知道从 network_points 图层的每个点在网络上可以走多远。
取消勾选除
network_points
以外的所有图层打开
算法为 描绘网络的矢量图层 选择
network_lines
为 包含起始点的矢量图层 选择
network_points
在 要计算的路径类型 中选择
最短
输入
250
作为 出行成本 参数单击 运行 并关闭对话框
输出图层表示从给定250米距离的点要素可以到达的最大路径:
很酷,不是吗?
6.3.7. In Conclusion
现在您知道如何使用 网络分析 算法来解决最短和最快的路径问题。
我们现在准备对矢量图层数据执行一些空间统计。出发!
6.3.8. What's Next?
接下来,您将看到如何对矢量数据集运行空间统计算法。