news 2026/9/3 18:48:59

用ArcGIS制作1:5万接图表:分幅网格、图幅号与批量应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用ArcGIS制作1:5万接图表:分幅网格、图幅号与批量应用

简介:全国1:5万接图表是面向GIS从业者、规划人员及地理信息学习者的常用基础数据,配合ArcGIS可完成地图显示、要素编辑、空间查询与专题制图等任务。资源压缩包共7个文件,包含SHP矢量主文件、DBF属性表、PRJ投影信息以及SBN/SBX空间索引等,能够直接在ArcMap或ArcGIS Pro中加载,适用于区域研究、土地利用分析、交通网络叠置等场景。压缩包整体仅1.14MB,轻量高效,便于快速获取与日常调用。目前已有782人学习,是入门和实战中节省造图时间的实用素材。基于这份数据,使用者可以进一步结合ArcToolbox进行缓冲区分析、叠加分析,或利用ArcGIS Pro开展三维可视化与Web发布,有效支撑从基础查询到复杂空间建模的完整流程。 做 GIS 项目最怕什么?不是数据量大,而是手里一堆标准分幅图,却说不清每一幅到底在哪、边界怎么接。前几天帮朋友整理土地调查资料,对方甩过来一批扫描版的 1:5 万地形图,想拼成一张全国接图表,我直接在 ArcGIS 里花了半小时就把网格、图幅号、索引关系全理清了。全国 1:5 万接图表,本质上就是一张把标准分幅图幅位置画清楚的索引图,有了它,找图、裁剪、规划路线、成果归档都方便得多。这篇就把我用 ArcGIS 做接图表的完整思路、操作步骤和踩过的坑写出来,适合刚从学校出来还没碰过分幅的 GIS 新手,也适合被图幅编号搞到头大的项目执行人员。

1. 一张接图纸背后的分幅逻辑:为什么1:5万按这个规矩切

1.1 接图表到底解决了什么问题

想象一下,你手里有省里下发的几十个 1:5 万标准分幅影像文件,文件名是 J50E001024、J50E002024 这种编号。如果你不懂分幅规则,根本不知道这些图覆盖了哪个县、哪些乡镇,更别提按行政区批量裁剪或统计覆盖情况了。

接图表解决的就是这个空间索引问题。它把整个区域的图幅按标准分幅线切好,每个格网都带编号、经纬度范围、图名,一眼就能看出数据覆盖了哪里、缺口在哪。尤其在做外业踏勘时,纸质接图表配合 GPS 定位,能快速锁定你要找的那一幅;在数据库建设时,接图表配合属性查询,能自动找出缺失图幅、重复图幅,避免数据冗余。

我刚入行那年,为了找某县的 1:5 万影像,把十几个文件挨个加载进 ArcMap 看范围,折腾了一下午。后来用接图表管理成果,按图幅号一点一个准,效率完全不是一个级别。

1.2 新版图号与旧版图号的区别

要做接图表,首先要搞清楚 1:5 万标准分幅的数学基础。国家标准里,1:5 万图幅的经差是 15 分(0.25 度),纬差是 10 分(约 0.1666667 度)。在每个 1:100 万图幅内,横向分 24 格,纵向也分 24 格,所以一个 1:100 万图幅包含 576 个 1:5 万图幅。

新版图号(GB/T 13989-2012)由四段组成:1:100 万行号字母加列号数字、比例尺代码 E、图幅列号 3 位、图幅行号 3 位。比如 J50E001024,J50 是 1:100 万图幅编号,E 代表 1:5 万,001 是列号(从西到东递增),024 是行号(从北到南递增)。

旧版图号就乱多了,像 J-50-24-B,中间是 1:10 万图幅序号,最后是 1:5 万在 1:10 万里的四角位代码。很多老数据还用旧图号,如果直接按新规则拼接,必然出错。所以开工前先确认资料来源,统一图号标准,这一步能省掉后面很多坑。

2. ArcGIS里生成1:5万图廓网格的完整操作

2.1 选定范围与坐标基准:CGCS2000还是WGS84

坐标系选择决定接图表能不能和你现有数据精确套合。国内标准图幅在法规层面已经全面使用 CGCS2000,但很多第三方数据和在线底图还是 WGS84。两者差异在地图尺度上只有几十厘米到一两米,做接图表这种索引图基本看不出来,但做高精度分幅成果时不能混用,否则图廓与影像边界会有一道肉眼可见的错缝。

