重要

Translation is a community effort you can join. This page is currently translated at 90.00%.

3.2. Lesson: Labels

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

本课目标: 将有用且美观的标注应用于图层。

3.2.1. ★☆☆ Follow Along: Using Labels

首先,请确保 labelingSingle 按钮在GUI中可见:

  1. 转到菜单项 视图 ► 工具栏

  2. 确保 标注工具栏 项旁边有复选标记。如果没有,请单击 标注工具栏 项将其激活。

  3. 单击 图层 面板中的 places 图层,使其高亮显示

  4. 单击 labelingSingle 工具栏按钮打开 图层样式 面板的 标注 选项卡

  5. 无标注 切换到 labelingSingle 单一标注

    您需要选择属性中的哪个字段可用于标注。在上一课,您认为 name 字段最适用于此目的。

  6. 从值列表中选择 name 字段:

    ../../../_images/select_label_with.png
  7. 单击 应用

地图现在应该有这样的标注:

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

3.2.2. ★☆☆ Follow Along: Changing Label Options

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

备注

以上,您使用 标注工具栏 中的 labelingSingle 按钮打开 图层样式 面板。与 符号化 一样,通过 图层样式 面板和 图层属性 对话框可以使用相同的标注选项。在此,您将使用 图层属性 对话框。

  1. 双击 places 图层,打开 图层属性 对话框

  2. 选择 labelingSingle 标注 选项卡

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

    ../../../_images/label_formatting_options.png
  4. 单击 应用

    这种字体可能更大,用户也更熟悉,但它的可读性仍然依赖于它下面渲染的图层。为了解决这个问题,让我们看看 描边 选项。

  5. 从左侧选项列表中选择 描边

  6. 勾选 绘制文本描边 旁边的复选框,然后选择与此处显示相匹配的选项:

    ../../../_images/buffer_options.png
  7. 单击 应用

    您将看到,这为地点标注添加了彩色描边或边框,使它们更容易在地图中被识别:

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

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

  8. 从左侧选项列表中选择 位置

  9. 选择 点周围 模式,并将 距离 的值更改为 2.0 毫米:

    ../../../_images/offset_placement_settings.png
  10. 单击 应用

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

3.2.3. ★★☆ Follow Along: Using Labels Instead of Layer Symbology

在多数情况下,点的位置不需要非常具体。例如, places 图层中的大多数点都是指整个城镇或郊区,而与这些要素相关联的指定点在很大程度上并不是那么具体。事实上,对于阅读地图的人来说,给出一个过于具体的点往往令人感到困惑。

举个例子:例如,在世界地图,为欧盟给出的点可能在波兰的某个地方。对于阅读地图的人来说,看到波兰有一个标有 欧盟 的点,感觉欧盟的总部似乎就在波兰。

因此,为了防止产生这种误解,通常可以停用点符号,并使用标注完全替换它们。

在QGIS中,可以通过更改标注的位置来实现,标注将直接渲染在它们所指的点上。

  1. 打开 places 图层的 图层属性 对话框的 labelingSingle 标注 选项卡

  2. 从选项列表中选择 位置 选项

  3. 单击 离点偏移量 按钮

    这将显示 象限 选项,可用于设置标注相对于点标记的位置。在这种情况下,我们希望标注以点为中心,因此选择中心象限:

    ../../../_images/quadrant_offset_options.png
  4. 通过像之前一样编辑图层 符号 并将 标记 大小设置为 0.0 来隐藏点符号:

    ../../../_images/hide_point_marker.png
  5. 单击 应用 ,您将看到以下结果:

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

如果缩小地图,您会看到一些标注在较大比例时消失,以避免重叠。有时,在处理具有多个点的数据集时,这或许是您想要的,但在其他时候,这样会丢失有用的信息。处理这种情况还有另一种可能性,我们将在本课后面的练习中介绍。现在,缩小并单击工具栏中的 showUnplacedLabel 按钮,看看会有什么变化。

3.2.4. ★★☆ Try Yourself: Customize the Labels

  • 重置标注和符号设置,使点标记和标注偏移 2.0 毫米。

  • 将地图的比例设置为 1:100000 。您可以在 状态栏比例 框中输入来完成此操作,修改您的标注以适合在此比例下查看。

