ArcGIS全国地图制图全流程:投影坐标系与布局出图要点
简介这是一套ArcGIS格式的全国地图矢量数据包定位为中国地理空间框架基础资源面向GIS工程师、规划师及区域研究人员适用于地图制图、空间统计、环境分析与海洋权益研究等常见场景。压缩包共103个文件以25组shp要素及其shx、dbf属性表为核心另有sbn、sbx空间索引、prj投影定义和mxd工程文档便于在ArcGIS中直接打开与编辑资源包总大小38.53MB结构清晰。目前已有8066人学习下载。数据涵盖地级区划、河流湖泊、省界、九段线等核心图层其中地级区划可支撑人口密度与行政管理分析水系数据可用于水资源管理和洪灾风险评估九段线则为南海权益认知与研究提供基础底图。使用这套数据能快速搭建全国范围的底图框架减少前期收集与配准工作是区域规划、环境研究和GIS教学中的实用数据集。1. ArcGIS全国地图不是拖个底图就行先把三件事定下来ArcGIS全国地图这个需求看起来只是把省界数据拖进 ArcGIS换个符号排个版输出一张 JPG。实际上我见过太多成图在最后交付时被退回图层压满整页、北方区域大得离谱、输出后文字糊成一片。问题几乎都出在开工前的三步——数据来源、坐标系、出图底图。这篇笔记不讲高深分析就讲我用 ArcGIS 把一张全国地图做成符合规范、能放进报告里的完整流程每一步的参数为什么这么设以及哪些地方容易翻车。2. 投影坐标系全国地图的变形问题与两种圆锥投影2.1 为什么全国地图不适合直接用 Web 墨卡托ArcGIS 默认打开的数据坐标系经常是 WGS84 地理坐标系单位是度而屏幕上的地图却能正常显示这是因为 ArcGIS 做了动态投影。动态投影只是把经纬度坐标硬拉到一个平面上它方便浏览但不适合当作成图的最终坐标系。如果你直接从这个状态下导出 PDF得到的是一张经纬度矩形拉出来的图北方地区被拉宽比例关系也不对。Web 墨卡托是很多在线底图的坐标系全球导航地图都在用。它有一个特点越靠近高纬度面积被放得越大。全国地图覆盖中高纬度如果直接用 Web 墨卡托出图高纬度区域会明显比真实面积大而南方区域相对缩小。做统计专题图时这种面积变形会直接误导读者。比如各省面积或经济总量的视觉比较一个北方的省可能因为投影变形显得比实际大得多。真正做全国范围制图时常见的做法是选择圆锥投影。圆锥投影把地球表面投影到一个圆锥面上适合中纬度沿东西方向伸展的地区。常用的是两条标准纬线在标准纬线上没有变形两条线之间变形为负之外为正。所以参数选得好不好直接决定地图边缘是否变形严重。2.2 Albers 等积圆锥投影的参数设定Albers 等积圆锥投影的核心特征是保持面积正确。只要投影参数不夸张图上任意区域的面积比例都与实地接近。做人口密度、经济总量、农业产量这类以面积对比为主题的全国地图我一般首选 Albers。全国范围的经验参数是中央经线取 105°E两条标准纬线取 25°N 和 47°N基准面用 WGS84 或 CGCS2000输出单位设为米。标准纬线的意义是控制变形的分布25°N 和 47°N 大致对应南部和北部的主要区域使得南北边缘的变形比较均衡。中央经线取 105°E是让投影后的中央轴线大致穿过制图区域中部。在 ArcGIS Pro 里设置时不建议直接用软件自带的通用 Albers 等积圆锥坐标系因为不同版本内置参数可能不是针对全国范围的。我更习惯手动新建一个自定义坐标系地图属性 → 坐标系 → 新建投影坐标系 → 投影类型选 Albers把上述参数填进对应输入框。假东和假北通常填 0。保存后给它一个可识别的名称比如全国Albers投影后续所有图层统一用它。设置完后可以用一段简单脚本确认地图坐标系确实生效import arcpy aprx arcpy.mp.ArcGISProject(rC:\work\quanguo.aprx) m aprx.listMaps(主图)[0] sr m.spatialReference print(sr.name) print(单位:, sr.linearUnitName)这段代码读取工程里名为主图的地图打印当前坐标系名称和线性单位。如果输出单位不是米说明坐标系设置没生效需要回地图属性里重新检查。注意工程路径要改成你自己的绝对路径地图名也要与工程里实际名称一致。2.3 Lambert 等角圆锥投影与选型Lambert 等角圆锥投影的特点是保持角度正确任何一点上的方向关系不会发生扭曲因此它更适合表达方向、航线、气流走向这一类主题。代价是面积变形比 Albers 明显尤其在偏离标准纬线的区域。Lambert 的参数设置逻辑与 Albers 类似中央经线同样可取 105°E标准纬线常取 30°N 和 60°N具体可以根据制图区域调整。如果只是做一张常规的省级行政区分布图不涉及方向分析我更推荐 Albers。如果地图里重点内容是交通干线、航线或者等值线Lambert 会更合适。用表格对比一下更好理解投影类型保持关系面积变形适合场景Albers 等积圆锥面积小人口、经济、资源等专题图Lambert 等角圆锥角度中等航线、风向、等值线分析Web 墨卡托角度很大在线地图浏览不适合小比例尺印刷选型时不要只看名字还要看单位。很多内置圆锥投影坐标系用的是米但也有用度表示的后者在地图上做比例尺和测量时容易出错。我一般会在设置完成后量一下图上两个已知点之间的距离与真实距离对照偏差太大就说明投影参数不对。2.4 在 ArcGIS 中统一数据坐标系操作流与检查方法做全国地图时数据来源往往不止一个矢量边界、驻地坐标、河流线来源不同坐标系也可能不同。图层之间能叠上不等于坐标系已经统一。动态投影会骗过你的眼睛所以每次拿到数据第一步是查看它的真实坐标系。我的操作流程是这样的先加载所有原始数据到 ArcGIS Pro逐个右键图层查看属性 → 源记录坐标系统和单位。如果看到 Unknown说明这个数据的坐标信息丢失了必须先处理。处理时用定义投影工具而不是投影工具。定义投影只是告诉 ArcGIS 这个数据原本处于哪个坐标系不会改变坐标值投影工具才会真正从平面坐标换算成另一个坐标系。如果数据的坐标系是 WGS84而你要统一到刚才的全国 Albers就右键图层 → 数据 → 投影选择目标坐标系为自定义的全国 Albers。这里要注意一个常见误操作有人直接在图层属性里改坐标系这只会改变地图的显示方式数据本身还是原来的值。从长远交付来看最好把原始数据保留一份投影结果另存一份避免覆盖导致后面返工。投影完成后再回到地图属性里设置地图坐标系为同样的 Albers。这样所有图层、比例尺、格网、图例都基于同一个空间参考导出的 PDF 里不会出现某个数据框单独使用另一种坐标系的混乱情况。3. 数据组织与 ArcGIS 布局把全国地图变成可交付的板材3.1 数据分层标准底图、业务数据与辅助数据分离制图之前先建一个干净的文件地理数据库。常见的做法是建一个 .gdb里面分几个要素数据集或要素类把数据按用途拆开标准底图放一份业务数据放一份注记和辅助要素放一份。不要把所有图层都堆在默认的数据集里不然项目跑几个月后你根本分不清哪个图层是最终使用的。以一张全国地图为例至少要有以下图层组数据层要素类型说明标准底图面 / 线带审图号的公开底图包含行政界线、海岸线、海岛等驻地与地名点省级和地级驻地、主要城市地名业务数据点 / 线 / 面专题分析结果或业务覆盖范围辅助数据线 / 面河流、湖泊、自然保护区等参考背景标准底图不建议自己手工编辑。它本身是经过整理确认的数据任何对边界的删改都会影响地图的法律效力。业务数据要独立存放不要与底图合并。这样交付时只需要打包这个 gdb、工程文件和字体就可以在另一台装有 ArcGIS 的机器上打开。3.2 布局参数图幅、比例尺、数据框与固定范围全国地图的布局我通常用 A3 横向或 A4 横向取决于最终用途。打印报告用 A4 足够挂图或汇报展板用 A3。布局尺寸不决定地图比例尺地图比例尺由数据框范围决定。新建布局后插入一个数据框把已经统一到 Albers 的图层拖进去。接着设置数据框属性。重点有两个坐标系必须与主图一致比例尺必须固定。固定比例尺才能保证地图缩放时不会把指北针或图例挤出去。全国范围的比例尺A4 宽度下常见 1:1200 万到 1:2000 万。设置方式是在数据框属性里选择固定比例输入比例尺数值再调整中心位置。不要用拉伸到数据框模式那会把地图比例尺变成随意的数值后期加比例尺条也是错的。经纬网也是全国地图常见要素。在数据框属性中添加格网经线间隔和纬线间隔建议取 10 度文字放在格网外部字体用 8 到 10 磅。格网线和文字在印刷时不需要太粗灰色即可避免抢业务图层的内容。3.3 全国附图与数据框的联动设置很多时候主图只显示全国范围的一部分比如只显示内陆主体区域这时候必须在布局右下角放一个全国尺度的附图用来表达整体位置以及海岛区域的相对关系。附图不是简单复制一个图层它需要与主图保持同源、同投影、不同比例尺。操作上我习惯这样插入第二个数据框命名为附图。右键设置坐标系与主图完全一致。然后把标准底图拖进去在附图数据框属性中同样设置固定比例。附图的固定比例通常设置为主图比例尺的 4 到 8 倍小。比如主图是 1:1200 万附图就设 1:5000 万左右。接下来移动附图数据框内地图范围让它完整显示全部需要表达的要素。这里有个细节附图数据框的范围会跟随鼠标移动如果比例尺不固定很容易拖出一个歪歪扭扭的范围。所以每次调整只移动视图中心不改比例尺。调整完毕后可以给附图加一个细边框并在下方写附图二字字体要比主图标题小。3.4 自动化导出脚本arcpy.mp布局整理好后最后一公里是导出。如果项目里有多套地图模板比如主图、附图、黑白稿、彩色稿手动导出容易漏参数。我一般用 arcpy.mp 写个脚本统一遍历所有布局并导出 PDFimport arcpy aprx arcpy.mp.ArcGISProject(rC:\work\quanguo.aprx) out_dir rC:\out for lyt in aprx.listLayouts(): pdf_path out_dir r\\ lyt.name .pdf lyt.exportToPDF( pdf_path, resolution300, image_qualityNORMAL, compress_vectorsTrue ) print(导出完成:, lyt.name)这段代码遍历工程里所有布局以 300 DPI 导出 PDF。resolution300是印刷输出的下限如果地图里有密集的注记或细线我会用 400 或 600。compress_vectorsTrue可以压缩矢量内容PDF 体积明显减小对交付很有利。脚本必须在有 ArcGIS Pro 环境的 Python 窗口或 ArcGIS 自带的 Python 环境中运行普通系统 Python 装不了 arcpy。4. 全国地图制图排查四个最容易翻车的坑4.1 图层显示错位坐标系定义与投影不一致现象标准底图加载正常业务数据点却整体跑到海上或者与底图边界错开几公里到几十公里。原因大多是图层的源坐标系是 Unknown或者被误定义成了 WGS84。ArcGIS 在动态投影显示时会按错误坐标做一次转换于是出现整体偏移。解决方式是先检查每个图层的源坐标系再决定处理工具。如果坐标系丢失用定义投影补上原坐标系如果坐标系错误先定义成正确的坐标系再用投影工具转回全国 Albers。代码里对应的是import arcpy fc rC:\data\point_wrong.shp arcpy.management.DefineProjection(fc, WGS 1984)这里把坐标信息缺失的要素类先定义为 WGS84前提是你确认原始坐标确实是 WGS84 经纬度。定义错后面的投影结果全错。所以拿到数据时最好先查看数据来源说明不要靠猜。4.2 导出图片文字发虚DPI 和参考比例尺现象布局里看着很清晰导出 JPG 或 PDF 放大后注记文字边缘虚笔画发糊。原因有三个导出分辨率太低布局没有设置参考比例尺字体不是常见中文字体打印店机器没有对应字库。解决方法是先给布局设置参考比例尺。在布局属性里指定参考比例尺为 1:1200 万符号和文字都按这个比例尺渲染。导出时分辨率不要低于 300如果字体密集直接上 600。另存 PDF 时打开嵌入字体选项这样换一台电脑也能保持文字正常。不要为了文件体积牺牲这些参数返工成本远比文件大小更贵。4.3 海岛区域与附图范围不对齐现象主图里没有出现海岛或者附图里海岛被切掉一半位置偏左偏右。原因多是附图数据框与主图数据框的坐标系不一致或者附图的固定比例尺没有开启范围靠鼠标拖动导致整体偏移。解决方法是先把附图数据框的坐标系设为与主图完全相同再开启固定比例。强制让附图使用同一套投影参数避免动态投影带来范围漂移。接着手动调整附图中心点直到完整显示所有需要表达的要素。与标准底图配套的海岛要素不要在主图中单独裁剪掉直接用标准底图的全要素数据让附图自然承接。4.4 批量出图时图例跑飞动态文本与字段索引现象用地图系列或脚本批量出图时图例标题、指北针旁的文字还是上一张图的值甚至字段名称对不上。原因多是布局里用了动态文本但表达式里字段索引写错或者图例绑定到了地图系列页码而不是当前范围。解决方法是检查动态文本表达式。比如用地图系列时图例标题应该绑定到系列名称字段而不是手工输入文本。图例属性里打开仅显示当前范围内的要素否则图例会把整个数据集的所有类别都列出来。批量出图后抽几页放大检查不要只看第一张。5. 让全国地图能交付符号、注记与标准底图信息5.1 境界线符号与制图综合底图数据里最敏感的就是境界线。标准底图自带的境界线符号已经按规范做好直接用不要二次修改。如果业务图层叠加了太多线要素导致境界线被遮挡可以通过调整图层的透明度来缓解而不是简单删除底层线条。有些数据源为了减小文件体积对边界做过简化结果放大后发现海岸线变得很粗糙。这时不要用 Generalize 工具随意抽稀因为通用简化工具会破坏重要拐点和岛屿。正确做法是直接换一份比例尺更高、精度更好的标准底图数据源。全国地图的比例尺本身就小过细的数据反而会让成图线条拥挤需要按制图综合原则取舍但这个工作应该在标准底图制作阶段完成而不是在 ArcGIS 里临时做。5.2 注记和字体排印参数注记是制图质量最容易露馅的地方。ArcGIS 默认的自动标注经常互相遮挡我更建议把标注转成注记再手动调整冲突位置。操作路径是右键图层 → 将标注转换为注记 → 选择存储在数据库或地图中。转成注记后每个文字都可以手动拖动字体、颜色、朝向单独设置。标题类文字用黑体地名注记用宋体数据标注用黑体或 Arial。地名一般控制在 7 到 10 磅省级驻地名称可以加粗或加方括号普通地级市用常规体。注记颜色不要用纯黑深灰色在印刷中更柔和。位置偏移统一设置为右上方不与点符号重叠。如果注记仍然压盖可以通过标注要素权重来调整。在图层属性 → 标注 → 冲突解决里把重要境界线或驻地的权重设高普通地名权重设低ArcGIS 会自动把低权重文字让开。这个方法比手动一个个挪省时间。5.3 审图号、比例尺、图例的放置规范交付级全国地图底线是数据来源可追溯。如果使用标准地图服务下载的带审图号底图出图后必须保留原始审图号信息。自行加工后的地图如果需要公开发布应在单位内部走完审核流程不要直接沿用原始底图的审图号。这个环节没有捷径不要因为赶时间而省略。比例尺放在图幅下方或右侧分段比例尺比直线比例尺更好读。图例框放在地图空白区域不要压住境界线和主要注记。图例内容只保留业务图层标准底图要素不需要全部上图。图例标题写清楚这一张图表达的主题避免一堆图层全部列出来。这些排版细节不是装饰它们决定了读者能否准确读图也决定了地图能否通过交付审查。我在正式出图前一定会把布局缩放到 100% 浏览一遍打印一张 A4 黑白稿检查对比度。6. 输出前用脚本跑一遍完整性检查交付前我会用一个简单的脚本检查工程里的数据源是否断开、图层是否丢失坐标系import arcpy aprx arcpy.mp.ArcGISProject(rC:\work\quanguo.aprx) for m in aprx.listMaps(): for lyr in m.listLayers(): if lyr.isBroken: print(数据源断开:, lyr.name) elif lyr.supports(DATASOURCE): print(lyr.name, -, lyr.dataSource)这个脚本会列出所有图层的数据路径。出现数据源断开时说明图层指向的 gdb 或 shapefile 已经被移动或改名直接打开工程会显示空图。这种情况在交接给同事时经常发生脚本能提前发现问题。我的最后一个习惯是导出 PDF 后再放大到 200% 检查一遍关键区域确认注记没有互相压盖海岛周边没有异常空白。曾经有一次因为 PDF 转 JPG 时字体没有嵌入打印店打开后文字全部错位重印耽误了很久。从那以后我每次导出都会额外检查字体嵌入情况并把这三个动作固定为流程检查数据源、检查坐标系、检查文字。希望帮到你。本文还有配套的精品资源点击获取