Skip to content

03_使用属性 QGIS3

原文链接: https://www.qgistutorials.com/en/docs/3/working_with_attributes.html

使用属性 (QGIS3)

GIS数据包含两部分——要素(features)和属性(attributes)。属性是关于每个要素的结构化数据。本教程将展示如何在QGIS中查看GIS矢量图层的属性并对其执行基础查询。

任务概述

本教程使用的数据集包含全球居民点信息。任务是通过查询,找出世界上所有人口超过100万的首都城市,并将结果子集保存为GeoJSON文件。

你将学到的其他技能

  • 使用表达式从图层中选择要素。
  • 使用属性工具栏。
  • 导出图层中选定的要素。

获取数据

Natural Earth 提供了 居民点 (Populated Places) 数据集。下载 简化版(字段较少)数据集

为方便起见,你也可以通过下面的链接直接下载该数据集的副本:

ne_10m_populated_places_simple.zip

数据来源 [NATURALEARTH]

操作步骤

  1. 在 QGIS 浏览器中定位 ne_10m_populated_places_simple.zip 文件并展开它。选择 ne_10m_populated_places_simple.shp 文件并将其拖拽到画布上。

../../_images/1165.png

  1. 新图层 ne_10m_populated_places_simple 现在将加载到 QGIS 中,你会看到代表世界居民点的许多点。QGIS画布的默认视图显示GIS图层的几何图形。每个点也有相关联的属性。让我们查看一下。定位到属性工具栏。此工具栏包含许多用于检查、查看、选择和修改图层属性的实用工具。

../../_images/2136.png

注意

如果你看不到该工具栏,可以通过 视图 ‣ 工具栏 ‣ 属性工具栏 来启用它。

  1. 点击属性工具栏上的识别按钮。选中该工具后,点击画布上的任意点。与该点关联的属性将显示在新的“识别结果”面板中。查看完不同点的属性后,可以点击关闭按钮。

../../_images/375.png

  1. 与其一次查看一个要素的属性,我们可以将它们以表格形式一起查看。点击属性工具栏上的打开属性表按钮。你也可以右键单击 ne_10m_populated_places_simple 图层并选择打开属性表。

../../_images/445.png

  1. 你可以水平滚动并找到 pop_max 列。此字段包含相关地点的人口数量。你可以双击字段标题以对该列进行降序排序。

../../_images/539.png

  1. 现在我们可以对这些属性进行查询了。QGIS使用类似SQL的表达式来执行查询。点击使用表达式选择要素按钮。

../../_images/638.png

  1. 在“按表达式选择”窗口中,展开字段和值部分并双击 pop_max 标签。你会注意到它被添加到了底部的表达式部分。如果你不确定字段的值,可以点击“全部唯一”按钮查看数据集中存在的属性值。对于本练习,我们要找出所有人口超过100万的要素。因此,如下所示完成表达式,然后点击选择要素,再点击关闭。

bash "pop_max" > 1000000

../../_images/738.png

注意

在QGIS表达式引擎中,双引号内的文本指代字段,单引号内的文本指代字符串值。

  1. 你会注意到属性表中现在有一些行被选中。标签窗口也会变化并显示选定要素的数量。

../../_images/837.png

  1. 关闭属性表窗口,返回到QGIS主窗口。你会注意到现在有一部分点以黄色呈现。这是我们查询的结果,被选中的点就是那些 pop_max 属性值大于 1000000 的点。

../../_images/938.png

  1. 让我们更新查询,增加一个条件,即该地点除了人口超过100万外,还应是首都。为了快速进入表达式编辑器,你可以使用属性工具栏中的“按表达式选择要素”按钮。

../../_images/1045.png

  1. 包含首都信息的字段是 adm0cap。值 1 表示该地点是首都。我们可以使用 and 运算符将此条件添加到之前的表达式中。输入如下表达式,点击选择要素,然后点击关闭。

bash "pop_max" > 1000000 and "adm0cap" = 1

../../_images/1166.png

  1. 返回到QGIS主窗口。现在你将看到被选中的点是一个更小的子集。这是第二个查询的结果,显示了数据集中所有既是国家首都又拥有超过100万人口的地点。

../../_images/1248.png

  1. 现在我们将把选定的要素导出为一个新图层。右键单击 ne_10m_populated_places_simple 图层,然后转到 导出 ‣ 将所选要素另存为...

../../_images/1346.png

  1. 你可以选择任意你喜欢的格式作为格式。对于本练习,我们将选择 GeoJSON。GeoJSON是一种广泛应用于网络地图的基于文本的格式。点击文件名字段旁边的 … 按钮,输入 populated_capitals.geojson 作为输出文件名。

../../_images/1442.png

  1. 输入数据有很多列。你可以只选择原始列的一个子集进行导出。展开选择要导出的字段及其导出选项部分。点击取消全选,然后勾选 namepop_max 列。点击确定。

../../_images/1536.png

  1. 一个新图层 populated_capitals 将被加载到QGIS中。你可以取消勾选 ne_10m_populated_places_simple 图层以隐藏它,并查看新导出图层的点。

../../_images/1633.png


如果你想提供反馈或分享学习此教程的体验,请在下方留言。(需要 GitHub 账户)