夜雨聆风学习资料网

ARTICLE · 1111250

【原生路基01】六大利器,一张模板搞定 ArcGIS 批量制图

【原生路基01】六大利器,一张模板搞定 ArcGIS 批量制图

本文属于「原生路基」系列 · 第 01 篇

讲插件背后的 ArcGIS 原生功能。姊妹系列「AI造插件」走的是另一条路——把人工的复杂过程,做成机器流水线。


一120 幅图,我导了一整天

分幅成果图,120 幅。

按老办法干:打开布局,调地图范围到第 1 幅,改图名,导出;再调范围到第 2 幅,改图名,导出……第 120 次的时候,手是麻的,脑子是木的。

更气人的是:图面上一堆不属于本幅的要素。第 1 幅上画着测区所有的图斑,糊成一团。你辛辛苦苦调的图,一眼就是废的。

后来才知道,ArcGIS 里早就有解决这个问题的功能,叫数据驱动页面(Data Driven Pages)。学会之后,120 幅图从"一整天"变成"点一次导出"。

这篇文章讲透它,以及围绕它的六个别扭但决定成败的利器。

二先看结果

配图 1 ·一张模板,翻页式导出 120 幅图(GIF)

数据驱动页面到底是什么?只有两件事:

一个索引图层 + 一套布局模板 = 一堆图。

· 索引图层:一个面要素类,一行 = 一页。每一行的范围,就是那一页地图的显示范围。

· 布局模板:你在布局视图里摆好的图框、图例、比例尺、指北针、图签,所有页共用。

设置入口:工具栏空白处右键 → 数据驱动页面,点击“数据驱动页面设置”,勾选"启用",选索引图层,选名称字段。

配图 2 ·启动“数据驱动页面设置”

就这么简单。真正让人翻车的,是下面这六件事。


三六大利器

利器一:索引图层 —— 必须是一个"面"

1. 建议是面要素类,点、线不方便控制

2. 一行一页,一个面就是一页

3. 有一个唯一编号字段,用来排序、命名、过滤

几个必踩的坑:

· 要素顺序 = 页面顺序。想按图号排序,就按图号字段排序后再启用。

· 索引图层本身在图层列表里不要勾选,否则每张图上都印着那个方框。

反例:没有索引图层,你只能一页页手动改地图范围 —— 120 幅就是 120 次手工操作。

配图 3 · 索引图层(渔网/网格面)在 ArcMap 里的样子


利器二:动态文本 —— 把字段"印"到图面上

位置:插入 → 动态文本。

它能把索引图层的任意字段变成图面上的文字:

· 数据驱动页面属性(取索引图层的字段 → 图名、图号)

· 页码 / 总页数

· 出图日期、当前坐标系、比例尺

实用组合:图签里放"第 3 幅 / 共 120 幅",图名位置放索引图层的 Name 字段,图角放坐标。

配图 4 ·“数据驱动页面名称”

配图 5 ·“数据驱动页面属性”

动态文本效果数据驱动页面属性(取索引图层的字段 → 图名、图号)


利器三:页面定义查询 —— 一张模板能成立的根本原因 ★

这是全文最该记住的一个功能,也是 90% 的人不知道的那个。

位置:图层属性 → 定义查询 → 页面定义。

没有它会怎样:你导出 120 幅图,每一幅上面都画着全部 120 幅的要素。图面糊成一团,全是废图。而且——你是导完才发现。

有了它:同一套图层,翻到哪一页,就只显示哪一页该有的东西。

典型用法:

· 照片图层 → 数据驱动显示当前图幅范围内关联的照片

配图 6 ·初次插入图片

配图 7 · 切换为“数据驱动页面的简单路径”

#需包含该照片的‘完整路径’或相对于mxd文件位置的‘相对路径’

· 图斑图层 → 只显示本图幅的图斑

配图 8 ·要素的“图层属性”中设置“页面定义查询”

#仅当设置“数据驱动页面”时才显示“页面定义查询”

#可通过“ArcToolBox”的“分析工具”中的“标识”或“空间链接”预先标注

· 注记图层 → 只显示本图幅的注记

三种模式:仅当前页面范围内的要素 / 与索引图层字段匹配 / 两者组合。

第三种的威力最大。举个例子:索引图层里如果有"所属村"字段,就能设定"只显示当前页面所属村的全部要素"——跨越图幅的要素也不会被切断。这就是"一张模板走天下"的真正实现方式。

一句话:利器一给你分幅,利器三给你分幅之后的"该显示什么"。


利器四:范围指示器 —— 装上它,图立刻"像正规院出的"

在布局里再放一个小的数据框,数据框属性 → 范围指示器,指向主数据框。

效果:主图角落出现一个小测区示意图,里面有个红框标出"当前这一幅在整个测区的哪个位置"。

成本 3 分钟,观感提升一个档次。

配图 9 ·范围指示器效果:主图角落的小测区示意图 + 红框定位


利器五:页面设置与图廓整饰 —— 别让 120 张图对不齐

