14.6. 课: 使用地图集工具创建详细地图

系统抽样设计已准备就绪,现场团队也已将GPS坐标加载到其导航设备中。他们还有一个现场数据表单,在那里将收集每个取样地测量的信息。为了更容易地找到每个取样地,他们要求提供一些详细地图,其中可以清楚地看到一些地面信息,以及较小取样地子集和一些有关地图区域的信息。您可以使用地图集工具自动生成许多具有共同格式的地图。

本课目标: 学习使用QGIS中的地图集工具生成详细的可打印地图,以协助实地清查工作。

14.6.1. basic 跟我做: 准备打印布局

在我们可以自动操作林区和取样地块的详细地图之前,需要创建一个地图模板,其中包含我们认为对实地工作有用的所有元素。当然,最重要的是正确的样式,但正如您之前所看到的,还需要添加许多其他元素来完成打印地图。

打开上一课 forest_inventory.qgs 的QGIS工程文件。应至少有以下图层:

  • forest_stands_2012 (具有 50% 的透明度、绿色填充和深绿色边界线)。

  • systematic_plots_clip

  • rautjarvi_aerial

使用新名称 map_creation.qgs 保存工程。

要创建可打印地图,请记住要使用 布局管理器:

  • 打开 工程 ► 布局管理器...

  • 布局管理器 对话框。

  • 单击 新建 按钮并将打印布局命名为 forest_map

  • 单击 确定

  • 单击 显示 按钮。

设置打印机选项,以便地图适合您的纸张和页边距,对于A4纸:

  • 打开 布局 ► 打印机页面设置...

  • 设置 大小A4 (217 x 297 mm)

  • 方向横向

  • 页边距 (毫米) 全部设置为 5

打印布局 窗口中,转到 版面 选项卡 (在右侧面板),确保这些 页面和分辨率 设置与您为打印机定义的设置相同:

  • 大小: A4 (210x297mm)

  • 方向: 横向

  • 分辨率: 300dpi.

如果使用画布网格来定位不同的元素,则排版地图会更容易。检查布局网格的设置:

  • 版面 选项卡,展开 网格 区域,新版 "布局 > 参考线和网格"。

  • 检查 间距 是否设置为 10 mm

  • 容差 设置为 2 mm

您需要激活网格的使用:

  • 打开 视图 菜单。

  • Check Show grid.

  • 勾选 捕捉到网格

  • 请注意,默认勾选了使用 参考线 的选项,这允许您在布局中移动元素时可以看到红色的参考线。

现在可以开始向布局中添加元素了。首先添加地图元素,以便在更改图层符号时查看地图画布的外观:

  • 单击 addMap 添加地图 按钮。

  • 在画布上单击并拖动一个框,使地图占据其中大部分。

../../../_images/composer_1.png

请注意鼠标光标是如何捕捉到画布网格的,添加其他元素时也可以使用此功能。如果要获得更高的精度,请更改网格 间距 设置。如果出于某种原因不想在某个点捕捉到网格,可以随时在 视图 菜单中勾选或取消勾选。

14.6.2. basic 跟我做: 添加背景地图

返回地图并保持布局打开状态。让我们添加一些背景数据和创建一些样式,以便地图内容尽可能清晰可见。

  • 添加背景栅格 basic_map.tif ,您可以在 exercise_data\forestry\ 文件夹找到此文件。

  • 当出现提示时,为栅格选择 ETRS89 / ETRS-TM35FIN CRS。

如您所见,背景地图已经设置了样式。这种即用类型制图栅格非常常见。它是从矢量数据创建,以标准格式设置样式并储存为栅格,这样您就不必费心设置多个矢量图层的样式,也不必担心会得到不理想的结果。

  • 现在缩放到取样地,以便您只能看到大约四到五行的地块。

取样地的当前样式不是最好的,但它在打印布局中是什么样子呢?

../../../_images/plots_zoom1-2.png

