Skip to content

30_使用表达式进行基础过滤与样式设置 QGIS3

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

使用表达式进行基础过滤与样式设置 (QGIS3)

贡献者: Steven Kim

表达式提供了一种强大的方式,可以动态地操作属性值、几何图形和变量,从而即时修改地图要素。本教程将介绍一些常用表达式及其在地图制作中的应用。

任务概述

我们将使用表达式从 Natural Earth 国家数据层中根据属性过滤要素,然后对它们进行样式设置,以创建一幅东南亚地图,其中每个国家都用不同的绿色色调表示。

../../_images/output8.png

获取数据

  1. Natural Earth 提供了国家的行政矢量数据。在下载页面,请在 Medium scale data 下查找 Cultural 选项。

../../_images/data127.png

  1. 下载 Admin 0 - Countries shapefile 文件。你会看到下载了 ne_50m_admin_0_countries.zip 文件,本教程将使用此文件。

../../_images/data29.png

为方便起见,您可以直接从下方下载上述数据层的副本:

ne_50m_admin_0_countries.zip

数据来源 [NATURALEARTH]

操作步骤

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

../../_images/1161.png

  1. 现在,一个新的数据层 ne_50m_admin_0_countries 将加载到 QGIS 中,你应该能看到一幅世界地图。点击打开图层样式面板。

../../_images/2133.png

  1. 将样式从“单一符号”切换到“基于规则”。

../../_images/370.png

  1. 双击默认规则,进入“编辑规则”对话框。

../../_images/443.png

  1. 要使用表达式进行过滤,请点击过滤器按钮 ε。

../../_images/537.png

  1. 你已进入“表达式构建器”对话框。此对话框提供了编写表达式的主要界面,可以通过多种方式访问。它包含左侧的输入框、中间的函数列表和右侧的帮助框。

../../_images/636.png

  1. 从中间列表中,展开“字段和值”,以探索 ne_50m_admin_0_countries 数据层中的字段。

../../_images/736.png

  1. 点击选择 SUBREGION 字段,然后在右侧面板中点击“所有唯一值”以查看所有唯一的子区域值。

../../_images/835.png

  1. 查看后,选择左侧的表达式输入框,输入以下表达式,然后点击确定。

bash "SUBREGION" = 'South-Eastern Asia'

../../_images/936.png

  1. 你应该能看到东南亚地区。在你的地图窗口中将视图平移到该区域并缩放居中。

../../_images/1043.png

  1. 现在我们已经使用了表达式来过滤要素,让我们使用表达式根据 MAPCOLOR7 字段为每个国家着色。在样式面板中向下滚动到“符号”选项,选择“简单填充”,这将显示填充颜色、线条颜色等样式选项。点击“填充颜色”旁边的“由数据定义覆盖”按钮,并在菜单中选择“编辑…”。

../../_images/1162.png

  1. 这将打开用于填充颜色的“表达式构建器”对话框。输入以下表达式:

bash set_color_part(ramp_color('Greens',scale_linear("MAPCOLOR7",1,7,0.2,1)),'alpha',100)

这个表达式包含多个函数:set_color_part() 用于设置 alpha 值或透明度,ramp_color() 用于应用颜色渐变,scale_linear() 用于使用 MAPCOLOR7 字段为每个国家设置颜色。在此示例中,我们使用绿色调,将 alpha 值设置为 255 中的 100,并将 MAPCOLOR7 从其原始范围 1-7 缩放至 0.2-1,这样与 ramp_color 配合会显得很好看。

../../_images/1246.png

注意

Natural Earth 数据层有几个名为 MAPCOLOR7、MAPCOLOR8 等的字段。这些字段包含用于为地图着色的数值,以便相邻的多边形不使用相同颜色。有 7、8、9 或 13 种颜色的版本。

  1. 点击确定退出对话框。在“编辑规则”对话框中,将“描边样式”更改为“无笔划”。你现在应该看到绿色的国家了。点击应用。

../../_images/1344.png

  1. 我们仅通过使用表达式对数据层进行过滤并应用颜色渐变,就创建了一幅样式精美的地图。

../../_images/1440.png


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