3.2. Lesson: 标签

可以将标签添加到地图以显示有关对象的任何信息。任何矢量层都可以具有与其关联的标签。这些标签的内容依赖于层的属性数据。

The goal for this lesson: 要将有用且美观的标签应用于层,请执行以下操作。

3.2.1. 基本信息 Follow Along: Using Labels

首先,确保 标记单个 按钮在图形用户界面中可见:

  1. 转到菜单项 View ► Toolbars

  2. 确保 Label Toolbar 项目旁边有一个复选标记。如果没有,请单击 Label Toolbar 项目来激活它。

  3. 按下 places 中的层 Layers 面板,使其高亮显示

  4. 按下 标记单个 工具栏按钮,打开 Labels 选项卡中的 Layer Styling 嵌板

  5. 切换自 No Labels标记单个 Single Labels

    您需要选择属性中的哪个字段将用于标签。在上一课中,您决定 name 菲尔德是最适合这一目的的。

  6. 选择 name 从值列表中:

    ../../../_images/select_label_with.png
  7. 单击 Apply

地图现在应该有如下标签:

../../../_images/first_place_names.png

3.2.2. 基本信息 Follow Along: Changing Label Options

根据您在前面的课程中为地图选择的样式,您可能会发现标签的格式不正确,并且与其点标记重叠或距离太远。

备注

在上面,您使用了 标记单个 按钮中的 Label Toolbar 要打开 Layer Styling 面板。和以前一样 Symbology ,相同的标签选项可通过两个 Layer Styling 面板和 Layer Properties 对话框中。在这里,您将使用 Layer Properties 对话框中。

  1. 打开 Layer Properties 对话框中,通过双击 places 图层

  2. 选择 标记单个 Labels 选项卡

  3. 确保 Text 在左侧选项列表中选择,然后更新文本格式选项以匹配此处显示的选项:

    ../../../_images/label_formatting_options.png
  4. 单击 Apply

    这种字体可能更大,用户更熟悉,但其可读性仍然取决于它下面呈现的是什么层。为了解决这个问题,让我们来看看 Buffer 选择。

  5. 选择 Buffer 从左侧的选项列表中

  6. 选中旁边的复选框 Draw text buffer ,然后选择与此处显示的选项匹配的选项:

    ../../../_images/buffer_options.png
  7. 单击 Apply

    您将看到,这将为地点标签添加一个彩色缓冲区或边框,使它们更容易在地图上辨认出来:

    ../../../_images/buffer_results.png

    现在,我们可以解决标签相对于其点标记的位置问题。

  8. 选择 Placement 从左侧的选项列表中

  9. 选择 Around point 并更改的值 Distance2.0 毫米:

    ../../../_images/offset_placement_settings.png
  10. 单击 Apply

    您将看到标签不再与其点标记重叠。

3.2.3. 适度 Follow Along: Using Labels Instead of Layer Symbology

在许多情况下,点的位置不需要非常具体。例如,大多数点在 places 层指的是整个城镇或郊区,与这些特征相关联的特定点在大范围内并不是那么具体。事实上,对于阅读地图的人来说,给出一个过于具体的观点往往会让人感到困惑。

举个例子:例如,在世界地图上,欧盟的位置可能在波兰的某个地方。给正在看地图的人,看到一个标有 European Union 因此,在波兰,欧盟的首都似乎就在波兰。

因此,为了防止这种误解,停用点符号并用标签完全替换它们通常是有用的。

在QGIS中,可以通过更改要直接在标签引用的点上渲染的标签的位置来完成此操作。

  1. 打开 标记单个 Labels 选项卡中的 Layer Properties 对话框中的 places 图层

  2. 选择 Placement 选项列表中的选项

  3. 按下 Offset from point 按钮

    这将揭示出 Quadrant 可用于设置标签相对于点标记的位置的选项。在本例中,我们希望标签在点上居中,因此选择中心象限:

    ../../../_images/quadrant_offset_options.png
  4. 通过编辑图层隐藏点符号 Symbology 像往常一样,并设置 Marker 大小为 0.0

    ../../../_images/hide_point_marker.png
  5. 单击 Apply 你会看到这样的结果:

    ../../../_images/hide_point_marker_results.png

如果缩小地图,您会看到一些标签以更大的比例消失,以避免重叠。有时这是您在处理具有多个点的数据集时所需要的,但在其他情况下,您会以这种方式丢失有用的信息。还有一种处理此类案例的可能性,我们将在本课后面的练习中介绍。现在,缩小并单击 显示未放置的标签 按钮,然后看看会发生什么。

3.2.4. 适度 Try Yourself Customize the Labels

  • 将标注和符号设置重置为具有点标记和标注偏移 2.0 毫米。

  • 将地图设置为比例 1:100000 。您可以通过将其键入 Scale 方框中的 Status Bar 。修改您的标签以适合在此比例下查看。

