做了这么多年GIS,我一直觉得ArcGIS出图这事,难点从来不在“点哪个按钮”,而在于怎么让一张图既规范又好看,还能让打印出来或者提交上去的成果不出幺蛾子。很多人拿着做好分析的数据,一到布局视图就卡壳,图例乱跳、比例尺对不上、导出的图片模糊得没法看,最后只能回去调试半天。这篇就把我从数据整理到最终导出的完整出图流程拆开讲清楚,全程用ArcMap为主,一些环节会带一句ArcGIS Pro的做法,希望能帮你少走弯路。
这篇内容适合刚接触ArcGIS的学生、需要定期提交图件的规划或测绘从业者,以及所有被“出图”这事折磨过的朋友。看完你会发现,出图不是靠临场发挥,而是有一套固定的检查清单和操作习惯,照着做基本不会翻车。
1. 出图前最关键的一步:数据整理与检查
很多人打开ArcMap就直接往Layout视图拖数据框,这是误会了出图的顺序。出图前80%的工作量都在数据处理上,数据不规范,后面所有整饰都是白搭。我见过太多同学在ArcMap里辛辛苦苦配好符号,结果导出PDF后发现两个相邻图斑中间有一条细细的白线,或者标注文字重叠在一起,又或者坐标对不上,图面要素全都偏到一边——这些问题根源都在数据处理阶段。
1.1 统一坐标系是一切制图的地基
先问你自己一个问题:你现在用的数据是WGS84、CGCS2000,还是西安80、北京54?在ArcMap里,不同坐标系的数据加载到同一个数据框里,软件会做实时投影,图面看起来好像没问题,但你一旦切换布局视图、添加经纬网或者导出图片,问题就全暴露出来了。
我的建议是:出图前先统一所有数据的投影坐标系。比如做县级或更大范围的图件,常用的是CGCS2000 / 3-degree Gauss-Kruger CM 120E这种投影坐标系,单位是米,方便计算比例尺和面积。如果你数据是WGS84经纬度,也想做投影,那就用Project工具统一转过去。
注意:数据框的坐标系最好在开始制图前就设置好。右键图层 → Properties → Coordinate System,选好投影坐标系后,再去加载数据。别等图都配好再改数据框坐标系,否则标注位置、图例比例都会有偏差。
另外有一点容易忽略:你在ArcToolbox里做缓冲区、裁剪、相交这些分析时,输出的数据默认会沿用输入数据的坐标系,但如果你用“环境设置”里的输出坐标系,可能就会变成别的,出图前最好再确认一遍图层的属性里的坐标系显示,别想当然。
1.2 属性表检查与字段规范:把脏数据挡在门外
出图需要的属性表,不只是“有数据”就行,还要保证字段内容规范。以土地利用图为例,地类名称、面积字段、权属单位这些都要准确,名称里不能有空格、全角符号、乱码。这些脏数据到了图例和标注里,会被无限放大,特别难看。
这里我踩过一个典型的坑:字段小数点前不显示0。比如面积是0.538公顷,显示出来变成了“.538公顷”,这种问题在ArcGIS出图标注时很常见。解决方案是在字段属性里设置数字格式,或者用表达式处理。
# 标注表达式里可以用这样的写法,保留前导0 def FindLabel([AREA]): return "{:.3f}".format(float([AREA]))在图层标注里选择“表达式”,用Python解析器,面积字段就会正常显示0.538而不是.538。
专题图常会用到“多字段组合标注”,比如“地块编号 + 地类名称”。直接在表达式里用&符号连接即可:
[地类编号] & " " & [地类名称]注意在中文环境下,建议用Python解析器,避免VB Script处理中文时出现编码问题。
另外,导入CAD数据时文字乱码也是高频问题。CAD转SHP或直接在ArcMap里打开CAD文件时,文字要素显示成乱码,一般是因为CAD里用的是SHX字体或高版本编码,转出时没有正确映射。做法是先把DWG导入到地理数据库(File Geodatabase)里,导入时在“空间参考”和“符号系统”里做调整,尽量把文字转成注记或SHP,再检查字体映射。CDA的文本要素还可以在属性表里改文本内容,或者用“标注”方式重新挂接属性。
1.3 拓扑检查:消灭压盖线和尖锐角
出图最容易翻车的就是压盖线。两个相邻图斑的边界本应共用一个边,但如果你分别数字化或从CAD直接转过来,就会出现线压线、小缝隙的情况。打印出来倒不明显,但提交电子成果时,用GIS软件一查拓扑关系,全是错误。
我的做法是:正式出图前用ArcCatalog里的“新建拓扑”功能,对要素类做一次检查。空间参考一致的前提下,用规则“Must Not Overlap”(面之间不能重叠)和“Must Not Have Gaps”(面之间不能有缝隙),跑一遍拓扑,把错误导出来,手工修改。
尖锐角也是一样。等高线或地块边界有角度特别小的折点,出图后线条会显得很粗糙。可以用“检查尖锐角”的插件,也可以直接用“概化”(Simplify)工具——但这里要小心,概化会改变几何形状,如果只是去尖锐角,建议用隐藏的“Eliminate”或“Integrate”工具先把共线和重复节点处理掉。
实操心得:拓扑检查没过不代表图不能用,但作为要提交的成果图,哪怕只为了视觉效果,也得处理干净。压盖线、尖锐角这些瑕疵,放到纸上打印出来很容易被行家一眼看出来,很丢印象分。
2. 符号化与标注:一张图的灵魂在这里
数据整理完之后,接下来就是符号化。出图风格的差异,产品感强不强,基本都在这一步体现。ArcMap的符号系统很全面,从单一符号到分类符号、渐变符号、图表符号都有,关键是搞清楚你的图要给谁看、要表达什么。
2.1 分类符号化与地类符号太密的处理
做土地利用图、现状图、规划图时,最常见的需求是按地类字段分类显示。在图层属性 → Symbology → Categories里,选“Unique Values”,Value Field选地类代码或地类名称。如果分类太多,图例上会堆满几十个类别,图面根本放不下。
地类符号太密了怎么办?这里有两个实用招数。第一,压缩分类:把零碎的小类合并成“其他用地”,或者把不重要的类别统一显示为浅灰色;第二,调整图例的排列方式。在布局视图里,右键图例 → Properties,把“排列方式”改成“按列排版”,设置一列最多显示多少个图例项,多余自动分行。我习惯一列放6~8个图例项,行距保持在2~3磅之间,既整齐又省空间。
制图表达(Representation)是ArcMap里一个很适合精细制图的功能。把图层转为制图表达后,可以单独调整某一个要素的符号,比如把某几栋房子的填充透明度调低,而不影响整个图层。这对于突出重点地块非常有帮助。
2.2 标注:文字不出错,图面才专业
标注(Labels)和注记(Annotations)的区别要搞清楚。标注是动态的,随比例尺变化自动重排,适合出图前的调节;注记是固定的,适合放在地图里作为精确的图形元素。出图我一般用标注配合“标注优先级”功能,代码级别控制文字重叠:
标注优先级可以在图层属性 → Labels → Placement Properties里设置。比如面图层优先标注面积较大的图斑,线图层优先标注等级高的道路。如果还有重叠,可以用“标注冲突”面板手动调整。
缩放比例也是标注是否“爆图”的关键。小比例尺下全部标注会挤成一团,我的做法是在标注属性里设置“比例范围”,一般设定在1:500~1:5000之间显示详细标注,更小比例尺只显示主干地名和路名,这样图面干净。
经验技巧:中文换行问题。标注表达式拼接时,想让某一类标注换行,可以这样写:
def FindLabel([NAME], [TYPE]): return [NAME] + "\n" + [TYPE]这样在样式中选择“换行”即可,但注意一定要在表达式里用\n,并且把标注的“放置属性”设为“街道/地址”类型,否则换行会被空格替代。
2.3 常用底图处理:裁剪影像与画线
出图经常需要叠加影像底图。从在线地图服务加载遥感影像,或者用无人机正射影像作为底图,都需要先裁剪到研究区范围。ArcGIS里的“裁剪影像”有两种方式:一种是用栅格处理里的Clip工具,一种是直接用ArcMap里的“裁剪”图层功能。前者会生成一个新的栅格文件,后者只是显示上裁剪,原数据不变。如果你只需要出图,用后者就行,速度更快;如果要提交数据,用前者最稳妥。
另外,“画线”这个基础操作也常有人问。ArcMap里要手动补充CAD没有的边界线时,先开启“编辑器”工具栏,选择要编辑的图层,然后开始编辑,用“草图工具”沿边界画线。画线时建议开启“捕捉”设置里的“端点”和“顶点”捕捉,能大幅减少断线。画完记得保存编辑并停止编辑,否则线看起来画上了,一刷新就没了。
影像裁剪后如果边界太生硬,可以在布局里套一个白色轮廓或阴影,视觉上会柔和很多。
3. 布局视图:从数据框到完整图件
数据配好了,符号化也完成了,这时才轮到布局视图登场。布局视图里的核心动作是:设置页面、放数据框、加整饰要素、加经纬网、调整打印范围。
3.1 页面设置与数据框调整
在这个阶段不要急着一上来就拉个矩形,太随意会导致最终导出图面要素和整饰要素错位。我的做法是先在“文件 → 页面和打印设置”里确定最终纸质尺寸,比如A4横向、A3纵向,然后勾选“以打印机纸张设置为准”。如果你最终要提交高清PNG,页面尺寸和分辨率要预先算好,避免后面放大缩小时比例尺失真。
数据框是布局里承载地图的大容器。双击数据框打开属性,在“大小和位置”里可以精确控制数据框在图面上的坐标和大小。一般规划图,数据框居中,左侧或下方留出图例、比例尺、指北针的位置。
Insert菜单可以添加标题、图例、比例尺、指北针、比例文本、经纬网等。加完并不能直接交付,还需要逐个配置。
3.2 图例、比例尺、指北针的正确打开方式
图例是很多人的痛点。右键图例 → Properties,可以控制图例的标题、字体、间距、边框这些样式。如果你的图例里出现了“其他所有值”这种自动项,可以在图层符号里把那一类隐藏,或者在图例属性里直接删掉。
更实用的一点:图例名称和图层名称不一致时,不要直接在图层属性里改名,而应右键图例 → Properties → Items,在左边选择图层,再在右边“图例项”里修改名称。这样改不会影响数据图层的实际名称,也方便出图时候做出“现状图”“规划图”这种更专业的图例名称。
比例尺选择上,ArcMap提供了多种比例尺样式,比如单线、双线、分区。我一般用“交替单位比例尺”,主单位是公里,次单位是英里或者米,这样放在图例下方比较常规。如果你对比例尺的显示精度有要求,可以先在图属性里设置“固定比例尺”,比如1:10000,这时比例尺会自动计算长度;但如果你的数据框是“自动缩放”,比例尺可能会出现一个很奇怪的数字,比如1:12345,这时候要么把数据框比例改为整数,要么就不要显示数字比例尺,只用图形分段的样式。
指北针也有很多样式。常规地形图一般用北针标识加磁偏角说明。ArcMap里在布局视图插入指北针后,双击可以调整角度和样式。但注意:指北针只有在数据框“旋转角度”为0时才指向正北。如果你为了排版旋转过数据框,指北针的方向就会对不上,所以数据框尽量别旋转。
注意:ArcGIS自带的指北针只起装饰作用,它不会自动根据数据框的旋转角度计算真实北方向。为了严谨,我一般把指北针旋转到跟数据框一样的角度,或者在图外标注“北方向示意图”。
3.3 经纬网与方里网:别让辅助线变成杂乱线
经纬网和方里网是地图上常用的参考网。在布局视图选中数据框,右键 → Properties → Grids,可以新建经纬网(Graticule)或方里网(Measured Grid)。经纬网适合小比例尺,方里网适合大比例尺地形图。
添加后要设置间隔。比如1:10000的图,方里网间隔一般取1000米,经纬度网格则取整数分/秒。这里有一个容易搞错的点:如果你数据框是投影坐标系,添加“经纬网”时ArcMap会自动把经纬度换算出来,但格网线和标注也会多一些,设置不当图面就会很乱。
我的建议是:辅助网格能少就少。比例尺在1:5000以上的详图,干脆只加一个“边框+标注四角坐标”,用“属性 → 边框和标注”里的“角点坐标”功能实现,这样图面干净又专业。如果一定要加经纬网,就把网格线设置为虚线、透明度调高,外边框保留实线,这样兼顾美观和定位。
3.4 多数据框出图:一张图里放主图和附图
很多人做项目时需要主图+位置示意图这种版式。做法是插入两个数据框:大的是主图,小的是位置图。位置图数据框可以加载省级行政区或城区范围,用红色边框或红色面高亮研究区位置。要注意两个数据框的坐标系设置,位置图用经纬度或省级投影即可,不需要跟主图完全一致。
主图和位置图的关联可以用“数据框视图”同步。右键数据框 → “同步视图”,这样当你在主图缩放时,位置图的范围跟着更新,并在位置上用一个矩形框显示主图范围,非常直观。
4. 导出设置与出图质量:一步到位,不返工
图面做完了,就差导出。很多人以为“导出就是点一下”,其实导出环节的设置直接决定了成果能不能用。尺寸、分辨率、格式选不对,后面会被反复打回来。
4.1 导出格式与分辨率怎么选
常用的三种导出格式:JPG、PDF、TIFF。
- JPG:适合快速预览,压缩率高,但放大或打印会糊,不适合正式成果。
- PDF:矢量优先,文字和线划清晰,是提交审查的首选。ArcMap导出PDF时,建议把选项里的“将制图要素转换为几何图形”打开,这样能保证图形和文字在PDF查看器里不失真。
- TIFF:适合做栅格影像类的成果图,且保留了地理参考信息。分辨率一般300dpi起步,如果做印刷级,600dpi更保险。
在“文件 → 导出地图”里,分辨率设置我一般按打印尺寸反推。比如A3幅面要300dpi,那么导出时“分辨率”设为300即可。如果你想要大图放到网页上,分辨率可以不高,但像素宽度要够,一般长边不低于4000像素。
实操心得:ArcMap导出PDF时,如果图面里有透明度效果或投影类的制图表达,PDF可能预览显示正常,打印却出问题。最好打开PDF用高倍缩放检查一下细节部分,尤其是符号密集区域和文字标注,确认没有变成色块或模糊成一团。
4.2 导出白边、背景黑块与字体丢失问题
导出后最常见的抱怨就是图片周围有一圈白边。这个通常是因为布局视图的页面尺寸大于地图内容范围。选中数据框,右键“缩放至图层”可能还不够,要手动调整数据框边界大小,或者在“文件 → 页面和打印设置”里把页面缩放到数据框的大小。如果你要的就是无边框整图,可以尝试把页面背景色设置为白色,再在导出时勾选“透明背景”。
另一个常见问题是导出的PNG或TIFF文件里背景变成黑色。一般是因为数据框背景被设置成黑色,或渲染器对透明背景的处理方式不同。双击数据框,在“属性 → 框架”里把背景设置为“无”,再导出试试。如果依然黑底,把导出选项里的“背景色”改为白色。
字体丢失也是出图常见问题。ArcMap导出PDF时如果使用的字体在系统里没有,就会替换成另一种字体,导致中文乱码或排版错位。建议出图前检查“制图标准”里用到的字体,地图要素一般用黑体、宋体、Arial、Times New Roman就够了,别使用特殊字体,也尽量别用“中等线”这类非标准字体。
5. 那些年出图踩过的坑:排查手册
踩坑不可怕,怕的是同一个坑反复踩。我把多年积累的高频问题整理成了一张速查表,按症状、原因、解决办法列出来,方便你对照排查。
| 症状 | 常见原因 | 解决办法 |
|---|---|---|
| 图例文字与图层名称不一致 | 图例项直接用了图层名 | 右键图例 → Properties → Items,修改图例项名称 |
| 字段小数点前不显示0 | 字段格式设置问题 | 设置数字格式或使用标注表达式添加前导0 |
| CAD转SHP后文字乱码 | 字体映射丢失 | 导入到地理数据库,检查字体映射,必要时转为注记再调整 |
| 转CAD后地类符号不显示 | CAD不支持复杂制图表达 | 将符号转成CAD颜色/线型映射,或炸开填充后导出 |
| 拓扑检查发现压盖线 | 数据数字化不规范 | 新建拓扑,使用Must Not Have Gaps/Must Not Overlap规则修改 |
| 图例太密放不下 | 分类过多 | 合并小类为“其他”,调整图例排列为按列展示 |
| 导出的JPG有白边 | 页面大于内容范围 | 调整页面及数据框大小,或使用“缩放至图层” |
| 坐标对不上,图面偏移 | 坐标系未统一 | 统一数据框和所有图层的投影坐标系 |
| ArcMap突然无响应 | 数据量过大/符号库损坏 | 清理临时文件,关闭不需要的图层,重启ArcMap |
| 裁剪影像后黑边 | NoData值显示成黑色 | 符号系统里将NoData设为透明,或在导出时勾选背景透明 |
表格里列了几个高频项,下面再展开讲讲几个最常见的。
5.1 CAD和SHP互转的老大难问题
做规划项目的人,几乎天天和CAD打交道。CAD转SHP,地类符号消失是常见现象。原因在于CAD里的填充图案和ArcMap里的面符号不是一回事,转成SHP后填充就变成了实体颜色或者干脆不显示。解决思路有两种:
一是把CAD的封闭多段线转成面要素,然后在ArcGIS里重新挂接地类编码,再做符号化。用“要素转面”工具可以直接实现,但注意转换前要执行“修复几何”和“必须闭合”检查,否则会有很多遗漏的碎面。
二是如果非要保留CAD的显示效果,可以用“导出为CAD”功能,反过来把ArcGIS符号系统里的颜色、线型映射成CAD图层。转CAD前最好把符号转成简单样式,比如不用制图表达、不用复杂填充,否则Map导出CAD时会出现图形错乱。这个坑我踩过好几次:明明ArcGIS里看着好好的绿地符号,转成CAD后变成了一个实心黑块,后来发现是CAD不支持渐变填充,改成纯色填充就好了。
5.2 提取流域边界、计算侵蚀淤积等专题出图
有做水土保持或水文的朋友会问:提取流域边界后怎么出图?道理其实一样,但要注意两点:一是流域边界线建议用“栅格河网矢量化”后“平滑线”处理,让边界更自然,出图更好看;二是做侵蚀淤积计算时,两条线之间的冲淤变化可以用“面积差分”工具算,算完再用“分级符号”把淤积区和侵蚀区用红色和蓝色显示,图例会非常直观。出图时叠加那个断面的CAD线,能输出一张标准的“断面变化图”。
这类专题图,我建议用ArcGIS Pro来做布局,因为Pro的多地图布局能力比ArcMap强不少,一个布局里可以挂多个地图框,还能自由添加表格、图表,打印也更稳。ArcGIS Pro里出图时,直接在“插入”里添加布局页,设置网格后,把各个地图框拖进去,整体流程跟ArcMap类似,但导出PDF的质量明显更好。
5.3 运行环境与安装话题:不是出图本身,但比出图更重要
经常有人问“我出图怎么这么卡”甚至“ArcGIS服务无法启动”这类问题,但根子可能在安装环境上。ArcMap对运行环境其实挺挑剔,尤其是10.2这种老版本,在Win10/Win11上很容易出现界面模糊、服务启动失败的情况。
10.8的界面虚,网上有很多解决办法,但根源都是高DPI缩放导致的兼容问题。右键ArcMap快捷方式 → 属性 → 兼容性 → 更改高DPI设置,勾选“替代高 DPI 缩放行为”,缩放执行选“应用程序”,基本能解决界面发虚的问题。10.2安装License Server点击启动没反应,通常是服务被防火墙拦截或者杀毒软件把服务组件给误杀了,先把ArcGIS相关进程加入白名单,再以管理员身份重启服务即可。
如果你还在纠结装10.2还是10.8,我的建议是:新项目直接上ArcGIS Pro,长期出图效率比ArcMap好很多;若项目方要求必须用ArcMap,就选10.8.x,稳定性和兼容性都比10.2好很多。
6. 提升出图效率的三个小习惯
除了按钮操作,还有一些习惯能帮你节省大量时间,这里一并分享出来。
6.1 保存好你的样式文件和图层文件
配好一套符号后,请右键图层 → “保存为图层文件”(.lyr)。下次新项目加载数据后,直接拖入这个lyr文件,符号、标注、比例范围全都继承过来。如果多个图层的样式都要复用,可以把它们整理成一个样式库(.style文件),放到ArcGIS默认样式目录里,图例符号就能随时调用。
这招特别适合那些一个月要出好几张同类型图的场景,比如每周一张巡查点位图、每月一张土地现状图,一套样式能撑一年。
6.2 用ArcGIS Pro的“自定义布局”替代ArcMap的杂乱拼凑
ArcGIS Pro的布局系统比ArcMap好用太多。除了常规的图例、比例尺、指北针,Pro还能动态添加图表、表格、甚至图片和超链接。最方便的是,Pro支持“复制布局”和“布局模板”,一套标准版式建好之后,所有项目直接套用。如果你还在用ArcMap折腾布局,强烈建议学一下Pro,迁移成本不高,但效率提升是肉眼可见的。
6.3 出图前用“地图审查”做一次自检
最后一遍自检不要省。我自己的检查顺序是:先看数据框有没有溢出、图例有没有缺项、比例尺和指北针是否显示正确、标题是否错别字、单位是否正确、日期是否最新,然后再看左上角“数据来源”信息和右下角“制图人”信息。检查完再导出PDF,最后在Adobe Acrobat里把每一页缩放检查一遍,确认字体和线型都没有丢失。
每一步都例行公事的话,出图就不靠运气了。
最后再分享一个小技巧:出图前把常用的“标准页眉”“图例标题”“单位落款”做成一个模板保存好,下次直接往布局里拖,省下的时间足够你多检查两遍图面细节。出图这事,流程理顺了就是一个熟练工种,真正拉开差距的是细节控制和处理异常数据的经验。希望这篇能帮你把基础流程理清楚,以后遇到什么疑难杂症,也大致知道往哪个方向排查。