我的习惯是:如果项目数据是 CGCS2000,接图表就用 GCS_CGCS2000 生成;如果是外业手机采集或 Google Earth 参考,就用 GCS_WGS_1984。生成渔网时直接在经纬度坐标系下建,不要先投影到平面再建,因为标准分幅线是经纬线,在投影坐标系里画出来会变成曲线,和真实图廓对不上。

范围方面,全国陆地 1:5 万接图表的经纬范围大致从东经 73 度到 135 度、北纬 18 度到 54 度。如果只做局部省份,可以用目标区域的最小外接矩形,稍微外扩一个图幅的余量,避免边缘图幅被切半。

2.2 用Create Fishnet生成15分乘10分的经纬网

ArcGIS 里生成规则网格最方便的工具是 Create Fishnet(数据管理工具箱)。打开工具后,关键参数这样填:

  • 输出要素类:放到文件地理数据库里,比如C:/gis/figchart.gdb/fig50k
  • 模板范围:手动输入最小经度 73,最小纬度 18,最大经度 135,最大纬度 54
  • 像元宽度:0.25(也就是 15 分)
  • 像元高度:0.1666666667(也就是 10 分)
  • 几何类型:POLYGON

行数和列数不需要手工填,ArcGIS 会根据范围自动计算。这里有个容易被忽略的细节:Create Fishnet 生成的要素类默认没有坐标系,所以生成后要立刻用 Define Projection 给它定义成 GCS_CGCS2000 或 GCS_WGS_1984,否则后续加载到数据框里,因为坐标系未知,图层可能显示不出来或跑到错误位置。

另外,如果只需要陆地范围内的图幅,可以先用全国省级行政区面数据对网格做裁剪。用 Clip 工具,把落入国界内的图幅保留下来,再针对边界上被切成畸形的图幅做识别清理,留下真正有用的完整图幅。

2.3 把渔网整理成图廓要素

渔网生成后,它还只是一堆普通面要素,需要整理出图廓线和角点,方便后续标注和空间分析。我通常做三步:

第一步,用 Polygon To Line 把面转成线,得到每个图幅的四条边,重点用于生成图廓线。注意记得保留面的 FID 字段,方便后续挂接图幅号。

第二步,用 Feature Vertices To Points 把面的角点提取出来,并勾选 ALL 选项,能拿到四个角点。这些角点坐标就是每个图幅的经纬度范围端点,可以配合 Add XY Coordinates 工具把经纬度写进属性表。

第三步,给面要素添加几个常规字段,比如 MapNo(图幅号)、MapName(图名)、LonMin、LatMin、LonMax、LatMax。这些字段会在下一步批量计算图幅号时用到。

整理完之后的图层,符号系统按分类设成 Categorized,用 MapNo 做唯一值分类,每个图幅一个颜色,视觉效果和真正的接图表就很接近了。

3. 图幅号、图名与相邻图幅关系的自动批量写入

3.1 图幅号编码规则拆解

批量生成图幅号,核心是理解 1:5 万图幅号每一位是怎么算出来的。

先说 1:100 万图幅编号。行号从赤道开始往北每 4 度一行,依次是 A、B、C……一直到 V;列号从西经 180 度起算,每 6 度一列,从 1 到 60。比如东经 116 度、北纬 39 度,算出来 1:100 万行号是 J(39/4 取整 9,对应 J),列号是 50((116+180)/6 取整 49,再加 1),合起来就是 J50。

再说 1:5 万图幅在 1:100 万图幅内的行列号。列号从 1:100 万图幅西边经线起,往东每 15 分一列,001 到 024;行号从 1:100 万图幅北边纬线起,往南每 10 分一行,001 到 024。最后拼上比例尺代码 E,就得到 J50E001024。

这个规则用熟了以后,看到任何一个图幅号,心里就能大概估计出它在中国的大致经纬度位置,反向也能根据经纬度推出图幅号。对做测绘和 GIS 的人来说,这是基本功。

3.2 字段计算器批量生成图幅号的Python写法

拿到网格面后,如果逐个手填图幅号,几千个图幅能填到崩溃。正确的做法是用字段计算器批量算。前提是先有每个网格的中心点坐标,可以用 Add Geometry Attributes 工具直接添加 POINT_X 和 POINT_Y 字段,代表网格中心点的经纬度。