3.2.5. 适度 Follow Along: Labeling Lines

现在您已经了解了标签的工作原理,还有一个额外的问题。点和面很容易标记,但线呢?如果您以与点相同的方式标记它们,则结果将如下所示:

../../../_images/bad_street_labels.png

我们现在将重新格式化 roads 对标签进行分层,使其易于理解。

  1. 隐藏 places 这样它就不会分散你的注意力

  2. 激活 标记单个 Single Labels 对于 roads 层,就像您在上面为 places

  3. 设置字体 Size10 这样你就可以看到更多的标签

  4. 放大 Swellendam 城镇面积

  5. Labels Tab‘s Placement 选项卡中,选择以下设置:

    ../../../_images/street_label_settings.png

    您可能会发现文本样式使用了缺省值,因此标签很难阅读。更新 Text 使用深灰色或黑色 Color 以及 Buffer 使用淡黄色 Color

    地图看起来有点像这样,具体取决于比例:

    ../../../_images/street_label_formatted.png

    您将看到一些道路名称多次出现,这并不总是必要的。要防止这种情况发生,请执行以下操作:

  6. Labels 选项卡中的 Layer Properties 对话框中,选择 Rendering 选项,然后选择 Merge connected lines to avoid duplicate labels 如图所示:

    ../../../_images/merge_lines_option.png
  7. 单击 OK

    另一个有用的功能是防止为太短而不值得注意的特征绘制标签。

  8. 在相同的 Rendering 面板中,设置 Suppress labeling of features smaller than ...5.00 mm 并在单击时注意结果 Apply

    尝试不同的方式 Placement 设置也一样。正如我们以前看到的, Horizontal 选项在这种情况下不是一个好主意,所以让我们尝试 Curved 选项取而代之。

  9. 选择 Curved 选项中的 Placement 评审团 Labels 选项卡

结果如下:

../../../_images/final_street_labels.png

正如您所看到的,这隐藏了一些以前可见的标签,因为使其中一些标签遵循扭曲的街道线同时仍可读是困难的。这使得其他标签更加有用,因为它们跟踪道路,而不是漂浮在道路之间的空间中。您可以根据您认为更有用的选项或看起来更好的选项来决定使用这些选项中的哪一个。

3.2.6. 硬的 Follow Along: Data Defined Settings

  1. 停用的标签 roads 图层

  2. 重新激活对 places 图层

  3. 打开的属性表 places 通过 OpenTable 按钮

    它有一个 field 我们现在很感兴趣的是: place 它定义了每个城市的类型 record 。我们可以使用这些数据来影响标签样式。

  4. 导航到 Text 面板中的 places Labels 嵌板

  5. 单击 数据定义 斜体文本按钮旁边的按钮 Style 并选择 Edit... 要打开 Expression String Builder

    ../../../_images/expression_string_builder.png
  6. 在……下面 Fields and Values ,请双击 place 然后单击 All Unique 。这将列出所有唯一的 place 该层的字段。添加 = 在文本编辑器中,然后双击 town

    或者,您可以键入: "place" = 'town' 直接在文本编辑器中。

  7. 单击 OK 两次:

    ../../../_images/expression_builder_settings.png

请注意,其所有位置的标签 place 字段匹配 town 均以斜体显示。

../../../_images/italic_label_result.png

3.2.7. 硬的 Try Yourself Using Data Defined Settings

备注

我们在这里跳过一点来演示一些高级标签设置。在高级级别,假设您知道下面的意思。如果没有,您可以跳过这一部分,在完成必要的材料后再回来。

  1. 打开的属性表 places

  2. 要进入编辑模式,请单击 ToggleEditing 按钮

  3. 属性添加新列。 新属性 按钮

  4. 如下所示进行配置:

    ../../../_images/font_size_column.png
  5. 使用此选项可以为每种不同类型的位置( place 字段)

3.2.8. 硬的 贴标签的进一步可能性

我们不能涵盖本课程中的所有选项,但请注意 Label Tab还有许多其他有用的功能。可以设置基于比例的渲染、更改层中标签的渲染优先级以及使用层属性设置每个标签选项。您甚至可以设置标注的旋转、XY位置和其他属性(如果已为此分配了属性字段),然后使用Main旁边的工具编辑这些属性 Layer Labeling Options 按钮:

标记单个 显示PinnedLabels PinLabels ShowHideLabels 移动标签 旋转标签 ChangeLabelProperties

(如果所需的属性字段存在并且您处于编辑模式,则这些工具将处于活动状态。)

请随意探索标签系统的更多可能性。

3.2.9. In Conclusion

您已经学习了如何使用层属性来创建动态标签。这可以使您的地图更具信息性和时尚性!

3.2.10. What's Next?

既然您已经了解了属性如何在地图上产生视觉差异,那么如何使用它们来更改对象本身的符号系统呢?这就是下一课的主题!