11.1. 专题图制作及输出¶
本节利用地图出版设计的图辑工具自动制作地图,当我们对数据进行分析,数字化后,会有地图输出的要求, 如果你需要时常更新这些地图的话,手动弄起来会花费许多时间,甚至可能会成为超级麻烦事。 QGIS提供工具 Atlas,可以让你设计地图范本并且使用它来制作出版许多不同地区的地图。 这节我们就来了解下。这个节将介绍如何为夏威夷州的每个县制作湿地地图。
我们在这里可以直接下载。
11.1.1. 操作流程¶
1. 打开 QGIS,选择 图 11.1 。
。 如
图 11.1 加载图层¶
2. 选择 "Browser" 找到刚下载的资料,选择 "HI_Wetlands.shp.zip" 并双击 "HI_Wetlands_Poly", 此时文件会加载到QGIS的视窗中,如 图 11.2 。

图 11.2 加载图层¶
3. 你会看到很多多边形载入到图层中,代表夏威夷州全部的湿地范围。由于我们要分别制作夏威夷每个县的湿地地图, 因此还需要一个县的边界的图层才行。选择 Add ,如 图 11.3 。
, 然后点选 "county10.shp.zip"按下
图 11.3 加载图层¶
接下来选择 图 11.4 。
,如

图 11.4 选择New Print Layout¶
在设计标题处可以添加文字,在这里我们保持空白,按下 OK ,如 图 11.5 。

图 11.5 添加标题¶
在"Layout"界面中选择 图 11.6 。
,如

图 11.6 添加地图¶
现在在地图版面上拖拽一块你想插入地图的区域,如 图 11.7 。

图 11.7 添加地图¶
8. 然后切换到 Item Properties 分页接着向下滚动, 勾选 Controlled by atlas 的方框, 此选项用来告诉电脑该地图的范围是由 "Atlas" 具体控制, 如 图 11.8 。 (注:如果这时方框是无法选取的状态,请先完成后续几个步骤,再回来勾选。)

图 11.8 属性设置¶
9. 切换到 Atlas 分页,如果在地图变面上没有找到 Atlas 分页, 则选择 ,如 图 11.9 。

图 11.9 Atlas Setting设置¶
10. 在 "Atlas" 分页选择后,勾选 Generate an atlas 方框, Coverage layer , 选择 "county10" 勾选 Hidden coverage layer , 这样一来覆蓋图层内的图征就不会显示在地图上,如 图 11.10 。

图 11.10 Atlas"设置¶
11. 虽然已经完成了地图设定,但这时地图影像还不会有任何改变。接下来 选择 图 11.11 。
,如
图 11.11 Preview Atlas设置¶
12. 现在地图会刷新成为其中一张地图,注意在右侧最底部有个讯息, 告诉你现在所使用的多边形要素编号,如 图 11.12 。

图 11.12 刷新地图¶
13. 你也可以预览由其他多边形建立的地图,选择 图 11.13 。
, 如
图 11.13 预览其他地图¶
如此一来地图就会刷新为下一个要素覆盖的范围,如 图 11.14 。

图 11.14 预览地图¶
15. 现在我们可以为地图添加图例,比例尺,标题等。首先,我们为地图添加标题, 选择 图 11.15 。
,如
图 11.15 添加标记¶
16. 在标记的 Item properties 分页中,选择 Insert an expression... 钮, 如 图 11.16 。

图 11.16 添加标记¶
17. 在此功能中,标记文字可以使用覆盖图层的属性。我们要使用 "concat" 函数来把两段字串合并, 而要合并的字串分别为 "County of" 和 "county10" 图层中的 "NAME10" 属性值。 加入以下的表达式后,按下 OK ,如 图 11.17 。
concat('County of ', "NAME10")

图 11.17 合并图层属性¶
现在我们调整成我们需要的字体大小,如 图 11.18 。

图 11.18 调整字体¶
19. 加入另一个标记,然后在 Main properties 下输入 "Wetlands Map" , 由于没有使用表达式,此文字在所有的地图中都会相同,如 图 11.19 。

