QGIS具有内置函数和算法,可根据要素的几何形状(例如长度,面积,周长等)计算各种属性。本教程将介绍如何使用添加几何属性工具添加具有表示每个要素长度的值的列。
任务概述
给定北美铁路的折线图层,我们将确定美国铁路的总长度。
您将学习的其他技能
-
使用表达式过滤要素。
-
使用“统计信息”面板可以计算和查看列的统计信息。
获取数据
自然地球有一个公共领域的铁路数据集。
从门户下载北美补充 zip 文件。
为方便起见,您可以从以下链接直接下载数据集的副本:
ne_10m_railroads_north_america...zip
数据来源 [自然地球]
程序
-
在“浏览器”面板中找到下载的文件并将其展开。将文件拖到画布上。
ne_10m_railroads_north_america.zip
ne_10m_railroads_north_america.shp
-
您将看到在“图层”面板中加载了一个新图层。您将看到该图层具有表示整个北美铁路的线。现在,让我们计算每个线要素的长度。转到处理 ‣ 工具箱。
ne_10m_railroads_north_america
-
搜索并找到矢量几何 ‣ 添加几何属性算法。双击以启动它。
-
在添加几何属性对话框中,选择作为输入图层。输入图层的坐标参考系 (CRS) 为 EPSG:4326 WGS84。这是一个地理 CRS,纬度和经度作为坐标,WGS84 作为椭球体,度作为单位。由于纬度和经度没有标准长度,因此无法使用平面几何函数精确测量距离或面积。幸运的是,QGIS提供了一种使用椭圆体几何图形计算距离的更好方法,这对于跨越此类大面积的图层来说是最准确的方法。选择作为计算依据选项。单击运行。该过程完成后,单击“关闭”。
ne_10m_railroads_north_america
Ellipsoidal
注意
如果您的输入图层位于投影 CRS 中,则可以选择计算选项。局部或区域投影坐标系旨在最大程度地减少其感兴趣区域的变形,因此对于此类计算更准确。Layer CRS
-
您将看到在“图层”面板中加载了一个新图层。这是输入图层的副本,其中添加了用于距离的新列。右键单击图层,然后选择打开属性表。
Added geom info
Added geom info
注意
添加几何属性工具可根据输入图层是点、线还是面添加不同的属性集。有关更多详细信息,请参阅 QGIS 文档。
-
在属性表中,您将看到一个名为距离的新列。这包含每个线要素的长度(以米为单位)。另请注意,包含每个功能的国家/地区代码的 sov_a3 属性。关闭属性表窗口。
-
现在我们有了各个铁路线段的长度,我们可以将它们相加以找到铁路的总长度。但是,由于问题陈述要求我们需要美国的铁路总长度,我们必须只使用美国境内的路段。我们可以使用sov_a3列中的国家/地区代码值来过滤图层。右键单击图层,然后选择过滤器。
Added geom info
-
在“查询构建器”对话框中,输入以下表达式,然后单击“确定”。
"sov_a3" = 'USA'
-
您将看到“图层”面板中图层旁边出现一个滤镜图标,指示滤镜已应用于该图层。您还可以直观地确认图层现在仅包含美国的线段。现在我们准备计算总和。单击属性工具栏上的显示统计汇总按钮。
Added geom info
-
将打开一个新的统计信息面板。选择图层和列。
Added geom info
length
-
您将看到面板中显示的各种统计信息。统计单位与列的单位相同 - 米。让我们将计算更改为使用公里。单击统计数据面板中字段下拉菜单旁边的表达式图标。
length
-
在表达式对话框中输入以下表达式,将长度转换为千米。
length / 1000
-
显示的总和值是美国铁路的总长度。