利用地图出版设计的图辑工具自动创造地图¶
警告
本教学已有新的版本,请前往 使用打印布局图集(QGIS3)自动创建地图。
如果你的所属单位有出版纸本或线上地图的话,你或许会常常需要使用同一个范本制作许多地图,这些地图通常个别代表不同的行政区或是不同的特定区域。如果你需要时常更新这些地图的话,手动弄起来会花费许多时间,甚至可能会成为超级麻烦事。不过,QGIS 有个称为 舆图
的工具,可以让你设计地图范本并且使用它来制作出版许多不同地区的地图。如果你对「地图出版设计(Print Composer)」不熟悉,请先阅读 制作地图 中的教学。
内容说明¶
本教学将示范如何为夏威夷州的每个县制作湿地地图。
你还会学到这些¶
使用
反转多边形
样式设定多边形外侧的区域样式在
规则
样式设定中使用表达式,让舆图工具只显示现在选择的图征在地图出版设计中使用表达式建立动态标记
取得资料¶
本章中我们使用的是夏威夷州 Office of Planning提供的 GIS 资料图层
下载隶属于生物与生态类别的湿地图层
下载隶属于文化与人口统计类别的 2010 郡县边界 图层
为了方便起见,你也可以直接用下面的连结下载这两份资料集:
资料来源 [HAWAII]
操作流程¶
打开 QGIS,选择
。
选择
HI_Wetlands.shp.zip
并按下 确定。
选择
HI_Wetlands_Poly
图层并点选 确定。
你会看到很多多边形出现,代表夏威夷州全部的溼地范围。由于我们要分别制作夏威夷每个县的溼地地图,因此还需要一个郡县边界的图层才行。选择
,然后点选county10.shp.zip
,按下 开启。
选择
。
设计标题保持空白,按下 确定。
选择
。
在地图版面上拖曳一块你想插入地图的区域。
切换到 项目属性 分页然后向下捲动,勾选 由舆图控制 的方框,此选项用来告诉电脑本地图的范围是由
舆图
工具所控制。(译按:如果这时方框是无法选取的状态,请先完成后续几个步骤,再回来勾选。)
切换到 舆图设计 分页,勾选 产生舆图 方框,复盖图层 选择
county10
,如此一来电脑就会为每个在county10
内的多边形图征创造各自的地图。你也可以勾选 隐藏复盖范围图层,这样一来「复盖图层」内的图征就不会显示在地图上。
虽然已经完成了舆图设定,但这时地图影像还不会有任何改变。选择
。
按下去之后地图会刷新成为其中一张地图看起来的样子,注意在右侧最底部有个讯息,告诉你现在所使用的多边形图征编号。
你也可以预览由其他多边形建立的地图,请选择 舆图 –> 下一个图征,
如此一来地图就会刷新为下一个图征复盖的范围。
来加点标记吧!选择
,
在标记的 项目属性 分页中,选择 插入表示式…。
在此功能中,标记文字可以使用复盖图层的属性。我们要使用
concat
函数来把两段字串合并,而要合并的字串分别为County of
和county10
图层中的NAME10
属性值。加入以下的表达式后,按下 确定。
concat('County of ', "NAME10")
调整成你喜欢的字体大小。
加入另一个标记,然后在 主要属性 下输入
Wetlands Map
。由于没有使用表达式,此文字在所有的地图中都会相同。
选择
,然后确认地图标记有照我们所想的运作。目前湿地地图上的多边形也延伸到了海中,看起来不怎么美观,所以接着我们就要来改变样式,隐藏郡县边界外侧的多边形图征。
切换到 QGIS 主视窗,在
county10
图层上按右键选择 属性。
在 样式 分页中,选择 反转多边形 的呈现方法,这个特殊的样式设定的是多边形的「外部」区域。选择白色做为填充色彩,然后按下 确定。
回到地图设计的视窗,如果我们要让反转多边形的设定出现的话,就得先取消勾选在 舆图设计 分页下的 隐藏复盖范围图层 才行。套用新样式后的地图由于多边形外围区域已经隐藏起来,看起来干净许多。
不过目前还有一个问题,你可以看到在位在复盖图层内部,但是属于其他图征的区域仍然可以看见,这是因为舆图工具并不会自动把其他图征也隐藏起来。此设计在某些状况下很有用,但却不是我们想要的、每个地图只呈现单一个多边形图征内的资讯。为了修正此问题,我们要回到 QGIS 主视窗,然后在
county10
图层上按右键,选择 属性。
在 样式 分页中,有个 子绘图 下拉选单,选择 规则 的呈现方法。在下方 规则 的栏位上点两下。
点选 过滤条件 右侧的 … 钮。
在 表达式字串建构器 中,展开 Atlas 的群组(译按:或是 Variables 的群组),然后找到
$atlasfeatureid
或atlas_featureid
,此函数会传回目前舆图工具选择的图征。我们要做的是建立一个表达式,让它只选择舆图工具选择的图征,因此请输入以下表达式:
$id = $atlasfeatureid
回到地图设计的视窗,在地图项目的 项目属性 分页中点选 :guilabel:` 更新预览` 后,就可以看到改变,现在每张地图都只会显示位于本郡县边界内的资料了。
我们再来加入另一个新的标记,用来标示现在的日期。选择 插入表示式 钮。
然后选择地图上的任一区域,完成后按下
展开 日期与时间 的群组,找到
now
这个函数,它用来表示现在的系统时间。另外我们要使用todate()``这个函数,用来把 ``now
的函数值转换成日期字串。请输入以下表示式:
concat('Created on: ', todate($now))
再加入另外一个标记,引用资料来源。你也可以顺道加入其他的地图元素,例如指北针等等,请参考 制作地图 一章的说明。
当你完成地图版面后,选择
。
选择电脑中的某资料夹,然后按下 选择 钮。
舆图工具会自动地使用我们刚刚建立的范本,为复盖图层中的每个图征创造各自的地图。处理完成后,在资料夹中就能找到这些地图。
这里放上完成版地图以供参考。