QGIS地图图册怎么做?Atlas功能如何配?
很多同学在做行政区成果图、样点分布图、项目分幅图时,都会遇到同一个问题:QGIS地图图册怎么做?Atlas功能如何配? 如果每个乡镇、每个地块、每个调查区都手动缩放、导出一张图,不仅慢,而且很容易出现比例尺不一致、标题漏改、范围偏移等问题。QGIS 的 Atlas 图册功能就是为了解决这类“按要素批量出图”的工作流。

引言:QGIS地图图册适合解决什么问题
QGIS地图图册适合“同一套版式,按不同空间对象重复出图”的场景。最常见的例子包括:按行政村导出村域图、按地块导出权属图、按样区导出调查图、按网格导出巡查图、按道路分段导出施工图。
它的核心价值不是单纯“导出多张图片”,而是让每一页地图自动匹配对应要素的范围、名称、编号、属性信息和比例尺设置。这样可以把原本几十分钟甚至几小时的重复制图工作,变成一次配置、批量输出。
本文以 QGIS 布局管理器中的 Atlas 功能为主线,讲清楚 QGIS地图图册怎么做、Atlas功能如何配、动态标题怎么写、图幅范围怎么控制,以及常见导出问题如何排查。
背景:为什么手动出图容易出错
在 QGIS 中,普通出图流程通常是:调整地图窗口、打开布局、设置比例尺、修改标题、导出图片或 PDF。这个流程适合单张图,但不适合几十张、上百张图。
手动出图常见问题有:
- 每张图的缩放范围不一致,导致图册阅读体验差。
- 标题、编号、行政区名称需要手动修改,容易漏改。
- 比例尺、图例、指北针位置虽然固定,但地图主体范围不断变化。
- 某些图幅边界被裁切,重要地物没有完整显示。
- 导出文件命名混乱,后期整理成本高。
Atlas 图册功能的设计思路是:用一个“覆盖图层”作为分页依据。覆盖图层中的每一个要素,对应图册中的一页。QGIS 会依次读取每个要素的几何范围和属性字段,自动生成对应地图页面。
原理:Atlas功能如何配才算理解到位
Atlas 的关键概念有三个:覆盖图层、地图项联动、动态表达式。
1. 覆盖图层决定图册页数
覆盖图层也可以理解为“分页图层”。如果覆盖图层有 20 个乡镇面要素,那么 Atlas 通常会生成 20 页图册;如果覆盖图层有 100 个地块面要素,就可以生成 100 页地块图。
覆盖图层可以是行政区面、地块面、网格面,也可以是点图层或线图层。但在实际制图中,面图层最常见,因为它天然具备范围边界。
2. 地图项联动决定每页显示范围
在 QGIS 布局中,地图主体是一个“地图项”。Atlas 启用后,需要让这个地图项跟随当前 Atlas 要素自动缩放。否则 Atlas 虽然在翻页,但地图范围不会变化。
这一点是新手最容易漏掉的配置:启用 Atlas 不等于地图自动缩放,必须在地图项属性中勾选由 Atlas 控制。
3. 动态表达式决定标题和文件名
Atlas 可以读取覆盖图层的字段,例如名称字段、编号字段、行政代码字段。通过表达式,可以让标题自动变成“某某乡土地利用现状图”,也可以让导出文件名自动变成“001_某某乡.pdf”。
这就是 QGIS Atlas功能如何配的核心:空间范围用几何控制,文字内容用字段控制,输出文件名用表达式控制。
步骤:QGIS地图图册怎么做
步骤一:准备覆盖图层和业务图层
先在 QGIS 工程中准备好两类数据:
- 覆盖图层:用于控制每一页图册范围,例如乡镇边界、村界、地块、网格。
- 业务图层:真正需要展示的内容,例如道路、水系、用地分类、样点、遥感影像。
建议先检查覆盖图层属性表,至少保留一个可读性好的名称字段,例如 name、town、村名、plot_id。这个字段后面会用于动态标题和导出文件名。
如果字段中存在空值、重复值或特殊符号,建议提前清理。尤其是导出文件名字段,不要包含 /、、:、*、? 这类容易影响文件保存的字符。
步骤二:设置地图样式和图层顺序
在进入布局之前,先把主地图窗口中的图层样式调好。Atlas 只负责批量出图,不会自动帮你优化符号系统。
建议按以下顺序检查:
- 覆盖图层边界是否清晰,可设置为空心填充加粗边线。
- 业务图层是否被覆盖图层遮挡。
- 点、线、面符号在目标比例尺下是否可读。
- 标注是否会在小范围图幅中重叠。
- 如果有影像底图,透明度和亮度是否合适。
如果希望每一页突出当前 Atlas 要素,可以给覆盖图层设置基于规则的样式,或在布局中额外使用当前要素高亮效果。简单项目中,先用清晰边界即可。
步骤三:新建布局并添加地图项
在 QGIS 菜单中选择“项目”中的“新建打印布局”,输入布局名称,例如“乡镇图册”。进入布局窗口后,添加地图项,并调整到页面主体区域。
常见版式建议:
- A4 纵向:适合单个行政区、地块范围较紧凑的图册。
- A4 横向:适合东西向较长的区域。
- A3 横向:适合包含较多图层和注记的专题图。
添加地图项后,可以先手动调整一次范围,让页面中大致显示研究区范围。后面启用 Atlas 后,每一页会根据覆盖要素自动更新。
步骤四:启用 Atlas 并选择覆盖图层
在布局窗口中找到 Atlas 设置面板,勾选“生成图册”或“启用 Atlas”。然后在覆盖图层中选择你的分页图层,例如乡镇边界或地块图层。
常用配置如下:
- 覆盖图层:选择用于分页的面图层。
- 过滤要素:如果只想导出部分区域,可填写表达式筛选。
- 排序:按编号、名称或行政代码排序,保证输出顺序稳定。
- 输出文件名表达式:使用字段生成每页文件名。
例如,如果覆盖图层中有字段 code 和 name,可以使用类似表达式作为文件名:
"code" || '_' || "name"
如果只有名称字段,可以先使用:
"name"
注意,表达式中的字段名要和属性表完全一致。如果字段是中文,也可以使用中文字段名,但为了长期维护,项目中更推荐使用英文或拼音字段名。
步骤五:让地图项跟随 Atlas 要素缩放
选中布局中的地图项,在地图项属性中找到 Atlas 相关设置,勾选“由 Atlas 控制”或类似选项。然后设置缩放方式。
常见范围控制方式有两类:
- 边距方式:按当前要素外接矩形自动缩放,并增加一定百分比边距。
- 固定比例尺方式:每页使用统一比例尺,适合标准化图幅。
如果是行政区图册,通常建议使用“自动缩放到要素范围 + 10% 到 20% 边距”。这样每个区域都能完整显示,并留出适当空白。
如果是工程图、地籍图、标准图幅,建议使用固定比例尺,例如 1:500、1:1000、1:5000。这样可以保证每页空间尺度一致,但需要注意大范围要素可能显示不完整。
步骤六:添加动态标题
在布局中添加文本标签。标题不要手动写死,而是使用 QGIS 表达式读取当前 Atlas 要素字段。
例如字段名为 name,标题可以写成:
[% "name" %] 土地利用现状图
如果字段为 town,可以写成:
[% "town" %] 行政区专题图
这类动态文本会在 Atlas 翻页时自动变化。第一页可能显示“东山镇土地利用现状图”,第二页自动变成“西河镇土地利用现状图”。
步骤七:添加图例、比例尺、指北针和备注
一个完整的 QGIS地图图册通常不只包含地图主体,还应包含图例、比例尺、指北针、数据来源、制图时间和项目名称。
建议至少添加以下内容:
- 图例:保留必要图层,删除无关图层项。
- 比例尺:选择线段式比例尺,单位与坐标系一致。
- 指北针:放在右上角或图外空白区域。
- 坐标系说明:例如 CGCS2000、高斯克吕格投影、UTM 投影等。
- 数据来源:便于成果交付和复核。
如果图册用于正式成果交付,建议在页面底部增加制图单位、日期、审核人等信息。
步骤八:预览 Atlas 翻页效果
配置完成后,在布局窗口中打开 Atlas 预览。使用上一页、下一页按钮检查每一页效果。
重点检查:
- 每一页地图范围是否正确跟随要素变化。
- 标题是否读取到了正确字段。
- 是否有某些要素过小,导致图幅缩放过度。
- 是否有某些要素过大,导致比例尺或注记不可读。
- 图例、比例尺、指北针是否遮挡地图内容。
- 导出文件名是否符合预期。
不要只看第一页。很多 Atlas 问题只会出现在后面的特殊要素上,例如狭长地块、飞地、多部件面、属性为空的记录。
步骤九:批量导出 PDF 或图片
预览确认无误后,可以选择导出 Atlas。常见输出方式包括:
- 导出为单个 PDF:适合形成一本完整图册。
- 导出为多个 PDF:适合按村、按地块分别提交。
- 导出为 PNG 或 JPEG:适合汇报材料、网页展示或后续排版。
如果用于打印归档,优先选择 PDF。如果用于 Web 展示,可以导出 PNG。JPEG 适合照片和影像底图,但对线划图和文字可能不如 PNG 清晰。
常见坑:QGIS Atlas功能如何配才不翻车
坑一:启用了 Atlas,但地图范围不变
原因通常是只在 Atlas 面板中启用了图册,却没有在地图项属性中勾选由 Atlas 控制。解决方法是选中地图项,进入地图项属性,确认 Atlas 控制已启用。
坑二:导出的图册每页标题都一样
这通常是标题写成了普通文本,而不是动态表达式。应使用 [% "字段名" %] 这种形式读取当前要素字段。
如果字段名写错,标题可能为空。可以打开覆盖图层属性表,复制准确字段名再填写。
坑三:部分图幅要素被裁切
如果使用固定比例尺,较大的要素可能超出地图范围。如果使用自动范围但边距太小,也可能出现边界贴边的问题。
解决方法:
- 提高边距比例,例如从 5% 改为 15%。
- 对狭长区域改用横向版式。
- 对大小差异特别大的要素分组出图。
- 必要时单独为特殊区域制作补充图。
坑四:动态文件名导出失败
如果输出文件名中包含非法字符,系统可能无法保存文件。建议先用字段计算器生成一个干净的文件名字段,例如 atlas_name,只保留编号、下划线和中文名称。
也可以在表达式中进行简单替换,例如把空格替换为下划线:
replace("name", ' ', '_')
坑五:坐标系不合适导致比例尺和面积表达不可靠
Atlas 出图本身不强制要求投影坐标系,但如果图册涉及比例尺、距离、面积、工程精度,建议使用适合本区域的投影坐标系,而不是直接使用经纬度坐标系。
例如,中国区域常见项目会使用 CGCS2000 相关投影坐标系。若使用 EPSG:4326 经纬度坐标系,比例尺显示和距离感知可能不符合工程制图习惯。
坑六:标注在某些页面严重重叠
Atlas 每页范围不同,标注密度也不同。一个在总图上合适的标注样式,到了局部图上可能过密。
建议使用比例尺控制标注显示,或对不同级别地物设置不同标注规则。对于正式图册,可以先批量导出草稿,再针对少数问题图幅微调。
方法比较:Atlas、手动出图和图幅网格该怎么选
| 方法 | 适用场景 | 优点 | 局限 |
|---|---|---|---|
| 手动出图 | 只需要 1 到 3 张成果图 | 操作直观,调整灵活 | 不适合大量重复图幅,容易漏改标题和范围 |
| QGIS Atlas 图册 | 按行政区、地块、网格、样区批量出图 | 自动分页、动态标题、批量导出,效率高 | 需要提前整理覆盖图层和字段 |
| 规则图幅网格 | 标准分幅、巡查网格、遥感切片索引图 | 图幅大小统一,便于编号和管理 | 不一定贴合行政区或业务对象边界 |
| 脚本批量制图 | 大规模自动化制图、固定生产流程 | 可重复、可集成到生产系统 | 需要 PyQGIS 或其他编程能力 |
如果你的需求是“每个行政区一张图”或“每个地块一张图”,优先使用 QGIS Atlas。它比手动出图稳定,也比写脚本门槛低。
如果你的需求是严格按固定大小网格出图,可以先生成网格面图层,再把网格作为 Atlas 覆盖图层。这样既能保持图幅统一,又能使用 Atlas 的批量导出能力。
检查清单:导出前逐项确认
在正式导出 QGIS地图图册之前,建议按下面清单快速检查:
- 覆盖图层是否选对,页数是否符合预期。
- 覆盖图层属性表中是否有稳定的名称或编号字段。
- 地图项是否勾选由 Atlas 控制。
- 范围缩放方式是自动边距还是固定比例尺。
- 动态标题是否能随 Atlas 翻页变化。
- 导出文件名表达式是否包含非法字符。
- 图例是否只保留必要图层。
- 比例尺、指北针、制图说明是否完整。
- 至少抽查第一页、中间页、最后一页和几个特殊形状要素。
- 输出 PDF 或图片的分辨率是否满足打印或交付要求。
如果图册页数很多,建议先低分辨率导出一版检查稿,确认版式和字段无误后,再导出正式成果。
FAQ:QGIS地图图册常见问题
QGIS地图图册怎么做才适合批量交付?
关键是先把覆盖图层整理好。每个要素对应一页,每个要素都应有唯一编号和清晰名称。然后在布局中使用 Atlas 控制地图范围,用动态文本生成标题,用表达式生成导出文件名。这样导出的图册更适合批量交付和归档。
QGIS Atlas功能如何配动态标题?
在布局中添加文本标签,使用表达式读取当前 Atlas 要素字段。例如字段名为 name,可以写 [% "name" %] 专题图。Atlas 翻页时,标题会自动读取当前要素的属性值。
Atlas 覆盖图层必须是面图层吗?
不必须。点、线、面都可以作为覆盖图层。但面图层最适合行政区、地块、网格这类图册,因为它的空间范围明确。点图层作为覆盖图层时,通常需要设置固定比例尺或较大的缓冲范围,否则地图范围可能过小。
QGIS Atlas 可以一次导出多个单独 PDF 吗?
可以。导出 Atlas 时可以选择按页面分别导出,也可以使用文件名表达式为每个 PDF 命名。实际项目中,按村、按地块分别导出 PDF 很常见。
为什么我的 Atlas 导出文件顺序是乱的?
通常是没有设置排序字段。可以在 Atlas 设置中启用排序,按行政代码、编号或名称字段排序。建议使用数字编号或标准行政区划代码,而不是依赖图层默认记录顺序。
QGIS地图图册能不能每页只显示当前行政区内的数据?
可以,但需要进一步配置。简单做法是用覆盖图层边界遮罩或裁剪业务数据;更高级的做法是使用基于 Atlas 当前要素的规则表达式,只显示与当前要素相交或属于当前区域的数据。对于新手,建议先完成基础 Atlas 出图,再处理按页过滤显示。
Atlas 图册导出很慢怎么办?
常见原因包括影像底图太大、图层太多、标注计算复杂、输出分辨率过高。可以先关闭不必要图层,降低草稿导出分辨率,简化标注规则,或把大型矢量数据建立空间索引后再导出。
结论:先把覆盖图层和动态字段配好
QGIS地图图册的关键不是反复点击导出,而是把 Atlas 的三个核心环节配置正确:覆盖图层决定页数,地图项联动决定范围,动态表达式决定标题和文件名。
如果你刚开始学习 QGIS Atlas功能如何配,建议先用一个包含 5 到 10 个要素的小图层练习,跑通“启用 Atlas、控制地图范围、动态标题、批量导出”这条流程。等流程稳定后,再用于完整行政区图册、地块图册或项目成果图批量生产。
实际工作中,最可靠的做法是:先整理字段,再设计版式;先预览抽查,再正式导出。这样做出来的 QGIS地图图册既高效,也更容易通过检查和交付。