GIS的主要用途之一是制作用于打印或出版的地图。QGIS提供了名为“打印布局(Print Layout)”的制图利器,通过组合各种图层进行地图制作。

任务概览

本教程使用QGIS 3.10 为您演示怎样创建一幅包含各种标准地图元素的地图,如地图插图、网格、指北针、比例尺、标签等。建议您按照本教程中的详细制图步骤,通过QGIS使用示范数据一步一步实际动手操作,完成教程中的制图任务。

将会学到的其他技巧

  • 如何查看和修改QGIS项目变量(Project variables)。

  • 如何使用QGIS表达式(expressions)。

获取示范数据

本教程使用自然地球快速入门工具集(Natural Earth Quick Start Kit)为示范数据,其中包含多个覆盖全球的图层,可以通过QGIS直接加载。示范数据下载地址为:
http://naciscdn.org/naturalearth/packages/Natural_Earth_quick_start.zip

将QGIS界面设置为简体中文

制作地图之前,请将您的QGIS软件界面设置为简体中文(如果您已经设置过了,可以忽略本节后续内容)。操作方式为:通过菜单【Settings】->【Options…】打开Options对话框,选择【General】选项卡,找到“Override system locale”前面的复选框并打勾,在“User Interface Translation”下拉框中找到并选择“简体中文”,点击【OK】按钮。退出并重新启动QGIS,看到的即是简体中文界面。
中文界面设置

详细制图步骤

  1. 下载并解压缩自然地球快速入门工具集数据包(Natural_Earth_quick_start.zip)。打开QGIS,通过【浏览】面板找到Natural Earth quick start文件夹。展开该文件夹并找到名为Natural_Earth_quick_start_for_QGIS_v3的文件。该文件为QGIS项目文件,包含多个设定了样式的图层。双击该项目文件,QGIS将打开该项目并显示项目中包含的地图。
    打开图层

  2. 从地图窗口中显示的内容可以看出,该项目的地图标签默认显示为希腊语。QGIS项目文件通过变量(variables)设定项目的语言环境。可以通过菜单【项目】->【属性】修改该项目的语言设置。
    项目属性设置
    备注:项目变量(Project variables)用来存储项目级的变量值。在QGIS中,凡是可以使用表达式(expressions)的地方都可以使用这些变量值。Natural_Earth_quick_start_for_QGIS_v3项目附带了许多预先设定好的变量,用于在该项目中设置各种样式。

  3. 通过菜单【项目】->【属性…】打开“项目属性”对话框,选择“变量”选项卡,找到“project_language”变量,点击该变量在“值”一列中的对应取值,将其修改为name_en ,点击【OK】按钮。
    项目属性

  4. 返回QGIS主窗口,点击【地图导航工具栏】中的【刷新】按钮,地图将被重新渲染,地图标签将显示为英文。
    刷新地图

  5. 使用【地图导航工具栏】中的【平移】、【放大】、【缩小】等工具按钮,把地图定位到感兴趣的区域。
    地图导航工具栏

  6. 可以关掉一些不需要的图层:在【图层】面板中,展开z5-1:18m文件夹,取消ne_10m_geography_marine_polysne_10m_admin_0_disputed_areas 这两个图层前面复选框的选中状态。在打印地图之前,建议先选择一个合适的地图投影。本项目的默认坐标参照系(CRS)是EPSG:3857 Pseudo-Mercator,在网络制图领域应用很广,是个比较好的选择,因此我们将其保留不做修改。点击菜单【项目】->【新建打印布局…】。
    打印布局

  7. 弹出的对话框要求输入打印布局的标题,可以先不填,点击【OK】按钮。
    创建打印布局
    备注:如果输入的标题为空,系统会自动为打印布局分配一个默认标题,如布局1。

  8. 在打印布局窗口中,点击【全图显示】按钮,完整显示打印布局范围。
    全图显示

  9. 把QGIS主窗口中看到的地图插入到打印布局窗口中:点击菜单【添加条目】->【添加地图】。
    添加地图

  10. 当【添加地图】模式激活后,按下并拖动鼠标左键,在要添加地图的地方绘制一个矩形区域。
    添加地图

  11. 矩形区域内渲染出了QGIS主窗口中看到的地图,这里显示的地图未必完整覆盖了我们感兴趣的区域。可以通过菜单【编辑】->【选择/移动条目】和【编辑】->【移动内容】移动打印布局窗口中的地图,使我们感兴趣的区域居中显示。
    调整地图

  12. 通过点击【条目属性】,输入合适的比例尺调整地图的缩放比例。
    调整比例尺

  13. 现在得到了一个放大到感兴趣区域的地图。在对QGIS主窗口中的图层做任何修改之前,找到打印布局窗口【条目属性】中的【锁定图层】和【锁定图层样式】复选框并打勾。这将确保如果后续关闭了一些图层或者修改了图层样式,打印布局中的地图视图将不会随之发生变化。
    锁定图层

  14. 切换到QGIS主窗口,关闭图层组(layer group)z5-1:18m,打开图层组z7/1:4m,后者的样式更适合于放大后的视图。使用【地图导航工具栏】中的【平移】和【缩放】工具按钮,把地图定位到感兴趣的区域。
    关闭和打开图层

  15. 添加地图插图(map inset):切换到打印布局窗口,点击菜单【添加条目】->【添加地图】。
    添加地图插图

  16. 在需要放置地图插图的位置绘制一个矩形。现在打印布局窗口将有两个地图对象,当对地图进行更改操作时,请首先确保选中正确的地图对象。
    选择地图对象

  17. 在【条目】面板中选择地图2,选择【条目属性】,下拉到【框架】面板,在【框架】复选框上打勾。
    设置插图框架

  18. 打印布局可以自动高亮显示插图里的区域在主地图中的位置。在【条目】面板中选择地图1,在【条目属性】面板中下拉到【鹰眼图】,点击【添加新的鹰眼图】按钮。
    添加鹰眼

  19. 在【地图框架】下拉框中选择地图2,地图1中将会高亮呈现地图2中显示的地域范围(下图中的红色区域)。
    设置鹰眼

  20. 完成地图插图制作后,为主地图添加网格线:在【条目】面板中选择地图1,在【条目属性】面板中下拉到【网格】,点击【添加新网格】按钮,接着点击【修改网格…】按钮。
    添加网格线和设置

  21. 默认情况下,网格线与所选择的地图使用相同的地图单位和投影。然而,由于网格线通常是按度来显示的,我们可以给网格线选择不同的坐标参照系。点击【坐标参照系(CRS)】旁边的【更改…】按钮。
    设置网格线的投影

  22. 在【坐标参照系选择器】对话框中,在过滤框内输入4326,在搜索结果中选择WGS84 EPSG:4326 作为网格线的坐标参照系,点击【OK】按钮。
    选择坐标参照系

  23. X方向和Y方向都选择间隔5度。偏移量可以用来控制网格线出现的位置。
    调整网格线间隔

  24. 下拉到【网格框架】区,在【绘制坐标】复选框前面打勾。默认格式是小数,选择【自定义】,点击旁边的表达式按钮。
    用表达式设置格式

  25. 输入下面的表达式,可以使网格线显示为类似于的格式。

 concat(to_string(@grid_number), '°    ')