然后在字段计算器里选择 Python 解析程序,代码块写:

import math def fig_no(lon, lat): # 1:100万图幅列号和行号 col_m = int((lon + 180) / 6) + 1 row_m = int(lat / 4) row_char = chr(ord('A') + row_m) # 1:100万图幅的西南角经纬度 lon_m_min = (col_m - 1) * 6 - 180 lat_m_max = (row_m + 1) * 4 # 1:5万图幅在1:100万图幅内的列号、行号 # 经差15分=0.25度,纬差10分=0.1666667度 eps = 1e-7 col_s = int((lon - lon_m_min) / 0.25 + eps) + 1 row_s = int((lat_m_max - lat) / (10.0 / 60.0) + eps) + 1 # 越界保护 if col_s < 1 or col_s > 24 or row_s < 1 or row_s > 24: return "INVALID" return "{}{}E{:03d}{:03d}".format(row_char, col_m, col_s, row_s)

表达式框里写:

fig_no( !POINT_X!, !POINT_Y! )

这里有几个关键点。第一,1:5 万图幅北边界用lat_m_max,因为行号从北往南递增,这是最容易搞反的地方。第二,eps这个微小偏移量很关键,浮点数精度导致网格中心点落在边界上时,可能被分到错误的一行或一列,加一个 1e-7 级别的偏移能规避多数边界误判。第三,如果算出来出现 INVALID,说明网格起点或范围与标准分幅线没对齐,回去检查渔网起点。

字段计算完成后,建议抽取几个已知图幅做校验。比如某个网格的中心点经纬度位于北京附近,算出编号应该是 J50E 开头,而且经纬度范围与标准分幅线吻合,才说明算对了。

3.3 图名维护与相邻图幅自动关联

图幅号能自动算,图名就没那么简单了。国家标准图名是按图幅内重要居民地或地理名称命名的,比如“北京市”“泰山”这种,必须人工维护。在建接图表时,我通常先建一个 Excel 表,包含图幅号、图名两列,再用 ArcGIS 的 Join Field 工具按 MapNo 字段连接到接图表属性表,这样既保留自动编号,又补上图名信息。

相邻图幅引用更是外业刚需。一张图在哪,它的东、西、南、北、东北、东南、西北、西南各接哪张图,在纸质图廓外标注里都有。要在 ArcGIS 里自动生成,可以用 Spatial Join 或者 Select By Location 逐图幅查找,遍历每个图幅周围 100 米以内的邻近图幅,然后把它们的图幅号拼接成一个字符串,存成 Neighbor 字段。虽然计算量稍大,但只跑一次,后续查图方便很多。

4. 接图表的三种落地用法:裁剪影像、打印挂图、叠加底图

4.1 用接图表批量裁剪影像

接图表最实用的场景是按图幅范围裁影像。过去裁图是手动输入每个图幅的四角坐标,再一个个执行裁剪工具,几十个图幅能折腾半天。有了接图表,直接按图幅号选择目标网格,然后批量裁剪就行。

操作上分两种路径。如果只是裁几个图幅,用 Select By Attributes 选中对应图幅,再执行 Clip 工具,输入栅格选影像,裁剪范围选“所选要素”,环境设置里把捕捉栅格打开,避免输出范围差半格。如果图幅数量多,比如一个县二十多个图幅,建议把选择集导出为单独的矢量图层,再用 ArcGIS Pro 里的 Batch Clip 工具或者 ArcPy 脚本循环裁剪。

顺手提一个高频报错“按掩膜提取 error010568”。这个错误通常有两个原因:一是掩膜要素与影像坐标系不一致,导致交集为空;二是掩膜范围超过了影像范围,或者掩膜要素本身为空。解决办法是先在属性表里确认掩膜要素有选中、坐标系和影像一致,然后用“复制要素并导出”生成一份干净掩膜,避开原数据的拓扑问题。

4.2 打印版接图表的出图设置

给领导和外业人员用的接图表,通常要打印成纸质或 PDF。ArcMap 和 ArcGIS Pro 的 Layout 模式都支持。出图前要把符号系统设成便于阅读的状态:每个图幅用浅色边框,图幅号标注加粗、黑色、字号合适,必要时用 Maplex 标注引擎避免图幅号互相压盖;图名、比例尺、指北针、图例放四周。