在上次练习中,航拍图像顶部的白色缓冲区还可以,现在背景图像大部分为白色,几乎看不到标注。您还可以检查布局上的外观:

  • 转到 打印布局 窗口。

  • 使用 select 按钮选择布局中的地图元素。

  • 转到 项属性 标签页。

  • 范围 中,单击 将范围设置为地图画布范围

  • 如果需要刷新元素,请在 项属性 下单击 更新预览

显然这还不够理想,您需要为现场团队让地块编号尽可能清晰可见。

14.6.3. basic 试一试 更改图层符号

您曾经在 单元: 创建和探索基本地图 使用符号,在 单元: 分类矢量数据 使用过标注。如果需要重新了解某些可用选项和工具,请返回这些单元。您的目标是在始终允许查看背景地图元素的前提下使地块位置及其名称尽可能清晰可见。可以从这张图像中得到一些启发:

../../../_images/plots_zoom2_symbology.png

稍后将使用 forest_stands_2012 图层的绿色样式。为了保存并使其仅显示林分边界可视化:

  • 右键单击 forest_stands_2012 并选择 创建图层副本

  • 您获得一个名为 forest_stands_2012 复制 的新图层,可用于定义不同的样式,例如,无填充和红色边框。

现在,您有了两种不同的林分可视化,可以决定哪一个显示详细地图。

经常返回 打印布局 窗口,查看地图的外观变化。为了创建详细地图,您正在寻找符号,该符号不是在全林区比例 (下左图),而是在更近的比例下 (下右图) 看起来效果不错。无论何时更改地图或布局的缩放,请记住使用 更新预览将范围设置为地图画布范围

../../../_images/composer_2-3.png

14.6.4. basic 试一试 创建底图模板

获得满意的符号后,就可以向打印地图添加更多信息了。应至少添加以下元素:

  • 标题。

  • 比例尺。

  • 地图的网格框架。

  • 网格两侧的坐标。

您已经在 单元: 布局地图 中创建了类似的构图,可以根据需要重新温习该单元。请查看此示例图像以供参考:

../../../_images/map_template1.png

将地图导出为图像并查看效果。

  • 布局 ► 导出为图像...

  • 实例请使用 JPG格式

这就是打印时的样子。

14.6.5. basic 跟我做: 向打印布局添加更多元素

正如您可能在推荐地图模板图像中注意到的,画布的右侧有很多空间。让我们看看还有什么可以放进去。就我们的地图而言,图例并不是真正需要的,但鹰眼图和一些文本框可以为地图增加实用价值。

鹰眼图将帮助现场团队将详细地图放置在整个森林区域内显示:

  • 将另一个地图元素添加到画布,位于标题文本的正下方。

  • 项属性 标签页,打开 鹰眼图 下拉列表。

  • 地图框架 (鹰眼图框架) 设置为 Map 0 。这将在较小的地图上创建一个阴影矩形,表示较大地图的可见范围。

  • 同时检查 框架 选项是否为黑色和 线宽0.30

../../../_images/more_elements1.png

请注意,您的鹰眼图并没有真正给出您想要的林区总览。您希望此地图表示整个林区,并希望仅显示背景地图和 forest_stands_2012 图层,而不显示取样地。此外,还需要锁定其视图,以便在更改图层的可见或顺序时不再更改。

  • 返回地图,但不要关闭 打印布局 窗口。

  • 右键单击 forest_stands_2012 图层,然后单击 缩放到图层范围

  • 停用除 basic_mapforest_stands_2012 之外的所有图层。

  • 返回 打印布局 窗口。

  • 选中小地图后,单击 将范围设置为地图画布范围 ,将其范围设置为您在地图窗口中看到的范围。

  • 通过勾选 主属性 (项属性 > 图层) 下的 锁定地图项的图层 (锁定图层) ,锁定鹰眼图的视图。

现在,您的鹰眼图更加符合预期,其视图不会再改变。当然,现在您的详细地图不再显示林分边界或取样地。让我们来解决这个问题:

  • 再次转到地图窗口,并选择要显示的图层 (systematic_plots_clip, forest_stands_2012 copyBasic_map) 。

  • 再次缩放,仅显示几行取样地即可。

  • 返回 打印布局 窗口。

  • 在布局中选择较大的地图 (select) 。

  • 项属性 标签页单击 更新地图预览将范围设置为地图画布范围

