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

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

The goal for this lesson: 学习使用QGIS中的Atlas工具生成详细的可打印地图,以协助实地清点工作。

14.6.1. 基本信息 Follow Along: Preparing the Print Layout

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

  1. 打开上一课中的QGIS项目 forest_inventory.qgs 。您至少应具有以下层:

    • forest_stands_2012 (具有50%的透明度、绿色填充和较暗的绿色边框)

    • systematic_plots_clip

    • rautjarvi_aerial

  2. 使用新名称保存项目, map_creation.qgs 。

要创建可打印的地图,请记住使用 Layout Manager :

  1. Open Project ► 布局管理器 Layout Manager....

  2. 在 Layout manager 对话框:

    1. 在……下面 New from template ,请按下 Create... 按钮旁边的 Empty layout 条目

    2. 命名您的打印布局 forest_map 。

    3. 新闻发布会 OK 。创建并打开一个新的打印布局,显示一张空白纸张。

  3. 在打印版面窗口中,确保设置了A4纸张的属性:

    1. 在纸上单击鼠标右键并选择 Page properties 。这个 Page properties 面板在布局的右侧打开。

    2. 检查 Size 是 A4 。

    3. 检查 Orientation 是 Landscape 。

  4. 启用 Layout 选项卡旁边的 Page properties 面板和集合 Export resolution 至 300 dpi 。

如果您使用画布网格来定位不同的元素,则合成地图会更容易。查看布局格线的设置:

  1. 在 Layout 选项卡展开 Guides and Grid 区域。

  2. 检查一下那个 Grid spacing 设置为 10 mm 那就是 Snap tolerance 设置为 5 px 。

您需要激活网格的使用:

  1. 打开 View 菜单。

  2. 检查 Show grid 。

  3. 检查 Snap to grid 。

  4. 请注意,使用以下选项 Guides 默认情况下处于选中状态,这允许您在布局中移动元素时看到参考线。

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

    1. 按下 添加映射 Add Map 纽扣。

    2. 在画布上单击并拖动一个框,使贴图占据其中的大部分。

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

请注意鼠标光标是如何捕捉到画布网格的。在添加其他元素时使用此功能。如果希望获得更高的精度,请更改格网 Spacing 布景。如果出于某些原因不想捕捉到格网,则始终可以在中选中或取消选中 View 菜单。

14.6.2. 基本信息 Follow Along: Adding Background Map

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

  1. Add the background raster basic_map.tif that you can find in the exercise_data\forestry\ folder.

  2. 如果出现提示,请选择 ETRS89 / ETRS-TM35FIN 栅格的CRS。

    如您所见,背景地图已经设置了样式。这种现成的地图栅格是非常常见的。它是从矢量数据创建的,以标准格式设置样式并存储为栅格,因此您不必费心设置几个矢量层的样式并担心获得良好的结果。

  3. 现在缩放到样例地块,这样您只能看到大约四五行的地块。

样地的当前样式不是最好的:

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

虽然在上一次练习中,航拍图像上的白色缓冲区还可以,但现在背景图像大多是白色的,您几乎看不到标签。但它在印刷版面上看起来怎么样?让我们来检查一下:

  1. 转到打印布局窗口。

  2. 使用 选择 Select/Move item 按钮以选择布局中的地图元素。

  3. 转到 Item properties 标签。

  4. 点击 设置到画布扩展 Set map extent to match main canvas extent 。

  5. 如果需要刷新元素,请单击 刷新 Update map preview 。

显然,这还不够好;您希望让现场团队尽可能清楚地看到地块数字。

14.6.3. 基本信息 Try Yourself Changing the Symbology of the Layers

你一直在 Module: 创建和浏览基本地图 使用符号系统和 Module: 对矢量数据进行分类 加上标签。如果您需要更新一些可用选项和工具,请返回到这些模块。您的目标是使地块位置及其名称尽可能清晰可见,但始终允许查看背景地图元素。您可以从下面的图像中获得一些指导:

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

稍后,您将使用 forest_stands_2012 一层。为了保存它,并对它进行可视化,只显示展台的边界:

  1. 右键单击 forest_stands_2012 并选择 Duplicate

  2. 您将获得一个名为的新层 forest_stands_2012 copy 可以用来定义不同的样式,例如没有填充和红色边框。

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

  3. 经常返回到打印布局窗口以查看地图的外观。为了创建详细的地图,您正在寻找一个符号系统,它看起来不是整个森林区域的比例(下图左图),而是更接近的比例(下图右图)。记住要使用 刷新 Update map preview 和 设置到画布扩展 Set map extent to match main canvas extent 无论何时更改地图或布局的缩放比例。

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

14.6.4. 基本信息 Try Yourself Create a Basic Map Template

  1. 一旦您有了满意的符号系统,您就可以向打印的地图中添加更多信息。至少添加以下元素:

    • 标题。

    • 比例尺。

    • 地图的网格框。

    • 网格两侧的坐标。

  2. 您已经在中创建了类似的布局 Module: 对地图进行布局 。如果需要,请返回到该模块。您可以查看此示例图像以供参考:

    ../../../_images/map_template1.png
  3. 将地图导出为图像并进行查看。

    1. Layout ► Export as Image... 。

    2. 例如,使用 JPG format 。