色彩上不要用太花哨的配色。我一般用单一浅底色加黑色边框,选中的重点区域用高亮色单独标注,一眼就能抓重点。索引图和普通专题图不同,信息密度高,颜色越克制越清楚。

导出 PDF 时,如果接图表范围覆盖全国,要注意数据框的参考比例尺,避免输出文字过大或过小。一般在 1:5 万接图表全图的打印比例尺设置为 1:250 万到 1:400 万比较合适,具体按纸张尺寸调整。

4.3 叠加在线底图做“活”的挂图

静态接图表只能看图幅位置,叠加在线影像和地形底图之后,接图表就能和实际地表对上了,能直观看出每个图幅覆盖的是山地、耕地还是城市建成区。

在 ArcGIS Pro 里,添加底图可以直接用“添加底图”菜单,选择 OpenStreetMap 或 ArcGIS Online 影像。如果要加国内服务,可以添加天地图 WMTS 服务。天地图的服务地址在官网申请 token 后填进“添加数据”的 URL 对话框,选好坐标系,就能作为底图加载。

叠加后把接图表设置成“透明填充、深色边框、编号在上”的模式,缩放时既能看清地形,又能快速判断某幅数据在哪个山谷或哪条河流域。这样一张会“动”的接图表,比纸质图实用太多,在项目汇报时也更有说服力。如果数据切到 ArcGIS Pro 的三维场景里,接图表还能贴到底面高程上,二三维切换看区域覆盖,外业踏勘前的路线规划也更直观。

5. 制作与使用接图表时最容易栽的五个坑

5.1 坐标系混用,图廓悄悄偏移

接图表生成时用 GCS_WGS_1984,但影像数据是 CGCS2000,两者只差一个椭球参数,在图面上很难直接发现。实际叠加后,图廓线和影像边界之间会有一条几条像素宽的错缝,在 1:5 万这种精度的数据上,错缝可能到几十米甚至上百米,直接导致后续裁剪的影像范围偏出去。

排查方法是把接图表和影像都加载进数据框,查看“属性-源-空间参考”,确认坐标系一致。如果不一致,用 Project 工具把接图表转换到影像坐标系。需要注意的是,投影转换不要用 ArcMap 里仅“动态投影”的方式骗自己,动态投影只是显示层面套合,几何数据并没有真正转换,做空间分析时还是会出错。

5.2 范围没对齐分幅线,边缘少半幅

网格起点设置错误是接图表尺寸不对的元凶。1:5 万图幅的经度边界必须是 0.25 度的整数倍,纬度边界必须是 10 分的整数倍。如果你从 73.1 度、18.2 度这种非标准值开始生成,边缘就会出现半幅甚至残幅,最后的图幅号也会因为越界算出 INVALID。

做的时候先把范围最小经纬度向下取整到标准分幅线,最大经纬度向上取整到标准分幅线,然后再创建渔网。比如全国图用 73、18、135、54 四个整数就行。如果是局部区域,也要先检查起始值能不能被 0.25 或 0.1666667 整除,心里没底就在 Excel 里先算一遍。

5.3 行号顺序搞反,属性全错位

字段计算时最容易犯的错就是行号方向。1:5 万图幅行号从北到南递增,计算式子是(lat_m_max - lat) / (10/60) + 1。有人想当然用(lat - lat_m_min) / (10/60) + 1,结果整个接图表的行号上下颠倒,南边的图幅全变成北边的编号。

发现这种错位,不用急着删数据重来,看一下 INVALID 比例和已算出的图幅号范围就能判断。一般正确结果里,接图表左上角图幅号行号小,右下角行号大。如果算出来是左上角行号大,那就是方向反了,把公式里的分子反过来重算一次即可。

5.4 数万个要素卡顿、无响应、乱码的处理思路

全国级 1:5 万接图表网格面大约几万个,加上标注、邻接字段,ArcMap 很容易出现保存很久无响应、复制粘贴失败、打开属性表卡顿等现象。这些多数是要素类太大或索引缺失导致。

建议所有中间产物直接写到文件地理数据库里,不要用 shapefile,因为 shapefile 没有空间索引,几万个面查询起来很吃力。操作大字段时,可以先建一个只有关键字段的临时图层,算完再连接回原表;不要直接在完整大表上反复执行字段计算和连接。另外,属性表中文乱码问题,多见于 shapefile 的 dBase 编码不统一,写字段名和属性值时尽量用英文或拼音,展示用中文字段别名,能避开大部分乱码。