页面设置要解决的是:数据框在页面上的位置和大小,必须每一页完全一致。

做法:按锚点(左上角、中心等)把数据框对齐,页面尺寸跟数据框宽高同步。

图廓整饰清单(一张合格的成果图):图名、图号、比例尺(数字 + 线段)、指北针、图例、图签(坐标系、制图人、日期、资料来源)。

一个小技巧:图例只显示"可见图层"。配合利器三,翻到某页时该图层被过滤掉了,图例里也不会留下空目录,整饰会干净很多。

配图 6 · 待插入

图廓整饰效果:图例只显示可见图层,不留空目录

反例:数据框没对齐,120 张图的图框位置各差一点,后期拼成图册的时候你会想砸键盘。


利器六:导出与命名 —— 两种打法

打法 A:多页 PDF(快)

文件 → 导出地图 → PDF → 勾选"页面:全部"。得到一个 120 页的 PDF,翻起来爽,发出去也体面。

打法 B:逐页出文件(要命名规则)

需要"成果图_001_XX村.jpg"这种命名,并且 300dpi 出图 —— ArcMap 的导出对话框做不到自动按字段命名,得靠 ArcPy 写循环。

代码块 

# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

mxd = arcpy.mapping.MapDocument("CURRENT")

for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):

...     mxd.dataDrivenPages.currentPageID = pageNum

...     page_name=mxd.dataDrivenPages.pageRow.getValue("字段名称")

...     arcpy.mapping.ExportToJPEG(mxd, r"E:\pic\\" + str(page_name) + ".jpg",resolution = 300)

... del mxd

#“字段名称”为数据驱动页面要素的制定'字段',导出时以次字段命名

# r"E:\pic\\"为导出路径


小结

利器
一句话作用
没有它会怎样
1 索引图层
一行一页,定范围
只能手工改范围
2 动态文本
把字段印到图上
120 张图全是"无标题"
3 页面定义查询
每页只显示该显示的
120 张图全是废图
4 范围指示器
图上标出"我在这"
拼图时找不到方位
5 页面设置整饰
每页严格对齐
图册对不齐,返工
6 导出与命名
出 PDF / 出图
交付不体面、要手工改名

四落地:搭好一张模板的七步

照着做,一遍就成:

1. 准备索引图层:面要素类,加唯一编号字段,按编号排好序

2. 启用数据驱动页面:数据框属性 → 数据驱动页面 → 勾选启用,选索引图层和名称字段

3. 设比例尺模式:固定比例 / 最佳比例 / 按字段驱动(注意:要用"按字段",索引图层里必须先有比例尺字段)

4. 摆布局:图框、图例、比例尺、指北针、图签,按锚点把数据框对齐,取消打印机纸张设置

5. 插动态文本:图名(索引图层字段)、页码、出图日期、坐标系

6. 逐图层配页面定义查询:把不该每页都出现的图层全部管起来

7. 加范围指示器,然后导出:多页 PDF 或逐页文件

第 2 步之前,如果没有一个"合格的索引图层",后面全是空谈。


五三个最常见的翻车

1.索引面重叠 → 出现重复图幅,两份成果互相打架

2.忘了配页面定义查询 → 导完 120 张才发现每张都糊着一堆不属于本幅的要素(最惨,因为返工成本最高)

3.数据框没对齐、没取消"使用打印机纸张设置" → 换台机器出图,A3 变 A4,图框全错位

这三条,本质上都是"开工前没检查索引图层和模板"。


六那么,索引图层从哪来?

六大利器全部围绕一个东西转 —— 索引图层。索引图层字段越厚,模板能自动化的东西就越多。

但现实里最常见的情况是:你手上根本没有合格的索引图层。

比如我那次:四百多张外业隐患点照片,有坐标,但一张张拖进 ArcMap 只是散落的图片,更别说什么"一行一页的索引面"了。手工去画 400 个矩形,画完天都亮了。

所以往后,我给你两个我自己写、并且都开源了的工具。

下一篇 · 路旁工坊 01

大疆照片元数据导 Excel,还带地形取景面

出图之前,先得知道照片到底拍到了哪。这个工具把每张无人机照片的视场投到 DEM 上,算出它真实的覆盖范围——顺带把元数据批量导成 Excel。

再下一篇 · AI造插件 01

GISer的工程图册:400 张照片铺成解译底图

它做三件事:读照片像素尺寸和 EXIF → 生成世界文件把照片排成整齐的工程图册 → 顺手把索引图层(渔网)也建好,直接喂给这篇讲的六大利器。

插件是用 AI 辅助写的,我会把 AI 翻车的两个真实案例一起贴出来。


系列导航

本篇:「原生路基 01」六大利器,一张模板搞定 ArcGIS 批量制图

下期预告:「路旁工坊 01」大疆照片元数据导 Excel,还带地形取景面

再下篇:「AI造插件 01」GISer的工程图册:400 张照片铺成解译底图

山行借路|造插件、讲路基、逛工坊

陪你少走弯路,多见风景

相关学习资料