请注意,只有较大的地图显示当前地图视图,而较小的鹰眼图保持与锁定时相同的视图。

还请注意,鹰眼图显示了详细地图所示范围的阴影框架。

../../../_images/more_elements2.png

您的模板地图即将就绪。现在在鹰眼图下方添加两个文本框,一个包含文本 'Detailed map zone: ',另一个为 'Remarks: '。如上图所示。

您还可以将指北针添加到鹰眼图 (新版中有专门的指北针工具,可自行尝试):

  • 使用 添加图片 工具, addImage

  • 单击鹰眼图的右上角。

  • 项属性 中打开 搜索目录 并浏览箭头图像。

  • 图像旋转 下,勾选 与贴图同步 ,然后选择 Map 1 (鹰眼图)。

  • 取消勾选 背景

  • 将箭头图像调整为在小地图上看起来不错的尺寸。

基本地图布局已就绪,现在需要使用地图集工具以这种格式生成您认为必要的尽可能多的详细地图。

14.6.6. basic 跟我做: 创建地图集覆盖范围

地图集覆盖范围只是一个矢量图层,将用于生成详细地图,覆盖范围内的每个要素对应一幅地图。为了了解接下来的工作,这里有一整套林区的详细地图,供参考:

../../../_images/preview_atlas_results.png

覆盖范围可以是任何现有图层,但通常为特定目标创建一个范围更有意义。让我们创建一个遮盖林区的多边形网格:

  • 在QGIS地图视图中,打开 矢量 ► 研究工具 ► 矢量网格 (创建网格)

  • 如图所示设置工具:

../../../_images/coverage_polygons.png
  • 输出另存为 atlas_coverage.shp

  • 设置新 atlas_coverage 图层的样式为多边形无填充。

新多边形覆盖了整个林区,让您了解每幅地图 (从每个多边形创建) 将包含哪些内容。

../../../_images/atlas_coverage.png

14.6.7. basic 跟我做: 设置地图集工具

最后一步是设置地图集工具:

  • 返回 打印布局 窗口。

  • 在右侧面板,转到 生成地图集 (地图集) 标签页。

  • 设置选项如下所示:

../../../_images/atlas_settings.png

这告诉地图集工具使用 atlas_coverage 内的要素 (多边形) 作为每幅详细地图的焦点。它将为图层中的每个要素输出一幅地图。 隐藏范围图层 告诉地图集不要在输出地图中显示多边形。

还有一件事需要做,您需要告诉地图集工具每幅输出地图将更新哪些地图元素。到目前为止,您可能已经猜测,要为每个要素更改的地图是您准备好的包含取样地详细视图的地图,即画布中较大的地图元素:

  • 选择较大的地图元素。

  • 转到 项属性 标签页。

  • 在列表中,勾选 受控于地图集

  • 并将 要素周围的边距 设置为 10% 。视图范围将比多边形大10%,这意味着您的详细地图将有10%的重叠区域。

../../../_images/controlled_by_atlas.png

现在,您可以使用地图集的预览工具查看地图的外观:

  • 使用按钮 atlas 激活地图集预览,如果您的地图集工具栏不可见,请使用 地图集 ► 预览地图集

  • 可以使用地图集工具栏或 地图集 菜单中的箭头浏览每个要素创建的地图。

请注意,其中一些涵盖了不感兴趣的区域。让我们做点什么吧,通过不打印那些无用的地图来节省纸张的消耗。

14.6.8. basic 跟我做: 编辑范围图层

除了移除那些不感兴趣区域的多边形外,还可以自定义地图中的文本标注,以生成范围图层 属性表 中的内容:

  • 返回地图视图。

  • 启用 atlas_coverage 图层的编辑。

  • 选择下图中选中的多边形 (黄色)。

  • 移除选中的多边形。

  • 关闭并保存编辑。

../../../_images/remove_polygons.png

您可以返回 打印布局 ,并检查地图集的预览是否仅使用您保留在图层中的多边形。