表达式注记

  1. 网格线的标签变成了通过表达式定义的标签格式,调整上、下、左、右位置,直到满意为止。
    调整网格线标签位置

  2. 添加一个矩形对象来保存其他的地图元素,如指北针、比例尺和标签。点击菜单【添加条目】->【添加形状】->【添加矩形】。
    添加矩形框

  3. 可以更改矩形的样式以匹配地图背景。
    更改矩形框的样式

  4. 为地图添加指北针,QGIS提供了大量与地图相关的图片——包括许多类型的指北针。点击菜单【添加条目】->【添加图片】。
    添加指北针

  5. 按下并拖动鼠标左键,绘制一个矩形。在右侧的面板中,点击【条目属性】,展开【搜索目录】,选择合适的图片。
    选择指北针

  6. 为地图添加比例尺。点击菜单【添加条目】->【添加比例尺】。

添加比例尺

  1. 在需要添加比例尺的地方点击鼠标左键。在【条目属性】中,确定选择了需要显示比例尺的地图即地图1,选择合适的比例尺风格。在【线段】面板中,把固定宽度改为200单位,修改线段风格直至满意为止。

调整比例尺样式

  1. 为地图添加标签。点击菜单【添加条目】->【添加标签】。
    添加标签
  2. 在需要添加标签的地方绘制一个方框,在【条目属性】中展开【标签】面板,输入文字作为标签显示的内容。
    设置标签样式
  3. 完成打印布局调整后,可以将打印布局输出为图片、PDF或者SVG格式。以输出为图片为例:点击菜单【布局】->【导出成位图】。
    导出成位图
  4. 保存地图图片。
    保存地图图片
  5. 下图即为保存的地图图片,是不是很酷?
    地图图片
    本教程到此结束。

吴建玲

2020年5月28日


版权声明

本文欢迎转载,转载时请注明出处。

本文主要翻译并改编自qgistutorials网站,原文链接为www.qgistutorials.com/en/docs/3/making_a_map.html,原文已根据《知识共享署名4.0国际许可协议(Creative Commons Attribution 4.0 International License)》获得许可,在此向原文作者乌加尔·甘地(Ujaval Gandhi)致以敬意,感谢他为分享QGIS技术做出的贡献。
QGIS

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