3.2.5. ★★☆ Follow Along: Labeling Lines

既然您知道了标注是如何工作的,还有一个问题。点和多边形很容易标注,但是线呢?如果与点相同的方式进行标注,结果将如下所示:

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

我们现在将重新设置 roads 图层标注,使其易于理解。

  1. 隐藏 places 图层,避免分散您的注意力

  2. roads 图层激活 labelingSingle 单一标注, 就像上面为 places 所做的那样

  3. 将字体 大小 设置为 10 ,便于看到更多标注

  4. 放大 Swellendam 城镇范围

  5. 标注 选项卡的 位置 选项卡中,选择以下设置:

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

    您可能会发现文本样式使用了默认值,因此标注很难阅读。将 文本 更新为深灰或黑 描边 使用浅黄

    根据比例设置,地图看起来有点像这样:

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

    您会看到某些道路名称出现了不止一次,这并不总是必要的。为了防止这种情况发生:

  6. 图层属性 对话框的 标注 选项卡中,选择 渲染 选项,然后选择 合并相连的线以防止重复标注 ,如图所示:

    ../../../_images/merge_lines_option.png
  7. 单击 确定

    另一个实用的功能是防止要素太短而无法注意到的标注绘制。

  8. 在同一 渲染 面板,设置 小于如下尺寸的要素禁止标注... 的值为 5.00 mm ,并留意观察单击 应用 后的结果

    还可以尝试不同的 位置 设置。正如我们之前看到的,在这种情况下, 水平 选项并不是最优选,所以我们来试试 弯曲 选项。

  9. 标注 选项卡的 位置 面板中选择 弯曲 选项

结果如下:

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

如您所见,这隐藏了一些之前可见的标注,因为很难让其中一些标注沿着曲折的街道线放置,并同时清晰可见。这使其他标注更加有用,因为它们跟踪道路,而不是漂浮在道路之间。您可以决定使用哪些选项,具体取决于您认为哪些更有用或者哪些看起来更好。

3.2.6. ★★★ Follow Along: Data Defined Settings

  1. 停用 roads 图层的标注

  2. 重新激活 places 图层的标注

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

    这里有一个我们现在感兴趣的 字段 : place ,它定义了每条 记录 的市区类型。我们可以使用这些数据来设置标注样式。

  4. 导航到 places 标注 面板中的 文本 面板

  5. 单击 样式 中的斜体文本按钮旁边的 dataDefine 按钮,然后选择 编辑... ,并打开 表达式字符串构建器

    ../../../_images/expression_string_builder.png
  6. 字段和值 中,双击 place ,然后单击 所有唯一值 按钮,这将列出该图层 place 字段的所有唯一值。在文本编辑器中添加 a = ,然后双击 town

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

  7. 单击两次 确定 按钮:

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

请注意, place 字段与 town 匹配的所有places的标注都以斜体显示。

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

3.2.7. ★★★ Try Yourself: Using Data Defined Settings

备注

在这里我们跳转到前面来演示一些高级标注设置。在高级阶段,假设您了解以下内容的含义。如果不了解,请随意忽略这一部分,等您读完相关的资料后再回来。

  1. 打开 places 的属性表

  2. 单击 toggleEditing 按钮进入编辑模式

  3. 使用 newAttribute 按钮添加一个新列

  4. 进行如下配置:

    ../../../_images/font_size_column.png
  5. 使用此选项为每个不同place的类型 ( place 字段中的每个键) 设置自定义字号

3.2.8. ★★★ Further Possibilities With Labeling

我们无法在本课程中介绍所有选项,但请注意 标注 选项卡还有许多其他实用的功能。您可以设置基于比例的渲染、更改图层中标注的渲染优先级,以及使用图层属性设置每个标注选项。甚至可以设置标注的旋转角度、XY位置和其他属性 (如果为此目的分派了属性字段),然后使用主 图层标注选项 按钮旁边的工具编辑这些属性:

labelingSingle showPinnedLabels pinLabels showHideLabels moveLabel rotateLabel changeLabelProperties

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

欢迎探索标注系统的更多功能。

3.2.9. In Conclusion

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

3.2.10. What's Next?

既然您知道了属性如何对地图的视觉效果产生影响,那么使用它们来更改对象自身的符号会怎样呢?这就是下一课的主题!