16.1. 向量属性对话框

这个 Layer Properties 矢量层的对话框提供常规设置来管理地图中层要素的外观(符号系统、标签、图表)、与鼠标的交互(操作、地图提示、表单设计)。它还提供有关该层的信息。

要访问 Layer Properties 对话框:

  • Layers 面板中,双击该图层或右键单击并选择 Properties... 从弹出式菜单;

  • Layer ► Layer Properties... 选定层时的菜单。

向量 Layer Properties 对话框提供以下部分:

元数据 Information

系统 Source

符号学 Symbology :sup:` [1] `

标记单个 Labels :sup:` [1] `

标签蒙版 Mask :sup:` [1] `

三维 3D View :sup:` [1] `

图解 Diagrams

源字段 Fields

表单视图 Attributes Form

会合 Joins

辅助存储 Auxiliary Storage

行动 Actions

显示 Display

渲染 Rendering

时态 Temporal

表达式 Variables

高程比例尺 Elevation

编辑元数据 Metadata

相依性 Dependencies

传说 Legend

覆盖层 QGIS Server

数字化 Digitizing

External plugins :sup:` [2] `制表符

[1] Also available in the Layer styling panel

[2] External plugins 您安装的可以选择将选项卡添加到此对话框中。本文档中未介绍这些内容。请参阅他们的文档。

小技巧

Share full or partial properties of the layer styles

这个 Style 对话框底部的菜单允许您从多个目标(文件、剪贴板、数据库)导入或导出这些或部分属性。看见 管理自定义样式

备注

因为属性(符号系统、标签、操作、默认值、表单...)嵌入的层(请参见 嵌入外部项目中的图层 )是从原始项目文件中提取的,为了避免可能会破坏此行为的更改,这些层的层属性对话框不可用。

16.1.1. 信息属性

这个 元数据 Information 选项卡是只读的,表示快速获取当前层上的汇总信息和元数据的有趣位置。提供的信息包括:

  • 常规,如项目中的名称、源路径、辅助文件列表、上次保存的时间和大小、使用的提供者

  • 基于提供的层:存储格式、几何类型、数据源编码、范围、要素计数...

  • 坐标参考系:名称、单位、方法、精度、参考(即它是静态的还是动态的)

  • 选自 filled metadata :访问、范围、链接、联系人、历史记录...

  • 并与其几何形状相关(空间范围、CRS...)或其属性(字段的数量、每个的特征...)。

16.1.2. 源属性

系统 使用此选项卡可定义矢量层的常规设置。

../../../_images/vector_source_menu.png

图 16.1 矢量图层属性对话框中的源选项卡

16.1.2.1. 设置

  • 设置一个 Layer name 不同于将用于标识项目中的图层的图层文件名(在 Layers Panel ,带有表达式,在打印布局图例中,...)

  • 根据数据格式,选择 Data source encoding 如果没有被QGIS正确检测到。

16.1.2.2. 坐标参考系和几何图形

  • 显示该层的 Assigned Coordinate Reference System (CRS) 。您可以通过在下拉列表中选择最近使用的CRS或单击 集合投影 Select CRS 按钮(请参见 坐标参考系选择器 )。仅当应用到层的CRS是错误的或未应用CRS时,才使用此过程。如果希望将数据重新投影到另一个CRS,请使用处理或中的图层重新投影算法 Save it into another layer

  • Create spatial index (仅适用于OGR支持的格式)。

  • Update extents 层的信息。

16.1.2.3. 查询构建器

查询构建器对话框可通过 Query Builder 按钮的底部。 Source 层属性对话框中的选项卡,位于 Provider feature filter 一群人。

Query Builder提供了一个界面,允许您使用类似SQL的WHERE子句定义层中的要素子集,并在主窗口中显示结果。只要查询处于活动状态,则只有与其结果对应的要素在项目中可用。

You can use one or more layer attributes to define the filter in the Query Builder. The use of more than one attribute is shown in 图 16.2. In the example, the filter combines the attributes

  • toa (DateTime field: cast("toa" as character) > '2017-05-17' and cast("toa" as character) < '2019-12-24T18:00:00'),

  • name (String field: "name" > 'S') and

  • FID (Integer field: FID > 10)

使用AND、OR和NOT运算符和括号。此语法(包括 toa 字段)适用于GeoPackage数据集。

过滤器是在数据提供程序(OGR、PostgreSQL、MS SQL Server...)上进行的水平。因此,语法取决于数据提供程序(例如,ESRI shapefile格式不支持DateTime)。完整的表达式::

cast("toa" as character) > '2017-05-17' AND
cast("toa" as character) < '2019-12-24T18:00:00' AND
NOT ("name" > 'S' OR FID > 10)

您也可以打开 Query Builder 对话框中使用 Filter... 选项,可从 Layer 菜单或层上下文菜单。这个 FieldsValuesOperators 对话框中的部分帮助您构造在 Provider specific filter expression 盒。

../../../_images/queryBuilder.png

图 16.2 查询构建器

这个 Fields 列表包含该层的所有字段。要将属性列添加到SQL WHERE子句字段,请双击其名称或直接将其键入到SQL框中。

这个 Values 框架列出了当前选定字段的值。要列出某个字段的所有唯一值,请单击 All 纽扣。若要改为列出列的前25个唯一值,请单击 Sample 纽扣。要将值添加到SQL WHERE子句字段,请在值列表中双击值的名称。您可以使用值框架顶部的搜索框轻松浏览和查找列表中的属性值。

这个 Operators 部分包含所有可用的运算符。要将运算符添加到SQL WHERE子句字段,请单击相应的按钮。关系运算符( => ,...),字符串比较运算符 (LIKE )和逻辑运算符 (ANDOR ,...)都是可用的。

这个 Test 按钮帮助您检查查询,并显示一个消息框,其中包含满足当前查询的要素数量。使用 Clear 按钮擦除SQL查询并将层恢复到其原始状态(即,完全加载所有功能)。这是可能的 Save... 将查询作为 .QQF 文件,或 Load... 从文件到对话框中的查询。

应用过滤器时,QGIS会将生成的子集行为视为整个图层。例如,如果对‘Borough’应用了上面的筛选器 ("TYPE_2" = 'Borough' ),则不能显示、查询、保存或编辑 Anchorage ,因为那是一个‘市政府’,因此不是子集的一部分。

小技巧

Filtered layers are indicated in the Layers Panel

Layers 面板中,已过滤的层以 指示器过滤器 Filter 旁边的图标指示当鼠标悬停在按钮上时使用的查询。双击该图标将打开 Query Builder 用于编辑的对话框。这也可以通过 Layer ► Filter... 菜单。

16.1.3. 符号系统属性

这个 符号学 Symbology 选项卡为您提供了用于渲染和符号化矢量数据的全面工具。您可以使用所有矢量数据通用的工具,以及为不同类型的矢量数据设计的特殊符号化工具。但是,所有类型都共享以下对话框结构:在上半部分,您有一个小部件,可帮助您准备用于要素的分类和符号,在下半部分, 层渲染 小工具。

小技巧

Switch quickly between different layer representations

使用 Styles ► Add 菜单的底部 Layer Properties 对话框中,您可以根据需要保存任意多个样式。样式是一个层的所有属性(如符号系统、标注、图表、字段表单、操作...)的组合如你所愿。然后,只需从中的图层的快捷菜单中切换样式 Layers Panel 以自动获取数据的不同表示形式。

小技巧

Export vector symbology

您可以选择将矢量符号系统从QGIS导出到Google*.kml, * .dxf和MapInfo*.tag文件。只需打开层的鼠标右键菜单并点击 Save As... 若要指定输出文件名及其格式,请执行以下操作。在该对话框中,使用 Symbology export 菜单将符号系统另存为 Feature symbology ► 或作为 Symbol layer symbology ► 。如果您使用过符号层,则建议使用第二个设置。

16.1.3.1. 要素渲染

渲染器负责将特征与正确的符号一起绘制。无论层几何图形类型如何,都有四种常见类型的渲染器:单一符号、分类、分级和基于规则。对于点层,有点置换、点簇和热图渲染器可用,而多边形层也可以使用合并的要素、反多边形和2.5D渲染器进行渲染。

没有连续颜色渲染器,因为它实际上只是渐变渲染器的特例。分类和分级渲染器可以通过指定符号和色带来创建-它们将适当地设置符号的颜色。对于每种数据类型(点、直线和多边形),矢量符号图层类型均可用。根据所选的渲染器,该对话框提供了不同的附加部分。

备注

如果在设置矢量层的样式时更改了渲染器类型,则将保留对元件所做的设置。请注意,此过程仅适用于一次更改。如果您重复更改呈现器类型,则符号的设置将丢失。

单个符号渲染器

这个 单一符号 Single Symbol 渲染器用于使用单个用户定义的符号来渲染层的所有特征。看见 符号选择器 有关符号表示的更多信息,请参见。

../../../_images/singlesymbol_ng_line.png

图 16.3 单个符号线属性

没有符号呈现器

这个 空符号 No Symbols 渲染器是单个符号渲染器的特殊用例,因为它将相同的渲染应用于所有功能。使用此渲染器,不会为要素绘制符号,但仍将显示标签、示意图和其他非符号部分。

仍然可以在画布中的层上进行选择,并且所选要素将使用默认符号进行渲染。还将显示正在编辑的要素。

对于只想显示标签或图表的层,这是一种便捷的快捷方式,避免了使用完全透明的填充/边框来渲染符号来实现这一点。

分类渲染器

这个 分类符号 Categorized 渲染器用于使用用户定义的符号来呈现层的特征,该符号的纵横比反映了字段或表达式的离散值。

../../../_images/categorysymbol_ng_line.png

图 16.4 分类符号化选项

要对层使用分类的符号系统,请执行以下操作:

  1. 选择 Value 分类:它可以是现有字段或 expression 您可以在框中键入或使用关联的 表达式 纽扣。使用表达式进行分类可避免创建仅用于符号系统目的的字段(例如,如果您的分类标准是从一个或多个属性派生的)。

    用于对要素进行分类的表达式可以是任何类型;例如,它可以:

    • 可以做个对比。在这种情况下,QGIS返回值 1 ( True )和 0 ( False )。下面是一些示例:

      myfield >= 100
      $id = @atlas_featureid
      myfield % 2 = 0
      within( $geometry, @atlas_geometry )
      
    • 组合不同的字段:

      concat( field_1, ' ', field_2 )
      
    • 是对字段的计算:

      myfield % 2
      year( myfield )
      field_1 + field_2
      substr( field_1, -3 )
      
    • 用于将线性值转换为离散类,例如:

      CASE WHEN x > 1000 THEN 'Big' ELSE 'Small' END
      
    • 将多个离散值合并为单个类别,例如:

      CASE
      WHEN building IN ('residence', 'mobile home') THEN 'residential'
      WHEN building IN ('commercial', 'industrial') THEN 'Commercial and Industrial'
      END
      

    小技巧

    虽然您可以使用任何类型的表达式对要素进行分类,但对于某些复杂的表达式,使用该表达式可能会更简单 rule-based rendering

  2. 配置 Symbol ,它将用作所有类的基本符号;

  3. 注明 Color ramp 即从中选择应用于每个符号的颜色的颜色范围。

    除了以下常见选项外, color ramp widget ,您可以将 未选中 Random Color Ramp 到各个类别。您可以点击 Shuffle Random Colors 条目以在您不满意时重新生成一组新的随机颜色。

  4. 然后点击 Classify 按钮从提供的字段或表达式的不同值创建类。

  5. Apply 如果设置为 live update 未使用,并且地图画布上的每个要素都将使用其类别的符号进行渲染。

    默认情况下,QGIS会将一个 all other values 类添加到列表中。在开始时为空时,这个类被用作不属于其他类的任何要素的默认类(例如,当您为分类字段/表达式创建具有新值的要素时)。

可以对默认分类进行进一步的调整:

  • 你可以的 符号系统添加 Add 新的类别, 符号系统移除 Remove 选定类别或 Delete All 他们中的一员。

  • 可以通过取消选中类名称左侧的复选框来禁用类;相应的要素将隐藏在地图上。

  • 拖放行以重新排序类

  • 要更改类的符号、值或图例,请双击该项。

在所选项目(S)上单击鼠标右键会显示上下文菜单,以执行以下操作:

  • Copy SymbolPaste Symbol ,这是一种将项目的表示形式应用于其他人的便捷方式

  • Change Color... 选定符号的名称(S)

  • Change Opacity... 选定符号的名称(S)

  • Change Output Unit... 选定符号的名称(S)

  • Change Width... 所选线符号的位置(S)

  • Change Size... 选定点符号的(S)

  • Change Angle... 选定点符号的(S)

  • Merge Categories :将多个选定类别分组为一个类别。这允许对具有大量类别的层进行更简单的样式设置,其中可以将众多不同的类别分组为应用于多个值的更小且更易于管理的类别集。

    小技巧

    由于为合并类别保留的符号是列表中最顶层的选定类别之一,因此您可能希望在合并之前将其符号要重新使用的类别移到顶部。

  • Unmerge Categories 之前被合并的

创建的类还以树层次结构显示在 Layers 面板。双击地图图例中的条目以编辑指定的符号。右键单击,您将看到一些 more options

这个 Advanced 通过菜单可以访问用于加快分类或微调元件渲染的选项:

  • Match to saved symbols :使用 symbols library 为每个类别分配一个符号,该符号的名称代表该类别的分类值

  • Match to symbols from file... :提供一个带有符号的文件,为每个类别分配一个符号,其名称代表该类别的分类值

  • Symbol levels... 以定义符号呈现的顺序。

分级渲染器

这个 毕业符号 Graduated 渲染器用于渲染层中的所有要素,使用用户定义的符号,其颜色或大小反映了所选要素的属性分配给类。

与分类呈现器一样,分级呈现器允许您从指定的列定义旋转和大小比例。