图 11.19 添加标记¶
20. 接下来选择 图 11.20 。
然后确认地图标按照预定义的书签操作。 目前湿地地图上的多边形也延伸到了海中,看起来不怎么美观,所以接着我们就要来改变样式, 隐藏郡县边界外侧的多边形图征,如
图 11.20 选择Last Feature¶
21. 现在我们切换到 QGIS 主视窗,在 "county10" 图层上按右键选择 Properties , 如 图 11.21 。

图 11.21 选择属性¶
22. 在 Style 分页中,选择 Inverted polygons 的呈现方法, 这个特殊的样式设定的是多边形的 "outside" 区域。选择白色做为填充色彩, 然后按下 OK ,如 图 11.22 。

图 11.22 样式设定¶
23. 回到地图设计的视窗中,如果我们要让反转多边形的设定出现的话, 就得先取消勾选在 Atlas generation 分页下的 Hidden coverage layer 才行。 套用新样式后的地图,因为多边形外围区域已经隐藏起来,看起来清晰许多,如 图 11.23 。

图 11.23 隐藏外围¶
24. 现在还有一个问题,你可以看到在覆盖图层内部,但是属于其他要素的区域仍然可以看见, 这是因为制图工具并不会自动把其他要素也隐藏起来。此设计在某些状况下很有用,但却不是我们想要的, 每个地图只呈现单一个多边形图征。为了修正此问题,我们要回到 QGIS 主视窗,然后在"county10"图层上按右键, 选择 Properties ,如 图 11.24 。

图 11.24 清理多余图¶
25. 在 Style 分页中,有个 Sub renderer 下拉选单, 选择 Rule-based 在下方 Rule 的栏位上点两下, 如 图 11.25 。

图 11.25 Style设置¶
点选 Filter 右侧的 变量 钮,如 图 11.26 。

图 11.26 设置¶
27. 在 Expression string builder 中,展开 Atlas 的群组或是 Variables 的群组, 然后找到 "$atlasfeatureid" 或 "atlas_featureid" ,此函数会传回目前舆图工具选择的图征。 我们要做的是建立一个表达式,让它只选择制图工具选择的要素,因此请输入以下表达式:$id = $atlasfeatureid, 如 图 11.27 。

图 11.27 变量设置¶
28. 回到地图设计的视窗,在地图项目的 Item properties 分页中点选 Update preview 后, 就可以看到改变,现在每张地图都只会显示位于本郡县边界内的资料了,如 图 11.28 。

图 11.28 Update preview设置¶
29. 我们再来加入另一个新的标记,用来标识现在的日期。选择 Insert an expression 钮,如 图 11.29 。
然后选择地图上的任一区域, 完成后按下
图 11.29 标记日期¶
30. 接下来展开 Date and Time 的群组,找到"$now"这个函数,它用来表示现在的系统时间。 另外我们要使用"todate()"这个函数,用来把"now"的函数值转换成日期字串。输入以下表示式:
none
concat('Created on: ', todate($now))
如 图 11.30 。

图 11.30 标记日期¶
现在再加入另外一个标记,引用资料来源。这里我们还可以添加其他的地图元素,例如指北针、比例尺、图例等等,如 图 11.31 。

图 11.31 添加其他元素¶
当你完成地图版面后,选择 图 11.32 。
,如

图 11.32 输出图像¶
选择电脑中的某一个资料夹,然后按下 Choose 钮,如 图 11.33 。

图 11.33 输出图像¶
34. 制图工具会自动地使用我们刚刚建立的范本,为覆盖图层中的每个要素创造各自的地图。 处理完成后,在资料夹中就能找到这些地图,如 图 11.34 。

图 11.34 输出图像¶
这里放上完成版地图以供参考。

图 11.35 输出图像¶

图 11.36 输出图像¶

图 11.37 输出图像¶

图 11.38 输出图像¶

图 11.39 输出图像¶