如果 ArcGIS 安装或汉化过程本身报过错误,比如安装时出现 assembly component 0x80070005、错误 1935,那大概率是系统组件环境问题,和接图表制作无关,建议先把环境修复好再处理数据,否则容易遇到打开工具弹窗、无响应等连锁问题。

5.5 新旧图号混用,查找失败

项目里如果既有新版图号(J50E001024)的文件,又有旧版图号(J-50-24-B)的资料,数据库检索时很容易查不到对应图幅。我一般会在接图表里建一个 OldMapNo 字段,把每个图幅对应的旧版图号也维护进去。整理新老图号对应关系没有捷径,只能对照标准分幅表逐幅录入,或者用已公开的图号转换表做一次连接。

做好对照表后,不管是按旧图号查询还是按新图号裁剪,都能一张图定位。这个准备工作做完,后续接资料、对台账、做移交,效率会明显提升。

我在实际做接图表的过程中,最深的体会是:别把这件事当“画格子”的小事,图幅号对不对、范围严不严、坐标系统不统一,直接影响后面每一次裁剪和查询。最后再分享一个实用技巧:做完的接图表除了保存在 ArcGIS 工程里,再导出一份 KML 文件,放到手机地图软件里,外业跑点时打开定位,想找哪一幅直接点图幅就能看到编号和范围,比在电脑前翻图层方便得多。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 18:45:09

前端三件套零基础入门:HTML5+CSS3+JavaScript学习路线与实战指南

很多初学者在入门 web 前端时&#xff0c;最常问的问题就是&#xff1a;HTML5、CSS3、JavaScript 到底先学哪个&#xff1f;学完能做什么&#xff1f;为什么别人的页面很好看&#xff0c;自己写的却很粗糙&#xff1f;这些困惑我都经历过。本文围绕前端三件套的零基础入门路径&…

作者头像 李华
网站建设 2026/9/3 18:42:29

JDK 1.8.0_201官方版下载安装与环境配置全指南

简介&#xff1a;JDK 1.8.0_201官方正式版是Java语言的软件开发工具包&#xff0c;在整个Java开发生态中处于基础与核心地位。这份面向Windows 64位系统的免安装绿色版本&#xff0c;让学习者、开发者和运维人员无需执行传统安装向导&#xff0c;解压即能使用编译、运行与调试等…

作者头像 李华
网站建设 2026/9/3 18:42:03

CS1621段码LCD驱动详解:内存映像、串行协议与排坑指南

简介&#xff1a;面向嵌入式系统与驱动开发者的CS1621 LCD控制器驱动程序源码包&#xff0c;针对这款支持多种分辨率与显示模式的多功能LCD驱动器&#xff0c;提供系统与点矩阵、字符或图形显示面板之间的高效通信方案。驱动内部覆盖初始化、配置、数据传输、错误处理等核心环节…

作者头像 李华
网站建设 2026/9/3 18:38:23

EXE打包全攻略:从PyInstaller到GraalVM,一文搞定Windows可执行文件

说实话&#xff0c;第一次在一周内看到这么多“exe”相关的搜索词集中在开发社区里出现&#xff0c;我有点意外。python转exe、graalvm打包成exe、pyinstaller打包flask_socketio报错、playwright携带浏览器打包exe、cmake编译vs没有exe、统信uos提示exe正在进程无法安装……这…

作者头像 李华
网站建设 2026/9/3 18:38:07

WinForm上位机波形图控件选型:ScottPlot实战指南

简介&#xff1a;面向C# WinForms开发者的ScottPlot波形图表控件资源包&#xff0c;适合需要在桌面应用中绘制实时波形、折线图或散点图的初中级程序员。资源以完整示例工程AudioPeak为载体&#xff0c;展示ScottPlot与NAudio组合实现音频波形可视化的思路&#xff0c;覆盖控件…

作者头像 李华
网站建设 2026/9/3 18:36:31

TCA6416A I2C GPIO扩展芯片驱动开发与硬件设计实战解析

简介&#xff1a;TCA6416A是TI公司推出的16位I2C GPIO扩展芯片&#xff0c;该驱动源码包面向嵌入式开发者&#xff0c;解决通过I2C总线控制TCA6416A输入输出、配置极性及初始化寄存器等常见需求。整个压缩包仅2个文件&#xff0c;包含一个头文件和一个C源文件&#xff0c;大小约…

作者头像 李华