06_计算线长度和统计数据 QGIS3
原文链接: https://www.qgistutorials.com/en/docs/3/calculating_line_lengths.html
计算线长度和统计数据 (QGIS3)¶
QGIS 内置了多种函数和算法,可以根据要素的几何属性(如长度、面积、周长等)进行计算。本教程将展示如何使用 添加几何属性 工具,添加一个代表每个要素长度的列。
任务概述¶
给定一个北美洲的铁路线图层,我们将确定美国境内的铁路总长度。
你将学到的其他技能¶
- 使用表达式筛选要素。
- 使用统计面板计算和查看列统计信息。
获取数据¶
Natural Earth 提供了一个公共领域的铁路数据集。
从网站下载 北美补充数据集 压缩包。
为方便起见,你也可以通过下面的链接直接下载数据集的副本:
ne_10m_railroads_north_america.zip
数据来源 [NATURALEARTH]
操作步骤¶
- 在浏览器面板中找到下载好的
ne_10m_railroads_north_america.zip文件并展开。将ne_10m_railroads_north_america.shp文件拖拽到画布中。
- 你会看到一个新的图层
ne_10m_railroads_north_america被加载到图层面板中。该图层包含了整个北美洲的铁路线。现在,我们来计算每条线要素的长度。转到 处理 ‣ 工具箱。
- 搜索并找到 矢量几何 ‣ 添加几何属性 算法。双击启动它。
- 在添加几何属性对话框中,选择
ne_10m_railroads_north_america作为输入图层。输入图层的坐标系是 EPSG:4326 WGS84。这是一个以经纬度为坐标、以 WGS84 为椭球体、以度为单位的 地理坐标系。由于纬度和经度没有标准长度,你无法使用平面几何函数精确测量距离或面积。幸运的是,QGIS 提供了使用椭球几何计算距离的更好方法,这对于像本教程这样覆盖大面积区域的图层是最准确的方法。选择椭球面作为计算依据选项。点击运行。处理完成后,点击关闭。
注意
如果你的输入图层位于 投影坐标系 中,你可以选择 图层 CRS 选项进行计算。地方或区域性的投影坐标系旨在最小化其感兴趣区域内的变形,因此对此类计算更为准确。对于位于 地理坐标系(即经纬度坐标)中的图层,建议使用 椭球面 选项。椭球面长度计算的默认单位是 米,可以通过 项目 ‣ 属性 ‣ 常规 来更改。
- 你会看到一个新的图层
Added geom info加载到图层面板中。这是输入图层的副本,并添加了一个用于存放距离的新列。右键单击Added geom info图层并选择 打开属性表。
注意
添加几何属性 工具会根据输入图层是点、线还是面来添加不同的属性集。更多详情请参阅 QGIS 文档。
- 在属性表中,你会看到一个名为 length 的新列。该列包含每个线要素的长度(单位为米)。同时请注意 sov_a3 属性,它包含了每个要素的国家代码。关闭属性表窗口。
- 现在我们有了每个铁路线段落的长度,可以将它们相加得到铁路总长度。但根据问题描述,我们需要的是美国境内的铁路总长度,因此必须仅使用位于美国境内的线段。我们可以使用 sov_a3 列中的国家代码值来过滤图层。右键单击
Added geom info图层并选择 过滤。
- 在查询构建器对话框中,输入以下表达式并点击确定。
bash "sov_a3" = 'USA'
- 你会在图层面板中
Added geom info图层旁边看到一个过滤图标,这表明已对该图层应用了过滤器。你也可以直观地确认该图层现在只包含美国的线段。现在我们可以计算总和了。点击属性工具栏上的 显示统计摘要 按钮。
- 一个新的统计面板将会打开。选择
Added geom info图层和length列。
- 你将在面板中看到显示的各种统计数据。统计数据的单位与
length列的单位相同——米。让我们更改计算方式,改用公里。点击统计面板中字段下拉菜单旁边的表达式图标。
- 在表达式对话框中输入以下表达式,将长度转换为公里。
bash length / 1000
- 显示的 总和 值就是美国境内的铁路总长度。
如果你想提供反馈或分享学习本教程的体验,请在下方留言。(需要 GitHub 账户)