您正在使用的范围图层还没有可用于自定义地图中标注内容的有用信息。第一步是进行创建,例如您可以添加多边形区域的区号和带有一些备注的字段,供现场团队参考:

  • 打开 atlas_coverage 图层的 属性表

  • 启用编辑。

  • 使用 calculateField 字段计算器创建并填充以下两个字段。

  • 创建一个名为 Zone 的字段并选择类型为 整数 (整型)

  • 表达式 框中写入 (复制或构造) $rownum

  • 创建另一个名为 Remarks 的字段,类型: 文本 (字符串) ,长度: 255

  • 表达式 框中写入 'No remarks.' 。这将为所有多边形设置所有默认值。

林业管理人员将获得一些有关该地区的信息,这些信息在勘察该地区时可能会有帮助。例如,是否存在桥梁、沼泽或受保护物种的栖息地。 atlas_coverage 图层可能仍处于编辑模式,请在 Remarks 字段将以下文本添加到相应的多边形 (双击单元格进行编辑):

  • Zone 2: 通往19号地块北侧的桥梁。西伯利亚鼯鼠位于 p_13 p_14 之间

  • Zone 6: 难以在沼泽中过境到湖泊的北部

  • Zone 7: p_94东南部的西伯利亚鼯鼠

  • 关闭并保存编辑。

几乎准备就绪,现在必须告诉地图集工具,您希望一些文本标注使用 atlas_coverage 图层属性表中的信息。

  • 返回 打印布局 窗口。

  • 选择包含 详细地图... 的文本标注。

  • 字号 设置为 12

  • 将光标设置在标注文本的末端。

  • 项属性 标签页的 主要属性 内,单击 插入/编辑表达式...

  • 函数列表 双击 字段和值 下的 Zone 字段。

  • 单击 确定

  • 项属性 框内的文本应显示 详细地图清查区: [% "Zone" %] 。请注意, [% "Zone" %] 将由图层 atlas_coverage 中相应要素字段 Zone 的值取代。

通过查看不同地图集预览图来测试标注的内容。

对文本 Remarks: 的标注使用带有zone信息的字段执行相同操作。可以在输入表达式之前 leave a break line 。您可以在下图看到 zone 2 预览的结果:

../../../_images/preview_zone2.png

使用地图集预览浏览您即将创建的所有地图,并尽情享受吧!

14.6.9. basic 跟我做: 打印地图

最后,将地图打印或导出为图像文件或PDF文件。你可以使用 地图集 ► 地图集导出为图像...地图集 ► 地图集导出为PDF文件... 。目前SVG导出格式仍不理想,结果不佳,请注意查看提示信息。

将地图导出为单个PDF文件,您可以将其发送到现场办公室进行打印:

  • 转到右侧面板的 生成地图集 (地图集) 标签页。

  • 输出 中,勾选 可能时导出为单个文件 。这将把所有地图放在一个PDF文件中,如果未勾选此选项,则每幅地图导出一个文件。

  • 打开 布局 ► 导出为PDF文件...

  • exercise_data\forestry\samplig\map_creation\ 文件夹中将PDF文件保存为 inventory_2012_maps.pdf

打开PDF文件,检查一切是否按预期进行。

可以同样轻松地为每幅地图创建单独的图像 (记住取消勾选单个文件创建),在此您可以看到将创建图像的缩略图:

../../../_images/maps_as_images.png

打印布局 中,使用 布局 ► 保存为模板 。将地图保存在 exercise_data\forestry\map_creation\ 文件夹并命名为 forestry_atlas.qpt 布局模板。如此可以反复使用此模板。

关闭 打印布局 并保存QGIS工程。

14.6.10. 综上所述

您已经成功创建了一个模板地图,可用于自动生成要在现场中使用的详图地图,以帮助导航到不同的地块。正如您所注意到的,这不是一项简单的任务,但当您需要为其他地区创建类似的地图时,可以使用刚刚保存的模板,这将节省许多时间。

14.6.11. 下节引言

在下一课,您将了解如何使用LiDAR数据创建DEM,然后使用它增强数据和地图的可见性。