这就是它在打印时的样子。

14.6.5. 基本信息 Follow Along: Adding More Elements to the Print Layout

正如您可能在建议的地图模板图像中注意到的那样,画布的右侧有足够的空间。让我们看看还能有什么东西进去。对于我们的地图来说,图例并不是真正必要的,但概观地图和一些文本框可以为地图增加价值。

概览地图将帮助现场团队将详细地图放置在一般森林区域内:

  1. 将另一个地图元素添加到画布中,就在标题文本的正下方。

  2. 在 Item properties 选项卡中,打开 Overview 下拉列表。

  3. 设置 Overview frame 至 Map 0 。这将在较小的地图上创建一个阴影矩形,表示在较大的地图中可见的范围。

  4. 也请检查 Frame 选项,带有黑色和 Thickness 的 0.30 。

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

请注意,您的概观地图并没有真正给出您想要的森林区域的概貌。您希望此地图表示整个森林区域,并且希望它只显示背景地图和 forest_stands_2012 图层,并且不显示样例地块。此外,您还希望锁定其视图,使其在修改层的可见性或顺序时不再更改。

  1. 返回地图,但不要关闭 Print Layout 。

  2. 右键单击 forest_stands_2012 层,然后单击 Zoom to Layer Extent 。

  3. 停用除以下各项之外的所有层 basic_map 和 forest_stands_2012 。

  4. 扩展 Manage map themes 上的工具 Layers 面板并选择 Add theme 。

  5. 给它起名 basic_overview 。

  6. 返回到打印布局。

  7. 选择小地图后,单击 Set map extent to match main canvas extent 将其范围设置为您可以在地图窗口中看到的范围。

  8. 通过选中以下选项锁定概览图的视图 Follow map theme 和选择 basic_overview 在……下面 Main properties 。

现在,您的总览图更符合您的预期,并且其视图不会再更改。但是,当然,现在您的详细地图不再显示摊位边界或样地。让我们来解决这个问题:

  1. 再次转至地图窗口,然后选择要显示的图层 (systematic_plots_clip , forest_stands_2012 copy 和 Basic_map )。

  2. 再次缩放以仅显示几行样例打印。

  3. 返回到 Print Layout 窗户。

  4. 在布局中选择较大的地图。

  5. 在……里面 Item properties 点击 Update preview 和 Set map extent to match main canvas extent 。

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

另请注意,概览显示的是详细地图中显示的范围的阴影框。

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

您的模板地图已基本就绪。现在在地图下面添加两个文本框,一个包含文本‘Detail map zone:’,另一个包含文本‘Rembers:’。放置它们,如上图所示。

您还可以向概观地图添加指北针:

  1. 选择 北向箭头 Add North Arrow 工具。

  2. 单击并拖动总览图右上角的一个矩形。

  3. 在……里面 Item properties 检查 SVG image

  4. 浏览 SVG Browser ► SVG Groups 以获取箭头图像。

  5. 在……下面 Image rotation ,请查看 Sync with map 并选择 Map 1 (概览地图)。

  6. 将箭头图像的大小调整为在小地图上看起来合适的大小。

基本的地图布局已经准备好了,现在您想要使用Atlas工具来生成您认为需要的任意数量的这种格式的详细地图。

14.6.6. 基本信息 Follow Along: Creating an Atlas Coverage

Atlas Coverage只是一个矢量层,将用于生成详细地图,Coverage中的每个要素都有一个地图。为了了解你下一步要做什么,这里有一套完整的林区详细地图:

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

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

  1. In the QGIS map view, open Vector ► Research Tools ► 向量网格 Create grid.

  2. 设置工具,如下图所示:

    ../../../_images/coverage_polygons.png
  3. 将输出另存为 atlas_coverage.shp 。

  4. 设计新的样式 atlas_coverage 层,以使多边形没有填充。

新的多边形覆盖了整个森林区域,它们让您了解每一张地图(从每个多边形创建)将包含什么。

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