此外,与分类的渲染器类似,它允许您选择:

  • 这个 Value 分类:它可以是现有字段或 expression 您可以在框中键入或使用关联的 表达式 纽扣。使用用于分级的表达式可避免创建仅用于符号系统目的的字段(例如,如果您的分类标准是从一个或多个属性派生的)。

  • 符号(使用符号选择器对话框)

  • 图例格式和精度

  • 用于更改符号的方法:颜色或大小

  • 如果选择了颜色方法,则颜色(使用色带列表)

  • 大小(使用尺寸域及其单位)

然后,您可以使用直方图选项卡,该选项卡显示指定字段或表达式中的值的交互式直方图。可以使用直方图小部件移动或添加类中断。

备注

您可以使用统计摘要面板获取有关矢量层的更多信息。看见 统计摘要面板

返回到类选项卡,您可以指定类的数量以及分类类中要素的模式(使用模式列表)。可用的模式包括:

  • 相等计数(分位数):每个类都有相同数量的元素(框图的概念)。

  • 相等间隔:每个班级将具有相同的大小(例如,值从1到16,四个班级,每个班级的大小为四)。

  • 对数刻度:适用于取值范围较大的数据。用于低值的窄类和用于大值的宽类(例如,对于具有范围的十进制数 [0..100] 和两个班,第一个班从0到10,第二个班从10到100)。

  • 自然间歇(Jenks):每个类别内的差异被最小化,而类别之间的差异被最大化。

  • Pretty Break:计算一个由大约n+1个等间距的精确值组成的序列,这些值覆盖了x中的值范围。选择这些值时,它们是10的1、2或5倍。(基于R统计环境https://www.rdocumentation.org/packages/base/topics/pretty).中的Pretty

  • 标准差:根据值的标准差来构建类。

控件中间部分的列表框 Symbology 选项卡列出了将呈现的类及其范围、标签和符号。

点击 Classify 按钮以使用所选模式创建类。可以禁用每个类,取消选中类名称左侧的复选框。

要更改类别的符号、值和/或标签,只需双击要更改的项目。

在所选项目(S)上单击鼠标右键会显示上下文菜单,以执行以下操作:

  • Copy SymbolPaste Symbol ,这是一种将项目的表示形式应用于其他人的便捷方式

  • Change Color... 选定符号的名称(S)

  • Change Opacity... 选定符号的名称(S)

  • Change Output Unit... 选定符号的名称(S)

  • Change Width... 所选线符号的位置(S)

  • Change Size... 选定点符号的(S)

  • Change Angle... 选定点符号的(S)

The example in 图 16.5 shows the graduated rendering dialog for the major_rivers layer of the QGIS sample dataset.

../../../_images/graduatedsymbol_ng_line.png

图 16.5 分级符号化选项

创建的类还以树层次结构显示在 Layers 面板。双击地图图例中的条目以编辑指定的符号。右键单击,您将看到一些 more options

比例符号与多元分析

比例符号和多元分析不是符号系统渲染下拉列表中提供的渲染类型。然而,对于 data-defined override 选项应用于之前的任何渲染选项,QGIS允许您使用此类表示来显示点和线数据。

Creating proportional symbol

要应用比例渲染,请执行以下操作:

  1. 首先将应用于层 single symbol renderer

  2. 然后将符号设置为应用于要素。

  3. 选择符号树上层的项,然后使用 数据定义 Data-defined override button 紧挨着 Size (对于点图层)或 Width (对于线条层)选项。

  4. 选择一个字段或输入一个表达式,对于每个要素,QGIS会将输出值应用于该特性,并按比例调整地图画布中符号的大小。

    如果需要,可以使用 Size assistant... 选项中的 数据定义 菜单以应用一些变换(指数、Flannery...)到符号大小重新缩放(请参见 使用数据定义的助手界面 以了解更多详细信息)。

可以选择将比例符号显示在 Layers panel 以及 print layout legend item :展开 Advanced 的主对话框底部的下拉列表 Symbology 选项卡,然后选择 Data-defined size legend... 要配置图例项(请参见 数据定义大小图例 有关详细信息)。

Creating multivariate analysis

多变量分析渲染可以帮助您评估两个或更多变量之间的关系,例如,一个变量可以用色带表示,而另一个变量可以用大小表示。

在QGIS中创建多变量分析的最简单方法是:

  1. 首先在一个层上应用分类或分级渲染,对所有类使用相同类型的符号。

  2. 然后,在类上应用比例符号系统:

    1. 按下 Change 分类框架上方的按钮:您将获得 符号选择器 对话框中。

    2. 重新调整符号层的大小或宽度。 数据定义 data defined override 小部件,如上图所示。

与比例符号类似,可使用将缩放的符号系统添加到层树中分类或分级类符号的顶部 data defined size legend 特写。并且这两种表示在打印版面图例项中也可用。

../../../_images/multivariate_example.png

图 16.6 具有缩放大小图例的多变量示例

基于规则的呈现器

规则是QGIS expressions 用于根据要素的属性或特性来区分要素,以便对其应用特定的渲染设置。规则可以嵌套,如果要素属于所有较高嵌套级别,则它们属于一个类(S)。

这个 基于规则的符号 Rule-based 因此,渲染器被设计为使用其特征反映将所选特征分配给细粒度类的符号来呈现来自一个层的所有特征。

要创建规则,请执行以下操作:

  1. 通过双击现有行来激活它(默认情况下,启用渲染模式时,QGIS会添加一个不带规则的符号),或单击 符号系统编辑 Edit rule符号系统添加 Add rule 纽扣。

  2. Edit Rule 对话框中,您可以定义一个标签来帮助您标识每个规则。这是将显示在 Layers Panel 也在版画作曲家的传奇中。

  3. 在旁边的文本框中手动输入表达式 单选按钮打开 Filter 选项或按下 表达式 按钮以打开表达式字符串生成器对话框。

  4. 使用提供的函数和层属性构建 expression 以筛选您要检索的要素。按下按钮 Test 按钮检查查询结果。

  5. 您可以输入更长的标签来完成规则描述。

  6. 您可以使用 复选框 Scale Range 用于设置应用规则的比例的选项。

  7. 最后,配置 symbol to use 对于这些功能。

  8. 并按下 OK

汇总规则的新行将添加到Layer Properties对话框中。您可以按照上述步骤创建所需数量的规则,也可以复制粘贴现有规则。将规则拖放到彼此的顶部,以嵌套它们并细化子类中的上层规则功能。

基于规则的呈现器可以与分类的或分级的呈现器组合。选择规则时,可以使用 Refine selected rules 下拉菜单。精化类看起来就像规则的子项,在树形层次结构中,与它们的父类一样,您可以设置每个类的符号系统和规则。自动规则细化可以基于以下方面:

  • scales :在给定比例列表的情况下,此选项将创建一组应用不同用户定义比例范围的类。每个新的基于比例的类别都可以有自己的符号系统和定义表达。例如,这可以是以不同比例显示具有不同符号的相同特征的方便方式,或者仅根据比例显示一组特征(例如,大比例的本地机场与小比例的国际机场)。

  • categories :应用 categorized renderer 到属于所选规则的要素。

  • ranges :应用 graduated renderer 到属于所选规则的要素。

精细化的类看起来就像规则的子项,在树形层次结构和上面一样,你可以设置每个类的符号系统。嵌套规则的符号堆叠在一起,因此在选择它们时要小心。也可以取消选中 未选中 SymbolsEdit rule 对话框以避免呈现堆栈中的特定符号。

Edit rule 对话框中,您可以避免编写所有规则,而使用 单选按钮关闭 Else 选项来捕获与同一级别上的任何其他规则都不匹配的所有要素。这也可以通过编写 ElseRule 专栏中的 Layer Properties ► Symbology ► Rule-based 对话框中。

在所选项目(S)上单击鼠标右键会显示上下文菜单,以执行以下操作:

  • CopyPaste ,基于现有项目创建新项目的便捷方式(S)(S)

  • Copy SymbolPaste Symbol ,这是一种将项目的表示形式应用于其他人的便捷方式

  • Change Color... 选定符号的名称(S)

  • Change Opacity... 选定符号的名称(S)

  • Change Output Unit... 选定符号的名称(S)

  • Change Width... 所选线符号的位置(S)

  • Change Size... 选定点符号的(S)

  • Change Angle... 选定点符号的(S)

  • Refine Current Rule :打开一个子菜单,该菜单允许使用以下命令来优化当前规则 scalescategoriesRanges 。与选择 corresponding menu 在该对话框的底部。

取消选中基于规则的呈现器对话框中的行会在地图画布中隐藏特定规则和嵌套规则的特征。

创建的规则还显示在地图图例中的树状层次结构中。双击地图图例中的条目以编辑指定的符号。右键单击,您将看到一些 more options

The example in 图 16.7 shows the rule-based rendering dialog for the rivers layer of the QGIS sample dataset.

../../../_images/rulesymbol_ng_line.png

图 16.7 基于规则的符号化选项

点置换渲染器

这个 点位移符号 Point Displacement 渲染器获取落入给定距离公差的点要素,并按照不同的放置方法将其符号放置在其重心周围。这可以方便地可视化一个点图层的所有要素,即使它们具有相同的位置(例如,建筑物中的设施)。

要配置点置换渲染器,您必须:

  1. 设置 Center symbol :位于中心的虚拟点将是什么样子

  2. 选择 Renderer 类型:您希望如何对图层中的要素进行分类(单个、已分类、基于规则...)

  3. 按下按钮 Renderer Settings... 用于根据所选渲染器配置要素符号系统的按钮

  4. 注明 Distance 一种公差,其中封闭的特征被认为是重叠的,然后在相同的虚点上移位。支持常用符号单位。

  5. 配置 Placement methods

    • Ring :将所有要素放置在半径取决于要显示的要素数量的圆上。

    • Concentric rings :使用一组同心圆来显示特征。

    • Grid :生成在每个交点处具有点符号的规则栅格。

  6. 移位的符号被放置在 Displacement lines 。虽然位移线的最小间距取决于点符号渲染器,但您仍可以自定义其某些设置,例如 Stroke widthStroke colorSize adjustment (例如,在所绘制的点之间添加更多间隔)。

  7. 使用 Labels 用于执行点标签的编组选项:标签放置在位移符号附近,而不是在要素真实位置。

    1. 选择 Label attribute :用于标注的层的字段

    2. 注明 Label font 属性和大小

    3. 选择一个 Label color

    4. 设置一个 Label distance factor :对于每个点要素,将标签从符号中心按比例偏移符号的对角线大小。

    5. 打开 未选中 Use scale dependent labeling 如果要仅以大于给定比例的比例显示标注 Minimum map scale

../../../_images/poi_displacement.png

图 16.8 点置换对话框

备注

点置换渲染器不会改变要素几何图形,这意味着点不会从其位置移开。它们仍然位于它们最初的位置。更改仅是可视的,用于渲染目的。改为使用处理 点位移 如果要创建置换特征,请使用算法。

点簇渲染器

不像 点位移符号 Point Displacement 用于放大最近的或覆盖的点要素放置的渲染器, 点群符号 Point Cluster 渲染器将附近的点组合为单个渲染标记符号。彼此之间在指定距离内的点将合并为单个符号。点聚合是基于要形成的最近编组进行的,而不是仅将搜索距离内的第一个编组指定给它们。

在主对话框中,您可以:

  1. 设置符号以表示中的点簇 Cluster symbol ;默认渲染显示聚合要素的数量,这要归功于 @cluster_size variable 在字体标记符号层上。

  2. 选择 Renderer 类型,即您希望如何对图层中的要素进行分类(单个、分类、基于规则...)

  3. 按下按钮 Renderer Settings... 按钮,照常配置要素的符号系统。请注意,此符号系统仅在未聚类的要素上可见 Cluster symbol 在其他情况下适用。此外,当集群中的所有点要素属于相同的渲染类,因此将应用相同的颜色时,该颜色表示 @cluster_color 群集的变量。

  4. 表示最大值 Distance 以考虑对要素进行聚类。支持常用符号单位。

../../../_images/cluster_symbol.png

图 16.9 点群集对话框

备注

点簇渲染器不会更改要素几何图形,这意味着点不会从其位置移开。它们仍然位于它们最初的位置。更改仅是可视的,用于渲染目的。改为使用处理 K-均值聚类DBSCAN集群 如果要创建基于簇的要素,请使用算法。

合并要素渲染器

这个 合并的要素 Merged Features 渲染器允许在渲染之前将面和线要素分解为单个对象,以确保复杂的符号或重叠的要素由统一和连续的地图符号表示。

反转多边形渲染器

这个 倒置符号 Inverted Polygon 渲染器允许用户定义要在层的多边形外填充的符号。如上所述,您可以选择子渲染器,即单符号、分级、分类、基于规则或2.5D渲染器。

../../../_images/inverted_polygon_symbol.png

图 16.10 反转多边形对话框

热图渲染器

热图符号 Heatmap 渲染器您可以为(多)点层创建实时动态热图。您可以指定热图半径(以毫米、点、像素、贴图单位或英寸为单位),选择和编辑热图样式的色带,并使用滑块选择渲染速度和质量之间的折衷。您还可以使用字段或表达式定义最大值限制并为点赋予权重。添加或删除功能时,热图渲染器会自动更新热图样式。

../../../_images/heatmap_symbol.png

图 16.11 热图对话框

2.5D渲染器

使用 25d符号 2.5D 渲染器可以在您的层的功能上创建2.5D效果。您可以从选择一个 Height 值(以地图单位表示)。为此,您可以使用固定值、某个层的字段或表达式。您还需要选择一个 Angle (以度为单位)重新创建查看器位置(0° 意味着西方,以逆时针的方式增长)。使用高级配置选项设置 Roof ColorWall Color 。如果要模拟要素墙上的太阳辐射,请确保选中 复选框 Shade walls based on aspect 选择。您还可以通过设置 ColorSize (使用地图单位)。

../../../_images/2_5dsymbol.png

图 16.12 2.5D对话框

小技巧

Using 2.5D effect with other renderers

在2.5D渲染器上设置完基本样式后,您可以将其转换为另一个渲染器(单一、分类、分级)。2.5D效果将被保留,所有其他特定于渲染器的选项将可用于微调它们(这样,您可以拥有例如具有良好2.5D表示的分类符号,或者为您的2.5D符号添加一些额外的样式)。为了确保阴影和“建筑物”本身不会干扰附近的其他要素,您可能需要启用符号级别( Advanced ► Symbol levels... )。2.5D的高度和角度值保存在层的变量中,因此您可以稍后在层的属性对话框的变量选项卡中对其进行编辑。

嵌入式呈现器

这个 Embedded Symbols 渲染器允许显示所提供数据源的“原生”符号。大多数情况下都是这样 KMLTAB 具有预定义符号系统的数据集。

16.1.3.2. 层渲染

从符号系统选项卡中,您还可以设置一些始终作用于层的所有要素的选项:

  • Opacity 滑块: You can make the underlying layer in the map canvas visible with this tool. Use the slider to adapt the visibility of your vector layer to your needs. You can also make a precise definition of the percentage of visibility in the menu beside the slider.

  • Blending modeLayerFeature 级别:您可以使用这些以前可能只从图形程序中了解的工具来实现特殊的渲染效果。覆盖层和基础层的像素通过中介绍的设置进行混合 混合模式

  • 应用 paint effects 在所有具有 Draw Effects 纽扣。

  • Control feature rendering order 允许您使用要素属性定义渲染它们的z顺序。激活复选框并单击 分类 旁边的按钮。然后你就会得到 Define Order 在该对话框中可以执行以下操作:

    1. 选择要应用于层要素的字段或构建表达式。

    2. 设置提取要素的排序顺序,即如果选择 Ascending 顺序,值较低的要素在值较高的要素下渲染。

    3. 定义何时应渲染返回空值的要素: first (下)或 last (上图)。

    4. 根据您希望使用的规则多次重复上述步骤。

    第一个规则应用于层中的所有要素,根据它们的返回值对它们进行z排序。然后,在具有相同值的每组特征(包括具有空值的特征)中,应用下一规则对它们进行排序。以此类推。

../../../_images/layer_rendering_options.png

图 16.13 层渲染选项

16.1.3.3. 其他设置

符号级别

对于允许堆叠符号层的渲染器(只有热图不允许),有一个选项可以控制每个符号级别的渲染顺序。

对于大多数呈现器,您可以通过单击 Advanced 按钮并在保存的符号列表下选择 Symbol levels 。对于 基于规则的呈现器 该选项可通过以下方式直接使用 Symbols Levels... 按钮,而对于 点置换渲染器 呈现器相同的按钮位于 Rendering settings 对话框中。

要激活符号级别,请选择 复选框 Enable symbol levels 。每一行将显示组合符号、其标签和单独符号层的一个小样本,这些符号被分成几列,旁边有一个数字。这些数字表示绘制符号层的渲染顺序级别。较低的值级别首先绘制,停留在底部,而较高的值最后绘制,在其他值之上。

../../../_images/symbol_levels.png

图 16.14 符号级别对话框

备注

如果符号级别被停用,则将根据其各自的功能顺序绘制完整的符号。重叠的符号将简单地混淆为下面的其他符号。此外,相似的符号也不会相互“融合”。

../../../_images/symbol_levels_examples.png

图 16.15 激活(A)和停用(B)的符号电平差异

数据定义大小图例

当使用 proportional symbol or the multivariate rendering 或者当一个 scaled size diagram 应用于该层,则可以允许在 Layers panel 以及 print layout legend

要启用 Data-defined Size Legend 对话框以呈现符号系统,请在 Advanced 按钮显示在保存的符号列表下面。对于图表,该选项位于 Legend 标签。该对话框提供了以下选项:

  • 选择图例类型: 单选按钮打开 Legend not enabled单选按钮关闭 Separated legend items单选按钮关闭 Collapsed legend 。对于后一种选项,您可以选择图例项是否在 Bottom 或在 Center

  • 预览 symbol to use 用于图例表示;

  • 在图例中插入标题;

  • 调整要使用的类的大小:默认情况下,QGIS为您提供一个包含五个类的图例(基于自然的漂亮间隔),但您可以使用 复选框 Manual size classes 选择。使用 符号系统添加符号系统移除 按钮来设置您的自定义类值和标签。

  • 对于折叠图例,可以执行以下操作:

    • Align symbols 在中间或底部

    • 配置水平引线 Line symbol 从符号到相应的图例文本。

图例的预览将显示在对话框的右侧面板中,并在设置参数时更新。

../../../_images/data_defined_size_legend.png

图 16.16 设置大小缩放图例

备注

目前,层符号系统的数据定义大小图例只能应用于使用单一、分类或分级符号系统的点图层。

绘制效果

为了改进层渲染并避免(或至少减少)使用其他软件来最终渲染地图,QGIS提供了另一个强大的功能: 画作效果 Draw Effects 选项,添加Paint Effects以自定义向量层的可视化效果。

该选项可在 Layer Properties ► Symbology 对话框,位于 Layer rendering 组(应用于整个层)或在 symbol layer properties (适用于相应的功能)。您可以将这两种用法结合使用。

Paint effects can be activated by checking the 复选框 Draw effects option and clicking the 画作效果 Customize effects button. That will open the Effect Properties Dialog (see 图 16.17). The following effect types, with custom options are available:

  • Source :根据图层特性的配置绘制要素的原始样式。这个 Opacity 的样式可以调整,也可以调整 Blend modeDraw mode 。这些是所有类型的效果的通用属性。

    ../../../_images/source.png

    图 16.17 绘制效果:源对话框

  • Blur: Adds a blur effect on the vector layer. The custom options that you can change are the Blur type (Stack blur (fast) or Gaussian blur (quality)) and the Blur strength.

    ../../../_images/blur.png

    图 16.18 绘制效果:模糊对话框

  • Colorise :此效果可用于使用单一色调制作样式的一个版本。基础将始终是符号的灰度版本,您可以:

    • 使用 选择字符串 Grayscale 要选择如何创建它:选项有“按亮度”、“按亮度”、“按平均值”和“关”。

    • 如果 复选框 Colorise 选中后,可以混合另一种颜色并选择其强度。

    • 控制 BrightnessContrastSaturation 生成的符号的标高。

    ../../../_images/colorise.png

    图 16.19 绘制效果:上色对话框

  • Drop Shadow :使用此效果会在特征上添加阴影,这看起来就像是添加了额外的维度。此效果可以通过更改 Offset 角度和距离,确定阴影移向何处以及与源对象的接近程度。 Drop Shadow 还可以选择更改 Blur radius 以及 Color 效果的影响。

    ../../../_images/drop_shadow.png

    图 16.20 绘制效果:投影对话框

  • Inner Shadow :此效果类似于 Drop Shadow 效果,但它会在特征边缘的内侧添加阴影效果。可用于自定义的选项与 Drop Shadow 效果。

    ../../../_images/inner_shadow.png

    图 16.21 绘制效果:内阴影对话框

  • Inner Glow :在特征内部添加光晕效果。此效果可以通过调整 Spread 发光的(宽度),或 Blur radius 。后者指定距离要进行任何模糊处理的要素边缘的接近程度。此外,还可以使用以下选项来自定义发光颜色 Single color 或者是 Color ramp

    ../../../_images/inner_glow.png

    图 16.22 绘制效果:内光对话框

  • Outer Glow :此效果类似于 Inner Glow 效果,但它会在特征边缘的外部添加辉光效果。可用于自定义的选项与 Inner Glow 效果。

    ../../../_images/outer_glow.png

    图 16.23 绘制效果:外部发光对话框

  • Transform :添加了变换符号形状的可能性。可用于自定义的第一个选项是 Reflect horizontalReflect vertical 这实际上在水平和/或垂直轴上创建了反射。其他选项包括:

    • Shear X,Y :沿X和/或Y轴倾斜特征。

    • Scale X,Y :按给定的百分比沿X和/或Y轴放大或最小化特征。

    • Rotation :绕其中心点旋转特征。

    • Translate X,Y 根据X和/或Y轴上给定的距离更改项目的位置。

    ../../../_images/transform.png

    图 16.24 绘制效果:变换对话框

可以同时使用一种或多种效果类型。您可以使用效果列表中的复选框来(取消)激活效果。您可以通过使用 选择字符串 Effect type 选择。您可以使用以下命令重新排序效果 向上箭头 Move up向下箭头 Move down 按钮,还可以使用 符号系统添加 Add new effect符号系统移除 Remove effect 纽扣。

有一些可用于所有绘制效果类型的通用选项。 OpacityBlend mode 选项的工作原理类似于中介绍的选项 层渲染 可以在除变换效果之外的所有绘制效果中使用。

也有一个 选择字符串 Draw mode 选项可用于每种效果,您可以选择是否渲染和/或修改元件,并遵循一些规则:

  • 效果从上到下渲染。

  • Render only 模式意味着效果将是可见的。

  • Modifier only 模式意味着效果将不可见,但它所应用的更改将传递给下一个效果(紧接在下面的效果)。

  • 这个 Render and Modify 模式将使效果可见,并将所有更改传递到下一个效果。如果效果位于效果列表的顶部,或者如果紧靠其上的效果未处于修改模式,则它将使用层属性中的原始源元件(类似于源)。

16.1.4. 标签属性

这个 标记单个 Labels 属性为您提供了在矢量层上配置智能标签所需的所有适当功能。此对话框也可以从 Layer Styling 面板,或使用 标记单个 Layer Labeling Options 按钮中的 Labels toolbar

第一步是从下拉列表中选择标签方法。可用的方法包括:

  • 标记无 No labels :缺省值,不显示来自层的标签

  • 标记单个 Single labels :使用单个属性或表达式在地图上显示标注

  • 标签基于规则 Rule-based labeling

  • 标记障碍 Blocking :允许将一个层设置为其他层标签的障碍,而不渲染它自己的任何标签。

接下来的步骤假定您选择 标记单个 Single labels 选项,打开以下对话框。

../../../_images/label_menu_text.png

图 16.25 图层标签设置-单标签

在该对话框的顶部,一个 Value 已启用下拉列表。您可以选择要用于标记的属性列。默认情况下, display field 使用的是。单击 表达式 如果要基于表达式定义标签-请参见 基于表达式定义标注

备注

如果在中启用,则标签及其格式可以显示为图例中的条目 Legend 标签。

以下是各种选项卡下显示的用于定制标签的选项:

有关如何设置每个属性的说明,请访问 设置标签

16.1.4.1. 设置自动放置引擎

您可以使用自动放置设置来配置标签的项目级自动行为。在右上角的 Labels 选项卡中,单击 自动放置设置 Automated placement settings (applies to all layers) 按钮,打开具有以下选项的对话框:

../../../_images/placement_engine.png

图 16.26 标注自动放置引擎

  • Number of candidates :根据线和面要素的大小计算可能放置的标签数并将其指定给线和面要素。要素越长或越宽,它的候选要素就越多,其标签可以放置得更好,碰撞风险更小。

  • Text rendering :在以下情况下设置标签呈现小部件的默认值 exporting a map canvasa layout 转换为PDF或SVG。如果 Always render labels as text 则可以在外部应用程序(如Inkscape)中将标签作为普通文本进行编辑。但副作用是渲染质量降低,并且当某些文本设置(如缓冲区)到位时,渲染会出现问题。怪不得 Always render labels as paths (recommended) 它将标签导出为轮廓,推荐使用。

  • 复选框 Allow truncated labels on edges of map :控制是否应渲染部分落在地图范围之外的标签。如果选中,将显示这些标签(当无法将它们完全放置在可见区域内时)。如果未选中,则将跳过部分可见标签。请注意,此设置不会影响标签在 layout map item

  • 未选中 Show all labels for all layers (i.e. including colliding objects) 。请注意,也可以按层设置此选项(请参见 渲染选项卡 )

  • 未选中 Show unplaced labels :允许确定地图中是否缺少任何重要标签(例如,由于重叠或其他限制)。它们使用可自定义的颜色显示。

  • 未选中 Show candidates (for debugging) :控制是否应在地图上绘制方框,以显示为放置标签生成的所有候选项。就像标签上说的那样,它只在调试和测试不同标签设置的效果时才有用。这将有助于更好地手动放置来自 label toolbar

  • Project labeling version :QGIS支持两种不同版本的标签自动放置:

    • Version 1 :旧系统(由QGIS版本3.10和更早版本使用,以及在QGIS 3.12或更高版本中打开在这些版本中创建的项目时使用)。版本1仅将标签和障碍的优先级视为“粗略指南”,在此版本中,可能会在高优先级的障碍上放置低优先级的标签。因此,在使用此版本时,可能很难获得所需的标签结果,因此仅为与旧项目兼容而建议使用此版本。

    • Version 2 (recommended) :这是在QGIS 3.12或更高版本中创建的新项目的默认系统。在版本2中,指定何时允许标签重叠的逻辑 obstacles 已经被重写了。新的逻辑禁止任何标签与任何障碍重叠,与标签的优先级相比,障碍权重更大。因此,此版本的标签结果更可预测,也更易于理解。

16.1.4.2. 基于规则的标签

使用基于规则的标注,可以根据表达式过滤器和比例范围有选择地定义和应用多个标注配置,如 Rule-based rendering

要创建规则,请执行以下操作:

  1. Select the 标签基于规则 Rule-based labeling option in the main drop-down list from the Labels tab

  2. 单击 符号系统添加 Add rule 位于对话框底部的按钮。

  3. 使用以下内容填充新对话框:

    • Description :用于标识中规则的文本 Labels 选项卡,并作为 label legend entry 在打印版面图例中

    • Filter :用于选择要应用标注设置的要素的表达式

    • 如果已经设置了规则,则 Else 选项可用于选择与同一组中规则的任何过滤器都不匹配的所有要素。

  4. 您可以设置一个 scale range 其中应应用标签规则。

  5. 下的可用选项 Labels 分组框是常见的 label settings 。配置它们,然后按 OK

    ../../../_images/label_rule_settings.png

    图 16.27 规则设置

A summary of existing rules is shown in the main dialog (see 图 16.28). You can add multiple rules, reorder or imbricate them with a drag-and-drop. You can as well remove them with the 符号系统移除 button or edit them with 符号系统编辑 button or a double-click.

../../../_images/label_rules_panel.png

图 16.28 基于规则的标签面板

16.1.4.3. 基于表达式定义标注

无论您是选择单一标注类型还是基于规则的标注类型,QGIS都允许使用表达式来标注要素。

假设您正在使用 Single labels 方法,请单击 表达式 按钮附近的 Value 中的下拉列表 标记单个 Labels 属性对话框的选项卡。

In 图 16.29, you see a sample expression to label the alaska trees layer with tree type and area, based on the field 'VEGDESC', some descriptive text, and the function $area in combination with format_number() to make it look nicer.

../../../_images/label_expression.png

图 16.29 使用表达式进行标注

基于表达式的标签很容易使用。你所要做的就是:

  • 您可能需要将所有元素(字符串、字段和函数)与字符串连接函数(如 concat+|| 。请注意,在某些情况下(当涉及空值或数值时),并非所有这些工具都能满足您的需要。

  • 字符串写在‘单引号’中。

  • 字段写在“双引号”中或不带任何引号。

让我们来看看一些例子:

  1. 基于两个字段‘name’和‘place’的标签,使用逗号作为分隔符::

    "name" || ', ' || "place"
    

    退货::

    John Smith, Paris
    
  2. 基于两个字段‘name’和‘Place’以及其他文本的标签:

    'My name is ' + "name" + 'and I live in ' + "place"
    'My name is ' || "name" || 'and I live in ' || "place"
    concat('My name is ', name, ' and I live in ', "place")
    

    退货::

    My name is John Smith and I live in Paris
    
  3. 基于两个字段‘name’和‘Place’并结合不同连接功能的其他文本的标签:

    concat('My name is ', name, ' and I live in ' || place)
    

    退货::

    My name is John Smith and I live in Paris
    

    或者,如果字段‘Place’为空,则返回::

    My name is John Smith
    
  4. 基于带有描述性文本的两个字段‘name’和‘Place’的多行标签:

    concat('My name is ', "name", '\n' , 'I live in ' , "place")
    

    退货::

    My name is John Smith
    I live in Paris
    
  5. 基于字段和$Area函数的标签,以转换后的单位显示地名及其四舍五入的面积大小:

    'The area of ' || "place" || ' has a size of '
    || round($area/10000) || ' ha'
    

    退货::

    The area of Paris has a size of 10500 ha
    
  6. 创建Case Else条件。如果字段中的人口值 population 如果<=50000它是一个城镇,否则它是一座城市:

    concat('This place is a ',
    CASE WHEN "population" <= 50000 THEN 'town' ELSE 'city' END)
    

    退货::

    This place is a town
    
  7. 城市的显示名称,其他要素的无标签(有关“城市”上下文,请参见上面的示例):

    CASE WHEN "population" > 50000 THEN "NAME" END
    

    退货::

    Paris
    

正如您在表达式构建器中看到的,您可以使用数百个函数来创建简单和非常复杂的表达式,以便在QGIS中标记数据。看见 表达式 有关表达式的更多信息和示例,请参见第章。

16.1.4.4. 使用数据定义的替代进行标注

数据定义 Data defined override 函数时,标签设置将被属性表中的条目或基于它们的表达式覆盖。此功能可用于设置上述大多数标签选项的值。

例如,使用阿拉斯加QGIS示例数据集,让我们标记 airports 以他们的名字命名的层,基于他们的 USE 即机场是否可供下列人士使用:

  • 军人,然后用灰色展示它,大小为8;

  • 其他的,然后用蓝色显示,尺寸为10。

要执行此操作,请在启用 NAME 层的字段(请参见 设置标签 ):

  1. 激活 Text 标签。

  2. 按下 数据定义 图标旁边的 Size 财产。

  3. 选择 Edit... 并键入::

    CASE
      WHEN "USE" like '%Military%' THEN 8 -- because compatible values are 'Military'
                                          -- and 'Joint Military/Civilian'
      ELSE 10
    END
    
  4. 新闻发布会 OK 来验证。该对话框将关闭,并且 数据定义 按钮变成了 DataDefineExpress打开 这意味着正在运行一条规则。

  5. 然后单击颜色属性旁边的按钮,键入下面的表达式并验证:

    CASE
      WHEN "USE" like '%Military%' THEN '150, 150, 150'
      ELSE '0, 0, 255'
    END
    

同样,您可以以您想要的方式自定义标签的任何其他属性。有关详细信息,请参阅 数据定义 Data-define override 中微件的描述和操作 数据定义的覆盖设置 一节。

../../../_images/label_attribute_data_defined.png

图 16.30 机场标注根据其属性进行格式化

小技巧

Use the data-defined override to label every part of multi-part features

有一个选项可以独立于标签特性设置多零件要素的标签。选择 渲染 RenderingFeature options ,请访问 数据定义 Data-define override 复选框旁边的按钮 未选中 Label every part of multipart-features 和定义标签,如中所述 数据定义的覆盖设置

标签工具栏

这个 Label Toolbar 提供了一些工具来处理 标记单个 label (包括他们的 callout )或 图解 diagram 属性:

../../../_images/diagram_toolbar.png

图 16.31 标签工具栏

  • 显示PinnedLabels Highlight Pinned Labels, Diagrams and Callouts 。如果项目的矢量层是可编辑的,则突出显示为绿色,否则为蓝色。

  • 显示未放置的标签 Toggle Display of Unplaced Labels :允许确定地图中是否缺少任何重要标签(例如,由于重叠或其他限制)。它们以可定制的颜色显示(请参见 设置自动放置引擎 )。

  • PinLabels Pin/Unpin Labels and Diagrams 。通过单击或拖动区域,可以固定覆盖的项目。如果单击或拖动按住的区域 Shift ,这些项目将被取消固定。最后,您还可以单击或拖动按住的区域 Ctrl 切换他们的个人识别码状态。

  • ShowHideLabels Show/Hide Labels and Diagrams 。如果您单击项目,或单击并拖动按住的区域 Shift ,它们是隐藏的。当一个项目被隐藏时,你只需点击该功能即可恢复其可见性。如果拖动一个区域,该区域中的所有项目都将恢复。

  • 移动标签 Move a Label, Diagram or Callout :单击以选择项目,然后单击以将其移动到所需位置。新坐标存储在 auxiliary fields 。使用此工具选择项目并点击 Delete 键将删除存储的位置值。

  • 旋转标签 Rotate a Label 。单击以选择标签,然后再次单击以应用所需的旋转。同样,新角度存储在辅助字段中。使用此工具选择一个标签,然后点击 Delete 键将删除该标签的旋转值。

  • ChangeLabelProperties Change Label Properties 。它打开一个对话框来更改单击的标签属性;它可以是标签本身、其坐标、角度、字体、大小、多行对齐...只要此属性已映射到某个字段。您可以在此处将该选项设置为 复选框 Label every part of a feature

警告

Label tools overwrite current field values

使用 Label toolbar 要定制标签,实际上是在映射字段中写入属性的新值。因此,请注意不要无意中替换了以后可能需要的数据!

备注

这个 辅助存储属性 机制可用于定制标签(位置等),而无需修改底层数据源。

自定义地图画布中的标注

Combined with the Label Toolbar, the data defined override setting helps you manipulate labels in the map canvas (move, edit, rotate). We now describe an example using the data-defined override function for the 移动标签Move Label, Diagram or Callout function (see 图 16.32).

  1. 进口 lakes.shp 来自QGIS样例数据集。

  2. 双击层以打开层属性。点击 LabelsPlacement 。选择 单选按钮打开 Offset from centroid

  3. 寻找 Data defined 参赛作品。单击 数据定义 图标,以定义 Coordinate 。选 xlabel 对于X和 ylabel 对于Y。图标现在以黄色突出显示。

    ../../../_images/label_coordinate_data_defined.png

    图 16.32 使用数据定义覆盖对矢量面图层进行标注

  4. 放大到一个湖里。

  5. 使用将层设置为可编辑 ToggleEditing Toggle Editing 纽扣。

  6. Go to the Label toolbar and click the 移动标签 icon. Now you can shift the label manually to another position (see 图 16.33). The new position of the label is saved in the xlabel and ylabel columns of the attribute table.

  7. 还可以使用以下命令添加一条线,将每个湖连接到其移动的标签:

备注

这个 辅助存储属性 机制可以与数据定义的属性一起使用,而不具有可编辑的数据源。

16.1.5. 图表属性

The 图解 Diagrams tab allows you to add a graphic overlay to a vector layer (see 图 16.34).

当前图表的核心实现支持:

  • 图表无 No diagrams :缺省值,没有在要素上显示图表;

  • 点阵图 Pie chart ,一张圆形统计图,分成多个切片,以说明数字比例。每个切片的弧长与其所代表的数量成正比;

  • 文本 Text diagram ,一个水平分割的圆圈,显示内部的统计值;

  • 直方图 Histogram ,每个属性的不同颜色的条彼此相邻对齐

  • 堆积条形图 Stacked bars ,垂直或水平地将每个属性的不同颜色的条堆叠在一起

在右上角的 Diagrams 选项卡中, 自动放置设置 Automated placement settings (applies to all layers) 按钮提供了控制图表的方法 labels placement 在地图画布上。

小技巧

Switch quickly between types of diagrams

由于这些设置对于不同类型的图表几乎是通用的,因此在设计图表时,您可以轻松地更改图表类型并检查哪种图表更适合您的数据,而不会有任何损失。

对于每种类型的图表,属性分为几个选项卡:

16.1.5.1. 属性

Attributes 定义要在图表中显示的变量。使用 符号系统添加 add item 按钮将所需的字段选择到“已分配的属性”面板中。生成的属性具有 表达式 也可以使用。

您可以通过单击并拖动来上下移动任何行,从而对属性的显示方式进行排序。您还可以通过双击该项目来更改‘Legend’列中的标签或属性颜色。

此标签是打印布局或层树的图例中显示的默认文本。

../../../_images/diagram_tab.png

图 16.34 逻辑示意图属性-属性标签

16.1.5.2. 渲染

Rendering 定义图表的外观。它提供了不会干扰统计值的常规设置,例如:

  • 图形的不透明度、轮廓宽度和颜色;

  • 根据图表的类型:

    • 对于直方图和堆叠条形,为条形的宽度和条形之间的间距。您可能希望将间距设置为 0 用于堆叠的条形图。此外, Axis line symbol 可在地图画布上显示,并可使用进行自定义 line symbol properties

    • 对于文本图表,圆形背景颜色和 font 用于文本;

    • 对于饼图, Start angle 第一个切片和它们的 Direction (是否顺时针)。

  • 对.的使用 paint effects 在图表上。

在此选项卡中,您还可以使用不同的选项来管理和微调图表可见性:

  • Diagram z-index :控制如何将图表绘制在彼此的顶部和标签的顶部。在图表和标签上绘制索引较高的图表;

  • 复选框 Show all diagrams :显示所有图表,即使它们彼此重叠;

  • Show diagram :仅允许呈现特定图表;

  • Always Show :选择要始终呈现的特定图表,即使它们与其他图表或地图标签重叠;

  • 设置 Scale dependent visibility

../../../_images/diagram_tab_appearance.png

图 16.35 图表属性-渲染选项卡

16.1.5.3. 大小

Size 是用于设置如何表示所选统计信息的主选项卡。图表大小 units 可以是‘毫米’、‘点’、‘像素’、‘地图单位’或‘英寸’。您可以使用:

  • Fixed size ,表示所有要素的图形的唯一大小(不适用于直方图)

  • Scaled size ,基于使用层属性的表达式:

    1. 在……里面 Attribute ,选择一个字段或构建一个表达式

    2. 新闻发布会 Find 要返回 Maximum value 或在小部件中输入自定义值。

    3. 对于直方图和堆叠条形图,请输入 Bar length 值,用于表示 Maximum value 属性的属性。对于每个特征,条形长度将被线性缩放以保持这种匹配。

    4. 对于饼图和文本图表,请输入 Size 值,用于表示 Maximum value 属性的属性。然后,对于每个要素,圆区域或直径将进行线性缩放以保持匹配(从 0 )。一个 Minimum size 但是,可以为较小的图表设置。

../../../_images/diagram_tab_size.png

图 16.36 图表属性-大小选项卡

16.1.5.4. 安放

Placement 定义图表位置。根据图层几何类型的不同,它提供了不同的放置选项(有关详细信息,请参阅 Placement ):

  • Around pointOver point 用于点几何图形。前一个变量需要一个半径跟在后面。

  • Around lineOver line 用于线几何图形。与点要素类似,第一个变量需要距离,您可以指定图相对于要素的位置(线上、线上和/或线下)。可以同时选择多个选项。在这种情况下,QGIS将查找图表的最佳位置。请记住,您还可以使用线条方向表示图表的位置。

  • Around centroid (在一组 Distance ), Over centroidUsing perimeterInside polygon 是用于多边形要素的选项。

这个 Coordinate 组使用其属性或表达式在逐个要素的基础上直接控制逻辑示意图的放置 XY 协调。信息也可以使用 Move labels and diagrams 工具。

Priority 部分,您可以定义每个图表的放置优先级等级,即,如果同一位置有不同的图表或标签候选,则显示优先级较高的项目,可以省略其他项目。

Discourage diagrams and labels from covering features 定义要用作的要素 obstacles ,即QGIS将尽量不在这些要素上放置图表或标签。然后使用优先级来评估图是否可以由于更大的加权障碍特征而被省略。

../../../_images/diagram_tab_placement.png

图 16.37 包含逻辑示意图属性的矢量属性对话框的放置选项卡

16.1.5.5. 选项

这个 Options 选项卡具有直方图和堆叠条形图的设置。您可以选择是否将 Bar orientation 应该是 UpDownRightLeft ,用于水平和垂直关系图。

16.1.5.6. 传说

Legend 选项卡中,您可以选择在 Layers panel ,以及在 print layout legend ,位于层符号系统旁边:

  • 检查 Show legend entries for diagram attributes 要在图例中显示 ColorLegend 属性,如先前在 Attributes 页签;

  • 而且,当一个 scaled size 正在用于图表,请按下 Legend Entries for Diagram Size... 按钮来配置图例中的图表符号纵横比。这将打开 Data-defined Size Legend 对话框中介绍了其选项 数据定义大小图例

设置后,图表图例项目(具有颜色和图表大小的属性)也会显示在打印布局图例中,位于层符号系统的旁边。

16.1.6. 遮罩属性

这个 标签蒙版 Masks 选项卡可帮助您配置当前层符号与来自任何层的其他符号层或标签的叠加。这是为了提高颜色相近且重叠时难以辨认的符号和标签的可读性;它在项目周围添加自定义和透明蒙版,以“隐藏”当前层的部分符号层。

要在活动图层上应用掩膜,首先需要在项目中启用 mask symbol layersmask labels 。然后,从 Masks 选项卡,选中:

  • 这个 Masked symbol layers :以树结构列出当前层的所有符号层。在该窗口中,您可以选择要在与所选掩膜源重叠时以透明方式“剪切”出来的符号图层项

  • 这个 Mask sources 制表符:列出项目中定义的所有遮罩标签和遮罩符号层。选择将在所选掩膜符号图层上生成掩膜的项目

../../../_images/masks_properties.png

图 16.38 层属性-蒙版选项卡

16.1.7. 三维视图属性

这个 三维 3D View 选项卡提供了应在中描述的矢量图层的设置 3D Map view 工具。

要以3D模式显示层,请从选项卡顶部的组合框中进行选择,或者:

  • Single symbol :使用通用3D符号渲染要素,该符号的属性可以 data-defined 或者不去。有关详细信息,请阅读 setting a 3D symbol 对于每个层几何图形类型。

  • Rule-based :可以根据表达式过滤器和比例范围有选择地定义和应用多个符号配置。有关How-to的更多详细信息,请访问 Rule-based rendering

../../../_images/3d_view_properties.png

图 16.39 点图层的3D特性

注意

Prefer the Elevation tab for symbol elevation and terrain settings

要素的高程和海拔相关属性 (Altitude clampingAltitude bindingExtrusionHeight ))中 3D View 选项卡从层的 Elevation properties ,并且最好从 Elevation 标签。

为了获得更好的性能,使用多线程在后台加载矢量层中的数据,并在可从控制其大小的分块中进行渲染 Layer rendering 选项卡的部分:

  • Zoom levels count :确定四叉树的深度。例如,一个缩放级别意味着整个层将只有一个平铺。三个缩放级别意味着在叶子级别将有16个平铺(每增加一个缩放级别就会将其乘以4)。缺省值为 3 最大值是 8

  • 复选框 Show bounding boxes of tiles :如果存在瓷砖在应该显示时不显示的问题,则特别有用。

16.1.8. 字段属性

这个 源字段 Fields 选项卡提供有关与层相关的字段的信息,并帮助您组织它们。

可以制作这一层 editable 使用 ToggleEditing Toggle editing mode 。此时,您可以使用 新属性 New field删除属性 Delete field 纽扣。

您还可以通过双击字段的名称来重命名字段。这仅支持PostgreSQL、Oracle、Memory Layer等数据提供程序和某些GDAL层,具体取决于GDAL版本。

如果在基础数据源中或在 forms properties ,还会显示该字段的别名。别名是可在要素表单或属性表中使用的人类可读的字段名称。别名保存在项目文件中。

除了数据集中包含的字段之外, virtual fieldsAuxiliary Storage 包括在内, Fields 选项卡还会列出来自任何 joined layers 。根据字段的原点,会对其应用不同的背景色。

对于列出的每个字段,该对话框还会列出只读特征,例如其 TypeType nameLengthPrecision `

根据数据提供程序的不同,您可以将注释与字段相关联,例如在其创建时。此信息被检索并显示在 Comment 列,并在稍后将鼠标悬停在要素表单中的字段标签上时显示。

在.之下 Configuration 列中,您可以设置字段在某些情况下的行为方式:

  • Not searchable: check this option if you do not want this field to be queried by the search locator bar

  • Do not expose via WMS :如果从QGIS服务器将图层用作WMS,则不想显示此字段,请选中此选项

  • Do not expose via WFS :如果从QGIS服务器将图层用作WFS,则不想显示此字段,请选中此选项

../../../_images/fields_properties.png

图 16.40 字段属性选项卡

16.1.9. 属性表单属性

这个 表单视图 Attributes Form 选项卡可帮助您设置要在创建新要素或查询现有要素时显示的表单。您可以定义:

  • 要素表格或属性表中每个字段的外观和行为(标签、微件、约束...);

  • 表单的结构(自定义或自动生成):

  • 用于处理与表单或字段小部件交互的额外逻辑。

在对话框的右上角,您可以设置在创建新功能时是否默认打开表单。这可以按层配置或使用全局配置 Suppress attribute form pop-up after feature creation 选项中的 Settings ► Options ► Digitizing 菜单。

16.1.9.1. 自定义数据的表单

默认情况下,当您使用 识别 Identify Features 工具或将属性表切换到 form view 模式下,QGIS显示一个带有预定义窗口小部件的基本表单(通常是旋转框和文本框-每个字段由窗口小部件旁边的标签在专门的一行上表示)。如果 relations 设置在层上时,引用层中的字段显示在表单底部的嵌入框架中,遵循相同的基本结构。

此呈现是默认情况下 Autogenerate 的价值 Attribute editor layout 中的设置 Layer properties ► Attributes Form 标签。此属性包含三个不同的值:

  • Autogenerate :保持表单的“一行一栏”的基本结构,但允许定制每个相应的小部件。

  • Drag-and-drop designer :除了小部件定制之外,表单结构还可以变得更复杂,例如,将小部件嵌入到组和选项卡中。

  • Provide ui file :允许使用Qt Designer文件,因此可能是更复杂和功能齐全的模板,作为特征形式。

自动生成的表单

Autogenerate 选项处于打开状态时, Available widgets 面板显示将在表单中显示的字段列表(来自层及其关系)。选择一个字段,您可以在右侧面板中配置其外观和行为:

拖放设计器

The drag and drop designer allows you to create a form with several containers (tabs or groups) to present the attribute fields or other widgets that are not directly linked to a particular field (like the HTML/QML widgets or the actions defined for the layer), as shown for example in 图 16.41.

../../../_images/resulting_feature_form.png

图 16.41 生成的带有选项卡和命名组的内置表单

  1. Drag and drop designerSelect attribute layout editor 组合盒。这使 Form Layout 旁边的面板 Available widgets 面板,由现有字段填充。选定的字段将显示其 properties 在第三个小组中。

  2. 选择您不想在中使用的字段 Form Layout 面板,然后按下 符号系统移除 按钮将其删除。您还可以使用 反转选择 Invert selection 纽扣。

  3. 将第一个面板中的字段拖放到:guarabel`Form Layout`面板中以重新添加它们。可以多次添加相同的字段。

  4. 中的拖放字段 Form Layout 面板以重新排序其位置。

  5. 添加容器以关联属于同一类别的域,并更好地构建表单。

    1. 第一步是使用 符号系统添加 Add a new tab or group to the form layout 偶像。其中将显示字段和其他组。

    2. 然后设置容器的属性,即:

      • 这个 Label :将用于容器的标题

      • 这个 Container Type :它可以是一个 Tab 或者是 Group box in container (选项卡或另一个组中的可折叠组框)

      • 以及 Number of columns 嵌入的字段应分布在

      ../../../_images/attribute_editor_layout.png

      图 16.42 对话框来创建具有 Attribute editor layout

      稍后可以通过选择项目并从第三个面板中更新这些属性和其他属性:

      • 隐藏或显示容器的标签

      • 重命名容器

      • 设置列数

      • 输入一个表达式以控制容器的可见性。每次表单中的值更改时,都会重新计算该表达式,并相应地显示/隐藏选项卡或组框

      • 复选框 Show as Group Box :将选项卡转换为顶级组框,反之亦然

      • 如果是组框,则设置是否在表单打开时显示为 Collapsed 针对每个要素,或仅针对与某个表达式匹配的要素 (Control collapsed by expression )。

      • 配置 Style 集装箱的外观,带有定制 Background color 、标签颜色和字体属性

    3. 通过再次按下 符号系统添加 Add a new tab or group to the form layout 偶像。

  6. 下一步是通过简单的拖放将相关字段分配给每个容器。分组框和选项卡也可以以相同的方式移动。

  7. Customize the widget 正在使用的字段的数量

  8. 如果该层涉及 one or many to many relation ,将关系名称从 Available Widgets 面板到 Form Layout 面板。关联的层属性表单将嵌入到当前层表单中的选定位置。对于其他项,可以选择关系标签来配置一些属性:

    • 隐藏或显示关系标签

    • 显示链接按钮

    • 显示取消链接按钮

  9. 如果该层具有一个或多个 actions 为以下项目启用 LayerFeature 范围内,这些操作将列在 Actions 您可以像拖放其他字段一样拖放它们。关联的动作将以当前层的形式嵌入到选定的位置。

  10. 通过从添加一个或多个小部件进一步自定义表单 Other Widgets (见 其他小部件 )

  11. 应用图层的属性对话框

  12. 打开要素属性表单(例如,使用 识别 Identify features 工具),并且它应该显示新的表单。

其他小部件

拖放设计器提供了许多未连接到特定字段的小部件。它们可用于增强窗体的外观或显示动态计算的值。

  • HTML Widget :嵌入一个HTML页,则该HTML源可能包含动态计算的表达式的结果。

    例如,可以使用HTML小部件来显示以BLOB格式存储在字段中的图像(我们称之为它 photo ):

    1. Drag-and-drop designer 模式下,添加一个 HTML Widget 致您的 Form Layout

    2. 双击 HTML Widget 来配置它。

    3. 更改默认设置 Title 或者藏起来。

    4. 按下按钮 表达式 按钮,然后输入以下QGIS表达式:

      '<img src= "data:image/png;base64,' || to_base64("photo") || '">'
      

      确保您更换 photo 使用您自己的BLOB字段名。上面的表达式创建了一个带有HTML图像标记的字符串,其中对BLOB文件进行了编码。

    5. 应用该对话框,然后按 符号系统添加 纽扣。

    6. QGIS会自动应用HTML格式和函数来计算您的表达式,从而生成以下代码:

      <script>document.write(expression.evaluate("'<img src=\"data:image/png;base64,' || to_base64(\"photo\") || '\">'"));</script>
      

      您的图像预览将显示在右侧。

  • QML Widget :嵌入QML页面时,QML源代码可能包含动态计算的表达式的结果。

  • Text Widget :显示文本小工具,该小工具支持基本的HTML标记,并可能包含动态计算的表达式结果。

  • Spacer Widget :插入一个空的透明矩形,增加两个小工具之间的垂直距离。

小技巧

Display Dynamic Content

上面提到的小部件(除了 Spacer Widget )支持可用于显示内容的表达式,只要表单中的另一个域发生更改,这些内容就会动态更改。这可以通过使用 current_value('field_name') 函数检查另一个字段的值。

使用自定义用户界面文件

这个 Provide ui-file 选项允许您使用Qt-Designer制作的复杂对话框。使用UI文件允许在创建对话框时有很大的自由度。请注意,为了链接图形对象(文本框、组合框...)对于层的字段,您需要为它们指定相同的名称。

使用 Edit UI 定义要使用的文件的路径。

用户界面文件也可以托管在远程服务器上。在本例中,您需要提供表单的URL,而不是 Edit UI

您可以在下面的 Creating a new form 历史上的教训 QGIS培训手册 。有关更多高级信息,请参阅https://woostuff.wordpress.com/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/.

使用自定义函数增强您的表单

QGIS表单可以有一个在打开对话框时调用的Python函数。使用此函数可以在对话框中添加额外的逻辑。表单代码可以通过三种不同的方式指定:

  • load from the environment :使用函数,例如在 startup.py 或从已安装的插件

  • load from an external file :文件选择器将允许您从文件系统中选择一个Python文件或输入远程文件的URL。

  • provide code in this dialog :将出现一个Python编辑器,您可以在其中直接键入要使用的函数。

在所有情况下,您都必须输入要调用的函数的名称 (open 在下面的示例中)。

例如(在模块MyForms.py中):

def open(dialog,layer,feature):
    geom = feature.geometry()
    control = dialog.findChild(QWidget,"My line edit")

在Python Init函数中的引用如下: open

16.1.9.2. 配置字段行为

的主要部分。 Attributes Form 选项卡可帮助您设置用于在属性表或要素表单中填充或显示字段值的小部件的类型:您可以定义用户与每个字段交互的方式以及允许添加到每个字段的值或值范围。

../../../_images/edit_widgets_dialog.png

图 16.43 用于为属性列选择编辑微件的对话框

常用设置

无论应用于字段的小部件类型如何,都可以设置一些常见属性来控制是否可以编辑字段以及如何编辑字段。

微件显示

仅适用于 Drag and drop 设计者模式下,此组帮助您配置分配给字段的小部件的外观:

  • Show label :指示是否应在表单中显示字段名

  • Override label color :将特定颜色应用于字段标签

  • Override label font :将特定字体属性(粗体、斜体、下划线、删除线或字体系列)应用于字段标签

常规选项
  • Alias :用于字段的人类可读名称。别名将显示在要素表格、属性表或中 Identify results 面板。它还可以用作 expression builder ,轻松表达理解和评论。别名保存在项目文件中。

  • Comment :显示字段的注释,如 Fields 选项卡,处于只读状态。当将鼠标悬停在要素表单中的字段标签上时,此信息将显示为工具提示。

  • 复选框 Editable :取消选中此选项可将该字段设置为只读(不可手动修改),即使层处于编辑模式。请注意,选中此设置不会覆盖提供程序的任何编辑限制。此选项可以由数据定义的属性控制,这要归功于 数据定义 Data-defined override 纽扣。

  • 复选框 Reuse last entered value :记住在此字段中输入的最后一个值,并将其用作在该层中编辑的下一个要素的默认值。

  • 复选框 Label on top :将字段名放在功能表单中小工具的上方或旁边。

制约因素

您可以约束要在该字段中插入的值。此约束可以是:

  • 复选框 Not null :要求用户提供一个值;

  • 复选框 Unique :保证插入的值在整个字段中是唯一的;

  • 基于一种习俗 expression 例如: not regexp_match(col0,'[^A-Za-z]') 将确保该字段的值 col0 只有字母表。可以添加简短的描述来帮助您记住约束。

无论何时在字段中添加或编辑值,它都会提交到现有约束和:

  • 如果符合所有要求,则在表单中的字段旁边显示绿色复选标记;

  • 如果不满足所有要求,则该字段将显示为黄色或橙色,并在小部件旁边显示相应的十字。您可以将鼠标悬停在十字架上,以提醒对该字段应用了哪些约束并固定值:

    • 当未满足的约束是未强制的约束时,会出现一个黄色十字 (soft constraint )并且它不会阻止您用“错误的”值保存更改;

    • 橙色十字不能被忽略,并且不允许您保存修改,直到它们满足约束。它在以下情况下出现 复选框 Enforce constraint 选项已选中 (hard constraint )。

缺省值
  • Default value :对于新要素,默认情况下会自动使用预定义的值或 expression-based one 。例如,您可以:

    • 使用 $x$length$area 在创建时使用要素的X坐标、长度、面积或任何几何信息自动填充字段;

    • 使用将每个新要素的字段递增1 maximum("field")+1

    • 使用保存要素创建日期时间 now()

    • 使用 variables 在表达式中,使插入运算符名等操作变得更容易 (@user_full_name )、项目文件路径 (@project_path )、……

    结果缺省值的预览显示在小部件的底部。

    备注

    这个 Default value 选项不知道正在创建的要素的任何其他字段中的值,因此不可能使用组合任何这些值的表达式,即使用如下表达式 concat(field1, field2) 可能行不通。

  • 复选框 Apply default value on update :无论何时更改要素属性或几何图形,都会重新计算默认值。这对于保存上次修改数据的用户、上次更改数据的值可能很方便……

政策

Policies 允许您确定在以下情况下如何为字段赋值 Splitting features

  • Duplicate Values :为生成的拆分要素保留该字段的现有值。

  • Use Default Value :通过重新计算其 default value 。如果不存在DEFAULT VALUE子句,则为生成的拆分特征保留现有值。

  • Remove Value :将该字段清除为未设置状态。

  • Use Ratio Geometries :通过将现有值乘以拆分部分长度或面积的比率,重新计算所有拆分部分的字段值。

编辑小部件

基于字段类型,QGIS会自动确定并为其分配默认的小部件类型。然后,您可以用与该字段类型兼容的任何其他小部件替换该小部件。可用的小部件包括:

  • Binary (BLOB) :仅适用于二进制字段,如果不为空,则默认情况下显示带有嵌入数据大小的标签。标签旁边的下拉按钮允许:

    • Embed file 、替换或填充该字段

    • Clear contents ,删除该字段中的所有数据

    • Save contents to file ,将数据导出为磁盘上的文件

    还可以在现场预览嵌入的二进制文件,如果以拖放形式与例如 QML or HTML widget

  • Checkbox :显示一个复选框,其状态定义要插入的值。

  • Classification :仅在以下情况下可用 categorized symbology 应用于该层,则会显示一个带有类的值的组合框。

  • Color :显示 color widget 从而允许选择颜色;该颜色值被存储为属性表中的html符号。

  • Date/Time :显示行字段,可以打开日历小工具输入日期和/或时间。列类型必须为文本。您可以选择自定义格式、弹出日历等。

  • Enumeration :打开一个组合框,其中包含从数据库提取的预定义的值。目前,只有PostgreSQL提供程序支持以下字段 enum 打字。

  • Attachment :使用“打开文件”对话框以相对或绝对模式存储文件路径。它可用于显示超链接(到文档路径)、图片或网页。用户还可以配置 external storage system 来获取/存储资源。

    小技巧

    Relative Path in Attachment widget

    如果使用文件浏览器选择的路径与 .qgs 项目文件或更低版本,则路径将转换为相对路径。这增加了 .qgs 附加多媒体信息的项目。

  • Hidden :隐藏的属性列不可见。用户无法查看其内容。

  • Key/Value :显示一个包含两列的表,用于在单个字段中存储多组键/值对。对于的字段,目前受PostgreSQL提供程序支持 hstore 打字。

  • JSON View :在语法突出显示的文本编辑或树视图中显示JSON数据。此小工具当前为只读。有几个选项可用于更改数据的显示方式。“Default view”指定小工具应该以文本模式还是树模式显示。‘Format JSON’有三个选项,这三个选项仅与树视图相关:

    • 缩进:以人类可读的形式显示数据,其中包含换行符和四个空格字符用于缩进。

    • 紧凑:以单行大小的优化字符串显示数据,不带换行符或空格。

    • 已禁用:显示来自提供程序的数据。

  • List :显示单列表,以便在单个字段中添加不同的值。对于的字段,目前受PostgreSQL提供程序支持 array 打字。

  • Range :允许您设置特定范围内的数值。编辑小工具可以是滑块,也可以是数字显示框。

  • Relation Reference 时,这是分配给引用字段(即子层中的外键)的默认微件 relation 已经设置好了。它提供了对父功能部件表单的直接访问,而父功能部件表单又嵌入了其子功能部件的列表和表单。

  • Text Edit (默认):这将打开一个文本编辑字段,允许使用简单文本或多行。如果选择多行,也可以选择html内容。

  • Unique Values :您可以选择属性表中已使用的值之一。如果激活了“可编辑”,将显示具有自动补全功能的行编辑,否则将使用组合框。

  • Uuid Generator :生成只读UUID(通用唯一标识符)字段,如果为空。

  • Value Map :包含预定义项目的组合框。值存储在属性中,说明显示在组合框中。可以手动定义值,也可以从图层或CSV文件中加载值。

  • Value Relation :提供组合框中相关表中的值。可以选择层、索引列和值列。有几个选项可用于更改标准行为:允许空值、按值排序、允许多选和使用自动补全。启用完成器复选框后,表单将显示一个下拉列表或行编辑字段。

    如果存储在PostgreSQL、GeoPackage或SpatiaLite中的某个层被配置为使用值关系微件,但所需的层尚未加载到工程中,则QGIS将自动在同一数据库/连接中搜索该层。

16.1.10. 联接属性

这个 会合 Joins 选项卡可用于关联当前图层的要素(称为 Target layer )到来自另一个加载的矢量层(或表)的要素。连接基于层共享的属性。这些层可以是无几何的(表),也可以不是,但它们的连接属性应该是相同类型的。

要创建联接,请执行以下操作:

  1. 单击 符号系统添加 Add new join 纽扣。这个 Add vector join 此时会出现一个对话框。

  2. 选择 Join layer 您想要连接到目标矢量层

  3. 指定 Join field 以及 Target field 连接层和目标层共有的

  4. 新闻发布会 OK 并将选定参数的摘要添加到 Join 面板。

../../../_images/join_attributes.png

图 16.44 将属性表连接到现有矢量图层

上面的步骤将创建一个连接,其中 ALL 关联图层中第一个匹配要素的属性将添加到目标图层的要素中。QGIS提供了更多选项来调整连接:

  • 复选框 Cache join layer in virtual memory :允许您将连接层中的值缓存到内存中(没有几何图形),以加快查找速度。

  • 未选中 Create attribute index on the join field

  • 未选中 Dynamic form :帮助动态同步连接字段,根据 Target field 。这样,联接字段的约束也会正确更新。请注意,它在默认情况下是停用的,因为如果您有很多功能或无数的联接,它可能会非常耗时。

  • 如果目标层是可编辑的,则会在属性表中的字段旁边显示一些图标,以告知其状态:

    • 不能编辑的连接 :连接层未配置为可编辑。如果希望能够编辑目标属性表中的连接要素,则必须选中该选项 复选框 Editable join layer

    • 已加入的层不能编辑 :连接层已正确配置为可编辑,但其当前状态为只读。

    • Join HasNotUpsertOnEdit :连接层是可编辑的,但同步机制未激活。如果要在目标图层中创建要素时自动在连接图层中添加要素,则必须选中该选项 复选框 Upsert on edit 。对称地说,该选项 复选框 Delete cascade 如果要自动删除连接要素,可能会激活。

  • 未选中 Joined fields :您可以指定一个子集,而不是添加关联图层中的所有字段。

  • 未选中 Custom field name prefix 对于连接的字段,以避免名称冲突

QGIS目前支持连接GDAL(如CSV、DBF和Excel)、分隔文本和PostgreSQL提供程序支持的非空间表格式。

16.1.11. 辅助存储属性

自定义样式和标注的常规方法是使用数据定义的特性,如中所述 数据定义的覆盖设置 。但是,如果基础数据是只读的,则可能是不可能的。此外,配置这些数据定义的属性可能非常耗时或不可取!例如,如果要充分使用随附的地图工具 标签工具栏 ,然后您需要在原始数据源中添加和配置20多个域(X和Y位置、旋转角度、字体样式、颜色等)。

辅助存储机制为这些限制和笨拙的配置提供了解决方案。辅助字段是自动管理和存储这些数据定义的属性(标签、示意图、符号系统...)的间接方法在SQLite数据库中,这要感谢可编辑的联接。这允许您存储不可编辑的层的属性。

矢量图层属性对话框中有一个选项卡可用于管理辅助存储:

../../../_images/auxiliary_storage_tab.png

图 16.45 辅助存储选项卡

16.1.11.1. 贴标签

考虑到由于数据定义的属性不可编辑,可能会对数据源进行自定义,请参阅中所述的标注地图工具 标签工具栏 在标签激活后始终可用。

实际上,辅助存储系统需要一个辅助层来将这些属性存储在SQLite数据库中(请参见 辅助存储数据库 )。它的创建过程在您第一次单击地图时运行,同时标签地图工具当前处于激活状态。然后,将显示一个窗口,您可以在其中选择用于连接的主键(以确保唯一标识要素):

../../../_images/auxiliary_storage_key.png

图 16.46 辅助层创建对话框

一旦为当前数据源配置了辅助层,您就可以在选项卡中检索其信息:

../../../_images/auxiliary_storage_tabkey.png

图 16.47 辅助层索引

辅助层现在具有以下特征:

  • 主键是 ID

  • 确实有 0 使用辅助字段的要素,

  • 确实有 0 辅助字段。

现在已创建辅助层,您可以编辑层标签。在标签上单击,同时 ChangeLabelProperties Change Label 地图工具被激活,然后您可以更新样式属性,如大小、颜色等。将创建相应的数据定义特性,并可以检索这些特性:

../../../_images/auxiliary_storage_fields.png

图 16.48 辅助字段

正如您在上图中所看到的, 21 系统会自动创建和配置用于标记的字段。例如, FontStyle 辅助字段类型为 String 并被命名为 labeling_fontstyle 在底层SQLite数据库中。还有就是 1 当前正在使用这些辅助字段的功能。

请注意,图标 数据定义打开 显示在 Labels 属性选项卡,指示已正确设置数据定义的覆盖选项:

../../../_images/auxiliary_storage_dd.png

图 16.49 自动创建的数据定义特性

Otherwise, there's another way to create an auxiliary field for a specific property thanks to the 数据定义 Data-defined override button. By clicking on Store data in the project, an auxiliary field is automatically created for the Opacity field. If you click on this button and the auxiliary layer is not created yet, a window (图 16.46) is first displayed to select the primary key to use for joining.

16.1.11.2. 符号学

与上面描述的定制标签的方法一样,辅助字段也可用于样式化符号和图表。要执行此操作,请单击 数据定义 Data-defined override 并选择 Store data in the project 对于特定的属性。例如, Fill color 字段:

../../../_images/auxiliary_storage_symbol.png

图 16.50 符号的数据定义特性菜单

每个符号都有不同的属性(如填充样式、填充颜色、笔触颜色等),因此表示属性的每个辅助字段都需要唯一的名称以避免冲突。在选择之后 Store data in the project ,将打开一个窗口并显示 Type 并提示您为辅助字段输入唯一的名称。例如,在创建 Fill color 辅助字段打开以下窗口:

../../../_images/auxiliary_storage_symbol_name.png

图 16.51 符号的辅助字段的名称

创建后,可以在辅助存储选项卡中检索辅助字段:

../../../_images/auxiliary_storage_symbol_field.png

图 16.52 辅助字段符号

16.1.11.3. 属性表和微件

辅助字段可以使用 attribute table 。但是,并非所有辅助字段最初在属性表中都可见。

表示层的符号系统、标注、外观或逻辑示意图属性的辅助字段将自动显示在属性表中。例外情况是可以使用 Label Toolbar 它们在默认情况下是隐藏的。辅助字段,表示 Color 有一个小工具 Color 默认设置,否则辅助字段默认为 Text Edit 小工具。

辅助字段,表示可以使用 Label toolbarHidden 默认情况下在属性表中。若要使字段可见,请打开 Attribute Form properties tab 并更改辅助字段的值 Widget Type 从… Hidden 设置为另一个相关的值。例如,更改 auxiliary_storage_labeling_sizeText Edit 或改变 auxiliary_storage_labeling_color 发送到 Color 小工具。这些字段现在将在属性表中可见。

属性表中的辅助字段将如下图所示:

../../../_images/auxiliary_storage_widgets.png

图 16.53 带有辅助字段的表单

16.1.11.4. 管理

这个 Auxiliary Layer 菜单允许您管理辅助字段:

../../../_images/auxiliary_storage_actions.png

图 16.54 辅助层管理

第一项 Create 在这种情况下禁用,因为辅助层已经创建。但在新作品的情况下,可以使用此操作来创建辅助层。如中所述 贴标签 ,那么就需要一个主键。

这个 Clear 操作允许保留所有辅助字段,但删除其内容。这样,使用这些字段的要素数量将降至 0

这个 Delete 操作将完全移除辅助层。换句话说,相应的表将从底层SQLite数据库中删除,属性定制将丢失。

最后, Export 操作允许将辅助层另存为 new vector layer 。请注意,几何图形不存储在辅助存储器中。但是,在这种情况下,几何图形也会从原始数据源导出。

16.1.11.5. 辅助存储数据库

当您使用 .qgs 格式,则用于辅助存储的SQLite数据库保存在相同位置,但扩展名为 .qgd

为了方便起见,可以改用存档,这要归功于 .qgz 格式化。在这种情况下, .qgd.qgs 这两个文件都嵌入到存档中。

16.1.12. 操作属性

这个 行动 Actions 选项卡提供了基于要素属性执行操作的功能。这可用于执行任意数量的操作,例如,运行带有从要素属性构建的参数的程序,或将参数传递给Web报告工具。

../../../_images/action_dialog.png

图 16.55 包含一些示例操作的概述操作对话框

当您经常希望运行外部应用程序或查看基于向量层中的一个或多个值的网页时,动作非常有用。它们有不同的类型,可以像这样使用:

  • GenericmacOSWindowsUnix 操作启动一个外部进程。

  • Python 操作执行一个Python表达式。

  • GenericPython 行动随处可见。

  • macOSWindowsUnix 操作仅在各自的平台上可见(即,您可以定义三个“编辑”操作来打开一个编辑器,而用户只能看到并执行一个“编辑”操作来运行该编辑器)。

  • Open URL :使用HTTP GET请求打开提供的URL。

  • Submit URL (urlencoded or JSON) :与 Open URL 操作,但使用的是HTTP POST请求。如果正文是有效的JSON,则使用“应用程序/x-www-form-urlencode”或“应用程序/json”将数据发布到URL。

    行动号召的一个例子可以是:

    http://localhost:8000?/[% url_encode(map('file', 'index.php')) %]
    
  • Submit URL (multipart) :与 Open URL 操作,但使用的是HTTP POST请求。数据被发布到一个URL,使用“MultiPart/Form-Data”。

该对话框中包含几个示例。您可以通过点击 Create Default Actions 。要编辑任何示例,请双击其所在的行。一个例子是基于属性值执行搜索。这一概念将在下面的讨论中使用。

这个 复选框 Show in Attribute Table 允许您在属性表对话框中显示选中的要素范围的操作,如下所示 Combo Box 或作为 Separate Buttons (见 配置列 )。

16.1.12.1. 定义操作

要定义属性操作,请打开向量 Layer Properties 对话框中,然后单击 Actions 标签。在 Actions 选项卡中,单击 符号系统添加 Add a new action 要打开 Edit Action 对话框中。

选择操作 Type 并提供操作的描述性名称。操作本身必须包含调用操作时将执行的应用程序的名称。您可以将一个或多个属性字段值作为参数添加到应用程序。调用该操作时,任何以 % 后跟的字段名称将替换为该字段的值。特殊字符 %% 将替换为从识别结果或属性表中选择的字段的值(请参见 使用操作 )。双引号可用于将文本分组为程序、脚本或命令的单个参数。如果前面有反斜杠,则双引号将被忽略。

这个 Action Scopes 允许您定义操作应在何处可用。您有以下选择:

  1. Field :在属性表、要素表格和主工具栏的默认操作按钮中右键单击单元格时,操作可用。

  2. Feature :当在属性表中的单元格中单击鼠标右键时,可执行操作。

  3. Canvas :操作在工具栏的主操作按钮中可用。

  4. Form :操作仅在使用 drag-and-drop 模式。

  5. Layer :操作在属性表工具栏的操作按钮中可用。请注意,此类操作涉及整个层,而不是单个要素。

如果您的字段名是其他字段名的子字符串(例如, col1col10 ),您应该用方括号将字段名称(和字符)括起来(例如, [%col10] )。这将防止 %col10 字段名不会被误认为 %col1 字段名称中包含 0 在最后。当QGIS替换该字段值时,方括号将被删除。如果希望替换的字段用方括号括起来,请使用第二组,如下所示: [[%col10]]

使用 Identify Features 工具,您可以打开 Identify Results 对话框中。它包括一个 (Derived) 包含与层类型相关的信息的项。可以使用与其他字段类似的方式访问此项目中的值,方法是将派生的字段名称 (Derived). 。例如,点图层具有 XY 字段,并且这些字段的值可用于 %(Derived).X%(Derived).Y 。派生属性仅可从 Identify Results 对话框,而不是 Attribute Table 对话框中。

下面显示了两个操作示例:

  • konqueror https://www.google.com/search?q=%nam

  • konqueror https://www.google.com/search?q=%%

在第一个示例中,Web浏览器Konallor被调用并传递一个URL以打开。URL在Google上搜索 nam 来自我们的矢量层的场。请注意,操作调用的应用程序或脚本必须位于路径中,或者您必须提供完整路径。可以肯定的是,我们可以将第一个示例重写为: /opt/kde3/bin/konqueror https://www.google.com/search?q=%nam 。这将确保在调用操作时执行Konquor应用程序。

The second example uses the %% notation, which does not rely on a particular field for its value. When the action is invoked, the %% will be replaced by the value of the selected field in the identify results or attribute table.

16.1.12.2. 使用操作

QGIS提供了多种方法来执行您在层上启用的操作。根据它们的设置,它们可能可用:

  • 在的下拉菜单中 操作运行 Run Feature Action 按钮中的 Attributes toolbarAttribute table 对话框;

  • 使用鼠标右键单击要素时 识别 Identify Features 工具(请参见 识别功能 了解更多信息);

  • Identify Results 面板,在 Actions 节目组;

  • 作为 Actions 列中的 Attribute Table 对话框中。

如果要调用的操作使用 %% 表示法,右击 Identify Results 对话框或 Attribute Table 要传递给应用程序或脚本的对话框。

下面是另一个使用bash和 echo 命令(因此它只能在 尼克斯 或者也许 OSX )。有问题的图层具有用于物种名称的字段 taxon_name ,纬度 lat 和经度 long 。我们希望能够对地点进行空间选择,并将这些字段值导出到所选记录的文本文件中(在QGIS地图区域中以黄色显示)。以下是实现这一目标的行动:

bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt"

在选择几个位置并对每个位置运行操作后,打开输出文件将显示如下所示:

Acacia mearnsii -34.0800000000 150.0800000000
Acacia mearnsii -34.9000000000 150.1200000000
Acacia mearnsii -35.2200000000 149.9300000000
Acacia mearnsii -32.2700000000 150.4100000000

作为练习,我们可以创建一个在 lakes 一层。首先,我们需要确定对关键字执行搜索所需的URL。这很容易做到,只需去谷歌进行简单的搜索,然后从浏览器的地址栏中抓取URL。从这一小工作中,我们可以看到格式是https://www.google.com/search?q=QGIS,,其中 QGIS 是搜索词。有了这些信息,我们就可以继续:

  1. 确保 lakes 层已加载。

  2. 打开 Layer Properties 对话框,方法是双击图例中的图层,或单击鼠标右键并选择 Properties 从弹出式菜单中。

  3. 按下 Actions 标签。

  4. 单击 符号系统添加 Add a new action

  5. 选择 Open URL 操作类型、

  6. 输入操作的名称,例如 Google Search

  7. 此外,您还可以添加一个 Short Name 或者甚至是一个 Icon

  8. 选择 Action Scopes 。看见 定义操作 了解更多信息。保留本例的默认设置。

  9. 对于操作,添加用于进行谷歌搜索的URL,最多但不包括搜索词: https://www.google.com/search?q=

  10. 文件中的文本 Action 字段现在应该如下所示::

    https://www.google.com/search?q=
    
  11. 单击包含字段名称的下拉框 lakes 一层。它就在 Insert 纽扣。

  12. 从下拉框中,选择 NAMES 并点击 Insert

  13. 您的操作文本现在如下所示::

    https://www.google.com/search?q=[%NAMES%]
    
  14. 要完成并添加操作,请单击 OK 纽扣。

    ../../../_images/add_action_edit.png

    图 16.56 使用示例配置的编辑操作对话框

这就完成了操作,可以使用了。

关闭 Layer Properties 对话框并放大到感兴趣的区域。确保 lakes 层处于活动状态,并标识一个湖。在结果框中,您现在将看到我们的操作是可见的:

../../../_images/action_identifyaction.png

图 16.57 选择要素并选择操作

当我们单击该操作时,它会调出我们的默认浏览器并导航到URL https://www.google.com/search?q=Tustumena.还可以将更多属性字段添加到操作中。因此,您可以添加一个 + 在操作文本的末尾,选择另一个字段并单击 Insert Field 。在本例中,没有其他可用字段可以用于搜索。

您可以为一个层定义多个操作,每个操作都将显示在 Identify Results 对话框中。

您还可以通过选择一行并单击鼠标右键,然后从弹出菜单中选择操作来调用属性表中的操作。

动作有各种用途。例如,如果您的点图层包含图像或照片的位置以及文件名,则可以创建一个动作来启动查看器以显示图像。您还可以使用操作来启动属性字段或字段组合的基于Web的报告,指定它们的方式与我们在Google搜索示例中所做的相同。

我们还可以制作更复杂的示例,例如,使用 Python 行为。

通常,当我们创建一个用外部应用程序打开文件的操作时,我们可以使用绝对路径,或者最终使用相对路径。在第二种情况下,该路径相对于外部程序可执行文件的位置。但是,如果我们需要使用相对路径,相对于选定的层(基于文件的层,如shapefile或SpatiaLite),该怎么办?下面的代码将完成此任务:

command = "firefox"
imagerelpath = "images_test/test_image.jpg"
layer = qgis.utils.iface.activeLayer()
import os.path
layerpath = layer.source() if layer.providerType() == 'ogr'
  else (qgis.core.QgsDataSourceURI(layer.source()).database()
    if layer.providerType() == 'spatialite' else None)
path = os.path.dirname(str(layerpath))
image = os.path.join(path,imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )

我们只需要记住,动作是一种类型 Python 以及 commandimagerelpath 必须改变变量以适应我们的需要。

但是,如果相对路径需要相对于(保存的)项目文件怎么办?该Python操作的代码为:

command = "firefox"
imagerelpath = "images_test/test_image.jpg"
projectpath = qgis.core.QgsProject.instance().fileName()
import os.path
path = os.path.dirname(str(projectpath)) if projectpath != '' else None
image = os.path.join(path, imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )

另一个Python操作示例是允许我们向项目添加新层的示例。例如,下面的示例将分别向项目添加一个矢量和一个栅格。要添加到项目中的文件的名称和要指定给层的名称是数据驱动的( filenamelayername 是在其中创建操作的矢量的属性表的列名):

qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp',
  '[% "layername" %]', 'ogr')

要添加栅格(本例中为TIF图像),它将变为:

qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif',
  '[% "layername" %]')

16.1.13. 显示属性

这个 显示 Display 选项卡可帮助您配置用于功能标识的字段:

  • 这个 Display name :基于字段或 expression 。默认情况下,如果没有包含的字段,则会将其设置为图层中的第一个字段 <name> 组件已存在。它用作:

    • 中显示在要素信息顶部的标签 Identify tool 结果

    • 中使用的字段 locator bar 在所有图层中查找要素时

    • 属性表中的要素标识符 form view

    • 将地图或布局导出为分层输出格式(如GeoPDF)时的要素标识符

    • 地图提示信息,即将鼠标悬停在活动图层的要素上时在地图画布中显示的消息 地图提示 Show Map Tips 图标已按下。适用于以下情况 复选框 Enable Map Tips 处于活动状态,并且没有 HTML Map Tip 已经设置好了。

  • 复选框 Enable Map Tips 控制是否显示该层的地图提示

  • 这个 HTML Map Tip 是专门为地图提示创建的:它是一个更复杂和完整的HTML文本,混合了字段、表达式和html标签(多行、字体、图像、超链接...)。您可以使用 HTML Map Tip Preview 以便更轻松地设计地图提示。

../../../_images/display_html.png

图 16.58 地图提示的HTML代码

要显示地图提示,请执行以下操作:

  1. 选择菜单选项 View ► Show Map Tips 或点击 地图提示 Show Map Tips 的图标 Attributes Toolbar

  2. 确保您的目标层处于活动状态并且具有 复选框 Enable Map Tips 财产已检查完毕。

  3. 移动到某个功能上,相应的信息将显示在上面。

地图提示是一种跨层功能,这意味着一旦激活,它将保持打开状态,并应用于项目中任何启用地图提示的图层,直到将其关闭。

../../../_images/map_tip.png

图 16.59 使用HTML代码生成的地图提示

16.1.14. 渲染属性

../../../_images/vector_rendering.png

图 16.60 层渲染属性对话框

这个 渲染 Rendering 选项卡提供以下属性:

  • 在……下面 未选中 Scale dependent visibility ,您可以设置 Maximum (inclusive)Minimum (exclusive) 比例,定义要素将可见的比例范围。在这个范围之外,他们是隐藏的。这个 地图标识 Set to current canvas scale 按钮帮助您使用当前地图画布比例作为范围可见性的边界。看见 可见性比例选择器 以获取更多信息。

    备注

    您还可以从中激活图层上的比例相关可见性 Layers 面板:在层上单击鼠标右键并在上下文菜单中选择 Set Layer Scale Visibility

  • QGIS提供了对动态功能泛化的支持。在以小比例绘制许多复杂要素时,这可以缩短渲染时间。可使用在图层设置中启用或禁用此功能 复选框 Simplify geometry 选择。还有一个全局设置,默认情况下会启用新添加的图层的概化(请参阅 global simplification 了解更多信息)。

    备注

    在某些情况下,特征泛化可能会在渲染输出中引入瑕疵。在使用基于偏移的符号图层时,这些问题可能包括多边形之间的狭缝和渲染不准确。

  • 这个 未选中 Fixed reference scale 指示使用基于纸张的单位(例如毫米或磅)的符号系统和标签大小所涉及的地图比例。每当以不同的比例查看地图时,大小都会相应地进行缩放。

    例如,使用2 mm宽、1:2000的线的线图层 Reference scale 当以1:1000查看地图时,将使用4 mm宽的线条渲染SET。

  • 这个 Selections 组允许您控制是否应使用特定颜色或符号来代替默认颜色 (Project properties ► General ► Selection color )用于特定层。这对于提高具有特定符号系统的选定要素的可见性非常有用:

    • Use default selection color

    • Override color for selected features :例如,如果默认情况下层使用黄色,并且标准黄色选择不可见。

    • Override symbol for selected features :例如,如果线条层使用细符号,并且对线条进行着色可能不会使它们足够明显,则使用较粗的线条覆盖符号可能会有所帮助。此外,如果该层使用栅格符号系统或带有颜色渐变符号系统的渐变填充/线条/形状猝发,则根本不会应用默认选择颜色;能够设置特定的更简单的符号以用于该层中的选定要素会有所帮助。

  • 渲染极其详细的层(例如,具有大量节点的多边形层)可能会导致PDF/SVG格式的版面导出非常大,因为所有节点都包含在导出的文件中。这还会使生成的文件在其他程序中使用/打开时速度非常慢。

    正在检查 复选框 Force layer to render as raster 强制栅格化这些层,以便导出的文件不必包含这些层中包含的所有节点,从而加快渲染速度。

    您也可以通过强制将布局导出为栅格来实现这一点,但这是一个要么全有要么全无的解决方案,因为栅格化应用于所有层。或者,您也可以依赖中的几何简化 layout export settings

  • 未选中 Refresh layer at interval :控制层是否可以刷新以及刷新的规则程度。可用 Configuration 选项包括:

    • Reload data :该层将被完全刷新。任何缓存的数据都将被丢弃,并从提供程序中重新获取。此模式可能会导致较慢的地图刷新。

    • Redraw layer only :此模式对于动画或定期更新层样式时非常有用。如果多个层设置了自动更新间隔,则会延迟画布更新,以避免多次刷新。

    还可以将 Interval (seconds) 在连续的茶点之间。

  • 根据数据提供程序(例如,PostgreSQL)的不同,当更改应用于QGIS之外的数据源时,可以向QGIS发送通知。使用 复选框 Refresh layer on notification 用于触发更新的选项。您还可以将图层刷新限制为中的特定消息集 复选框 Only if message is 文本框。

16.1.15. 时态属性

这个 时态 Temporal 选项卡提供了随着时间推移控制层渲染的选项。这种动态呈现需要 temporal navigation 在地图画布上启用。

../../../_images/vector_temporal.png

图 16.61 矢量图层时态属性对话框

查看 复选框 Dynamic Temporal Control 用于配置矢量层时态渲染的选项。根据数据集的结构,您可能希望使用提供的 Configuration 选项:

  • Fixed time range :如果地图画布时间框与给定的重叠,则渲染所有要素 Start dateEnd date 射程。

  • Single field with date/time :如果要素的 Field 的值落在地图画布的时间框架内。 Event duration 可以设置。通过检查 Accumulate features over time 选项,则将继续渲染在地图的时间范围之前或范围内出现的所有要素。因此,事件持续时间被忽略。

  • Separate fields for start and end date/time :如果要素的指定范围为 Start fieldEnd field 值与地图画布上的时间重叠。

  • Separate fields for start and event duration :如果要素的范围由其定义 Start fieldEvent duration field 值与地图画布上的时间重叠。

  • Start and end date/time from expressions :如果在字段指定的时间范围内渲染要素 Start expressionEnd expression 与地图画布时间重叠。

  • Redraw layer only :在每个新的动画帧重新绘制该层,但不会对要素应用基于时间的过滤。当层使用基于时间的表达式值作为渲染器设置(例如,数据定义的符号系统)时,该选项非常有用。

还可以将 Limits 这些功能的时间范围如下:

  • Include start, exclude end

  • Include start, include end

16.1.16. 变量属性

这个 表达式 Variables 选项卡列出了层级别的所有可用变量(包括所有全局变量和项目变量)。

它还允许用户管理层级别的变量。单击 符号系统添加 按钮添加新的自定义层级变量。同样,从列表中选择一个自定义层级变量,然后单击 符号系统移除 按钮将其删除。

有关通用工具中变量用法的详细信息 将值存储在变量中 一节。

16.1.17. 高程属性

这个 高程比例尺 Elevation 选项卡提供了用于控制 3D map view 以及它的出现在 profile tool charts 。具体而言,您可以设置:

../../../_images/vector_elevation.png

图 16.62 矢量层高程属性对话框

  • Elevation Clamping :定义要素的海拔高度应如何以及是否应为:

    • Clamped to terrain :直接从地形高度获取高程,并忽略要素中的任何现有Z值。A数据定义 Offset 也可以填充来自地形的值。

    • Relative to terrain :要素中的任何现有Z值都将添加到地形高度。一个 Scale 系数后跟数据定义的 Offset 可用于调整标高。此选项不适用于二维几何图形层。

    • Absolute :忽略地形高度,直接从高程的要素中获取Z值。一个 Scale 系数后跟数据定义的 Offset 可用于调整标高。对于2D几何图形图层(没有Z值),数据定义 Base height 可以改为设置。

  • 未选中 Enable extrusion :您可以设置一个 Height 以控制要素在其底部上方垂直延伸的高度。这便于指示2D几何体层(例如,多边形建筑轮廓层)实际上表示3D对象。

  • Elevation Binding :仅在合并 Elevation clamping 根据具有线或多边形层的地形,此选项控制要素高程相对于地形高度的设置方式。可以对地形进行采样:

    • 在特辑的 Centroid ,质心高度与每个顶点的z值相加

    • 在每个人身上 Vertex 在添加到顶点的z值之前

  • Profile Chart Appearance :控制绘制纵断面图时如何渲染要素。两条主线 Interpretation 模式有以下几种:

    • AS Individual features :对横截面轮廓线与矢量要素相交的离散位置进行采样。根据层类型和是否应用拉伸,该交点可以表示为点、线或曲面。

      带检查 复选框 Respect layer symbology ,要素将与其对应的要素一起呈现在剖面图上 layer styling (例如,允许在配置文件图表上看到已分类的类别)。如果纵断面符号类型与层的渲染器符号类型不匹配,则仅将渲染器中的符号颜色应用于纵断面符号。

      根据图层设置,可以使用自定义样式表示纵断面符号,具体方式如下:

      • Marker style :用于非拉伸点要素和线要素,以及由轮廓线接触的非拉伸面要素

      • Line style :用于拉伸点和线要素,以及与轮廓线相交的非拉伸面要素

      • Fill style :用于拉伸面要素

    • AS Continuous Surface (e.g. contours) :通过将采样的高程结果连接到一条连续线,高程图将被渲染为曲面,而不是单独的要素。这可以增强可视化,并为代表连续高程曲面的矢量层而设计,例如等高线或测量的高程点。这条线 Style 可以设置为:

      • 个人资料 Line 使用一个 Line style 套用

      • 具有以下特征的曲面 Fill below 以及相应的 Fill style

      此外,您还可以查看 未选中 Show markers at sampled points 使它们在解释线上可见,并为它们分配一个 Marker style

16.1.18. 元数据属性

这个 编辑元数据 Metadata 选项卡提供了在您的层上创建和编辑元数据报告的选项。看见 元数据 以获取更多信息。

16.1.19. 依赖项属性

这个 相依性 Dependencies 选项卡允许声明层之间的数据依赖关系。当一个层中的数据修改(而不是通过直接用户操作)可能修改其他层的数据时,就会发生数据相关性。例如,在修改另一个层的几何体之后,通过数据库触发器或定制的PyQGIS脚本更新层的几何体就是这种情况。

Dependencies 选项卡中,您可以选择任何可能在外部更改当前层中的数据的层。正确指定依赖层允许QGIS在更改依赖层时使该层的缓存无效。

16.1.20. 图例属性

这个 传说 Legend 属性选项卡为您提供了 Layers panel 和/或 print layout legend 。这些选项包括:

  • 根据应用于该层的符号系统的不同,您可能会在图例中显示多个条目,不一定可读/可用来显示。这个 Legend placeholder image 帮助您 select an image 对于替换,显示在 Layers 面板和打印布局图例。

  • 复选框 Show label legend :将不同标签设置的概述显示为图例中的条目。这个 label style 随说明一起预览。

  • 复选框 Text on symbols :在某些情况下,向图例中的符号添加额外信息可能很有用。使用此框架,您可以对在图层符号系统中使用的任何符号施加显示在符号上方的文本,这两个 Layers 面板和打印布局图例。此映射通过在表小部件中的符号旁边键入每个文本或使用 Set Labels from Expression 纽扣。文本的字体和颜色选择器小部件处理文本外观 Text Format 纽扣。

../../../_images/text_legend_symbols.png

图 16.63 在符号上设置文本(左)并在 Layers 面板(右)

  • 可以嵌入到层面板的层树中的构件列表。我们的想法是有一种方法可以快速访问一些经常与层一起使用的操作(设置透明度、过滤、选择、样式或其他东西...)。

    默认情况下,QGIS提供透明小部件,但可以通过插件注册自己的小部件并将自定义操作分配给它们管理的层来扩展这一功能。

16.1.21. QGIS服务器属性

这个 覆盖层 QGIS Server 选项卡由以下部分组成 DescriptionAttributionMetadata URL ,以及 Legend URL 横断面。

Description 节中,您可以更改 Short name 用于在请求中引用该图层(要了解有关短名称的详细信息,请阅读 简称 )。您还可以添加或编辑 TitleAbstract 用于层,或定义 Keyword list 这里。这些关键字列表可以在元数据目录中使用。如果要使用XML元数据文件中的标题,则必须在 Data URL 菲尔德。

使用 Attribution 从XML元数据目录获取属性数据。

在……里面 Metadata URL ,您可以将常规路径添加到XML元数据目录。此信息将保存在QGIS项目文件中以供后续会话使用,并将用于QGIS服务器。

Legend URL 部分中,可以在url字段中提供图例图像的url。您可以使用格式下拉选项来应用适当的图像格式。目前支持png、jpg和jpeg图像格式。

../../../_images/vector_server_properties.png

图 16.64 矢量图层属性对话框中的QGIS服务器选项卡

要了解有关QGIS Server的更多信息,请阅读 QGIS服务器指南/手册

16.1.22. 数字化特性

这个 数字化 Digitizing 选项卡可用于访问有助于确保数字化几何图形质量的选项。

../../../_images/vector_digitizing_properties.png

图 16.65 矢量图层属性对话框中的QGIS数字化选项卡

16.1.22.1. 自动修复

中的选项 Automatic Fixes 截面将直接影响添加或修改的任何几何体的顶点。如果 复选框 Remove duplicate nodes 选项,则将删除坐标完全相同的任何两个后续顶点。如果 Geometry precision 设置后,所有顶点都将舍入为配置的几何体精度的最接近倍数。舍入将在层坐标参考系中进行。Z和M值不四舍五入。对于许多地图工具,数字化时会在画布上显示栅格。

../../../_images/vertex_snap_to_grid.png

图 16.66 移动顶部折点会将所有折点捕捉到格网

16.1.22.2. 几何图形检查

Geometry checks 部分中,可以激活基于每个几何图形的其他验证。在任何几何图形修改后,这些检查中的失败立即在中报告给用户 Geometry validation 面板。只要检查失败,就不可能保存该层。这个 复选框 Is valid Check将运行基本的有效性检查,如几何图形的自交。

16.1.22.3. 拓扑检查

Topology checks 部分中,可以激活其他拓扑验证检查。当用户保存该层时,将执行拓扑检查。检查错误将在 Geometry validation 面板。只要存在验证错误,就无法保存该层。在修改后的要素的边界框区域中执行拓扑检查。由于同一区域中可能存在其他要素,因此将报告与这些要素有关的拓扑错误以及在当前编辑任务中引入的错误。

拓扑检查选项

图解

这个 复选框 Gap 检查将检查相邻多边形之间的间隙。

../../../_images/gapcheck.png

这个 复选框 Overlap 检查将检查相邻多边形之间的重叠。

../../../_images/overlapcheck.png

这个 复选框 Missing vertex 检查将检查相邻多边形的共享边界,其中一个边界缺少另一个边界上存在的顶点。

../../../_images/missingvertexcheck.png

缺口检查例外

有时,需要在多边形层中的区域内保留间隙,否则多边形层将完全覆盖多边形层。例如,土地利用层可能有可接受的湖泊洞穴。可以定义间隙检查中忽略的区域。由于这些区域内的间隙是允许的,因此我们将它们称为 Allowed Gaps 区域。

在下面的间隙检查选项中 Allowed Gaps ,一个 Allowed Gaps layer 可以配置。

每当执行间隙检查时, Allowed Gaps Layer 不会报告为拓扑错误。

还可以配置一个附加的 Buffer 。此缓冲区将应用于 Allowed Gaps Layer 。这使得测试不那么容易受到缝隙边界轮廓的微小变化的影响。

什么时候 Allowed Gaps 已启用,则会有一个附加按钮 (Add Allowed Gap )用于检测到的间隙错误,在几何图形验证驳接中可用,其中在数字化过程中报告间隙。如果 Add Allowed Gap 按钮,则具有检测到的间隙几何图形的新多边形将插入到 Allowed Gaps Layer 。这使得快速标记允许的间隙成为可能。

几何图形验证面板

这个 Geometry Validation 当上述任一数字化检查发现错误时,会触发面板。该对话框为您提供错误列表及其说明,您可以使用键盘箭头或专用箭头浏览该列表。

您需要先解决所有问题,然后才能保存对层的编辑。要执行此操作,请执行以下操作:

  1. 选择一个错误,可以执行以下操作:

    • 缩放至选定对象 Zoom to Feature(s)

    • ZoomToLayer Zoom to problem

  2. 选平常的吧 digitizing tools 来解决这个问题。