14.6.7. 基本信息 Follow Along: Setting Up the Atlas Tool

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

  1. 返回到打印布局。

  2. 在右侧的面板中,转到 Atlas generation 标签。

  3. 按如下方式设置选项:

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

    这将告诉Atlas工具使用内部的要素(面 atlas_coverage 作为每一张细节地图的焦点。它将为图层中的每个要素输出一张地图。这个 Hidden coverage layer 告知贴图集不在输出贴图中显示多边形。

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

  1. 选择较大的地图元素 (Map 0 )。

  2. 转到 Item properties 标签。

  3. 在列表中,选中 Controlled by atlas 。

  4. 并将 Marging around feature 至 10% 。视图范围将比多边形大10%,这意味着细节贴图将有10%的重叠。

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

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

  1. 使用按钮激活地图集预览 阿特拉斯 或者,如果您的Atlas工具栏不可见,请通过 Atlas ► Preview Atlas 。

  2. 您可以使用Atlas工具栏或 Atlas 菜单在将创建的地图之间移动。

请注意,它们中的一些涵盖了不感兴趣的领域。让我们做点什么,通过不打印那些无用的地图来拯救一些树。

14.6.8. 基本信息 Follow Along: Editing the Coverage Layer

除了移除不感兴趣区域的面之外,您还可以自定义地图中的文本标注以使用中的内容生成 Attribute table 覆盖层的以下内容:

  1. 返回到地图视图。

  2. 启用对 atlas_coverage 一层。

  3. 选择在下图中选定的(黄色)多边形。

  4. 删除选定的多边形。

  5. 禁用编辑并保存编辑。

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

您可以返回到打印布局并检查Atlas的预览是否仅使用您在层中留下的多边形。

您正在使用的Coverage图层尚未包含可用于自定义地图中标签内容的有用信息。第一步是创建它们,例如,您可以添加多边形区域的区域代码和带有一些备注的字段,以供外业团队考虑:

  1. 打开 Attribute table 对于 atlas_coverage 一层。

  2. 启用编辑。

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

  4. 创建名为的字段 Zone 类型的 Whole number (integer) 。

  5. 在 Expression 框写入/复制/构造 $rownum 。

  6. 创建另一个名为的字段 Remarks ,类型 Text (string) 和宽度为 255 。

  7. 在 Expression 方框写入 'No remarks.' 。这将为所有多边形设置所有默认值。

森林管理员将掌握一些有关该地区的信息,这些信息在访问该地区时可能会很有用。例如,桥的存在、沼泽或受保护物种的位置。这个 atlas_coverage 层可能仍处于编辑模式,请在 Remarks 将字段添加到相应的多边形(双击单元格进行编辑):

  • 对于 Zone 2: Bridge to the North of plot 19. Siberian squirrel between p_13 and p_14.

  • 对于 Zone 6: Difficult to transit in swamp to the North of the lake. `

  • 对于 Zone 7: Siberian squirrel to the South East of p_94.

  • 禁用编辑并保存您的编辑。

差不多准备好了,现在您必须告诉Atlas工具,您希望一些文本标签使用来自 atlas_coverage 层的属性表。

  1. 返回到 Print Layout 。

  2. 选择包含以下内容的文本标签 Detailed map... 。

  3. 设置 Font 大小为 12 。

  4. 将光标设置在标签中文本的末尾。

  5. 在 Item properties 选项卡,在 Main properties 点击 Insert or Edit an Expression... 。

  6. 在 Function list 双击该字段 Zone 在……下面 Field and Values 。

  7. 单击 OK 。

  8. 中框内的文本 Item properties 应该表现出 Detail map inventory zone: [% "Zone" %] 。请注意, [% "Zone" %] 将替换为该字段的值 Zone 对于来自该图层的相应要素 atlas_coverage 。

  9. 通过查看不同的Atlas预览地图来测试标签的内容。

  10. 对文本的标注执行相同的操作 Remarks: 使用带有区域信息的字段。您可以在输入表达式之前保留一个分隔线。您可以在下图中看到2区的预览结果:

    ../../../_images/preview_zone2.png
  11. 使用Atlas预览浏览您即将创建的所有地图,并尽情享受!

14.6.9. 基本信息 Follow Along: Printing the Maps

最后但并非最不重要的一点是,打印或将地图导出为图像文件或PDF文件。您可以使用 Atlas ► Export Atlas as Images... 或 Atlas ► Export Atlas as PDF... 。目前,SVG导出格式工作不正常,结果不佳。

让我们将地图打印为单个PDF,您可以将其发送到外地办事处进行打印:

  1. 转到 Atlas generation 右侧面板上的选项卡。

  2. 在.之下 Output 检查 Single file export when possible 。这将把所有地图放到一个PDF文件中,如果没有选中此选项,您将为每个地图获得一个文件。

  3. 打开 Layout ► Export as PDF... 。

  4. Save the PDF file as inventory_2012_maps.pdf in your exercise_data\forestry\samplig\map_creation\ folder.

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

  6. 您可以同样轻松地为每个地图创建单独的图像(记住取消选中创建单个文件),在这里您可以看到要创建的图像的缩略图:

    ../../../_images/maps_as_images.png
  7. 在 Print Layout ,按下 文件保存 Save 以便在项目中保存您的打印布局更改。这也会保存项目文件。您可以随时重新打开项目并运行或编辑地图集。

    It is also possible to save your map as a layout template as forestry_atlas.qpt in your exercise_data\forestry\map_creation\ folder. Use Layout ► Save as Template. You will be able to use this template again and again in other projects.

  8. 关闭 Print Layout 还有这个项目。

14.6.10. In Conclusion

您已经成功地创建了一个模板地图,该模板地图可用于自动生成要在现场使用的详细地图,以帮助导航到不同的地块。正如您注意到的,这不是一项容易的任务,但当您需要为其他地区创建类似的地图时,好处将会到来,并且您可以使用刚刚保存的模板。

14.6.11. What's Next?

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