
简介一套基于WGS84坐标系统的免费中国行政区划矢量数据涵盖省、市、县等各级行政边界并包含道路、水系、居民地等基础地理要素图层适用于GIS空间分析、专题制图、城市规划、人口统计、环境研究与交通分析等场景。压缩包共40个文件整体约85.57MB既有省界、市界、县界等多套region图层和全国行政区province图层也附带shp几何文件、dbf属性表、prj坐标参考、shx图形索引等Shapefile核心组件以及用于空间索引加速的sbn、sbx、qix文件另有12个按国界、省界、水文、公路、铁路、居民地等主题拆分的zip图层包便于按需加载。目前已有3255人学习下载。数据采用GPS领域通用的WGS84经纬度坐标可直接与GPS轨迹、遥感影像叠加若需平面制图或本地高精度分析可自行投影变换为UTM等适合所在省份的投影。这套免费数据对缺少正规边界数据的GIS初学者和项目团队很实用下载后即可进行边界查看、图层叠加、缓冲区分析、区域统计、裁剪拼接等常规操作。 做GIS的应该都有过这种经历领导临时扔来一个需求要你出一张中国行政区划图或者统计各省级行政区的面积、人口再不然就是把外业采集的GPS点落到行政区划底图上。第一反应肯定是去网上搜“中国行政区划矢量数据”搜完才发现水有多深要么是要收费的商业数据要么下载下来坐标系乱成一锅粥要么边界线跟自己手里的底图差了十万八千里。最离谱的是明明标注着WGS84叠加到GPS轨迹上却偏移了好几百米。这篇东西我不会整什么“开篇综述”直接把这几年的实操经验摊开讲免费靠谱的数据去哪找、怎么验证数据到底是不是真WGS84、拿到数据后如何进ArcMap、没有现成数据时怎么从图片里抠矢量、以及UTM分带到底该怎么选。每一步都会给出可以直接照做的方案适合刚入行的GIS新人也适合被数据源折腾过无数次的老手。1. 免费可用的中国行政区划矢量数据源哪些真正靠谱先说数据源。中国行政区划数据这种“人人都想要、人人都不好给”的东西市面上确实存在几个稳定可用的免费渠道。我按自己的使用频率排序每个渠道说清楚能拿到什么、有什么坑。1.1 实测下来可以放心用的几个数据源第一个是阿里云DataV.GeoAtlas。它提供省、市、区县三级的GeoJSON数据数据整体基于公开的行政区划信息整理结构规范属性表里带行政区名称和编码下载后直接拖进地图就能用。更友好的是它把数据做成了“下钻”的形式——想拿某个省的地级市边界点进去就能单独下载不用下载全国文件自己切割。这套数据我主要用来做Web可视化精度制图足够。第二个是GADM。这是国际学术界非常常用的全球行政区划数据库覆盖到世界各国的各级行政区划。它提供Shapefile、GeoPackage、KMZ等多种格式对中国省、市、县三级也有完整覆盖。但要注意GADM的边界精度比较粗糙特别是一些偏远地区的县级边界相对实际会有可见偏差做精细分析时最好跟其他数据交叉验证。第三个是Natural Earth。这个数据主要是为制图设计的精修过边界但级别最多到省级适合做小比例尺的世界地图或全国总图市县级数据就不指望它了。第四个是国家地理信息公共服务平台天地图。它的数据权威性最高但也最难直接用——提供的是服务接口方式需要注册开发者账号、申请Key而且拿到的更多是瓦片服务而不是一个现成的Shapefile文件。如果你的项目没有硬性要求必须用官方来源这个可以作为备选不建议作为第一选择。1.2 下载下来第一步先搞清楚这份数据的真实坐标系数据下载只是第一步真正决定数据能不能用的是坐标系。我踩过的最典型的坑某个网站标注着“WGS84坐标”下载下来加载进ArcMap跟自己的WGS84底图一叠明显差了一截。这种数据十有八九是有人拿GCJ02坐标系的底图只改了元数据、没改实际坐标。拿到任何一份矢量数据第一件事永远是验证坐标系别信标注。打开GeoJSON文件可以看有没有“crs”字段正常情况下会写name:urn:ogc:def:crs:EPSG::4326这代表WGS84地理坐标系。Shapefile则要看同名的.prj文件用记事本打开里面应该有GEOGCS[WGS 84]这样的描述。如果发现prj里写的是GCJ-02或者没有prj文件这数据就得先做转换再用。还有一个更直接的验证办法把数据加载进QGIS同时打开一个在线底图比如OSM拖到某个地市看边界跟底图是否吻合。偏移超过百米的基本就是非WGS84数据。2. 为什么你下载的“WGS84”数据跟GPS坐标总是对不上前面提到坐标系这里单独成章说透。因为坐标系问题不是“选错了重选一下”那么简单很多人折腾半天始终想不明白为什么同一个经纬度在不同地方显示的位置不一样。2.1 WGS84、GCJ02、CGCS2000三个坐标系的真实差异WGS84是全球卫星定位系统使用的坐标框架手机GPS直接读出来的经纬度就是WGS84坐标。GCJ02则是在WGS84基础上经过非线性偏移加密得到的坐标系在国内互联网地图服务中被广泛使用偏移量通常在300米到500米之间而且不是固定方向的平移是随位置变化的扭曲偏移。CGCS2000是中国当前法定的大地坐标系它在椭球参数上和WGS84非常接近对于绝大多数工程应用两者的差异可以忽略不计。这里必须要说清楚一个处理原则WGS84和CGCS2000在多数场景下可以当作同一坐标系来用因为它们之间只差几十厘米到一米的量级对制图和常规空间分析没有影响。但WGS84和GCJ02之间是“天壤之别”混用会直接导致几十层楼的距离误差。你从网上下载数据如果数据是GCJ02却没标注清楚那就是给你埋了一个大雷。2.2 一手验证方法把数据和自己的GPS轨迹叠一起看最靠谱的验证方法不是查文档而是实测叠加。如果你有外业采集的GPS点或者手机记录的运动轨迹导出一份KML/WGS84格式加进GIS软件跟下载的行政区划数据叠在一起看。边界线应当和轨迹点分布区域基本吻合如果轨迹明显落在边界外或偏移几百米这个数据坐标一定有问题。没有GPS数据也没关系还有一个取巧的办法找一个自己非常熟悉的地方比如你所在的城市某个地标在地图上找到它的真实经纬度再在下载的数据里找到对应的市级或区级边界检查边界上几个关键点的坐标与真实坐标的差值。差30米以内基本没问题差超过100米就有GCJ02偏移的嫌疑。3. 把下载的行政区划数据导入ArcMap并正常显示的完整流程数据验证完坐标系了接下来就是实操环节。很多人拿到一份GeoJSON双击死活打不开ArcMap就跑来问是不是数据坏了。实际上ArcMap对GeoJSON的原生支持很有限需要先做格式转换。3.1 从GeoJSON到Shapefile的转换链路我用的方案是用QGIS做中转原因很简单QGIS免费开源而且对GeoJSON的解析能力比ArcMap好太多。操作流程是打开QGIS直接把GeoJSON拖进去右键图层选择导出-另存为格式选ESRI Shapefile文件编码选UTF-8——这一步非常关键不然属性表里的中文地名会全部变成乱码。如果你在命令行环境下更顺手也可以用Python的geopandas库一步到位import geopandas as gpd gdf gpd.read_file(china.json) # 确认原始坐标系的EPSG编码 print(gdf.crs) # 转成WGS84经纬度坐标如果原本不是 gdf gdf.to_crs(epsg4326) gdf.to_file(china_wgs84.shp, encodingutf-8)代码里注释已经写明白了to_crs(epsg4326)就是做坐标转换的动作。当然前提是read_file之后你先确认过gdf.crs如果显示的是EPSG:4490即CGCS2000其实不必强制转这个精度下可以等效使用。3.2 坐标系定义与动态投影最容易把数据搞乱的元凶导入ArcMap后的下一个坑就是坐标系定义。我见过不止一次数据明明是WGS84但加载进ArcMap后整个画面空白或者显示在错误的位置上。这通常是因为Shapefile的prj文件缺失或损坏。处理办法也很简单右键图层打开属性切到“源”选项卡找到“地理坐标系”设置用“Select”功能把它改成WGS 1984或者用“导入”功能从另一个正常的图层里复制坐标系定义。另一个高频认知误区是动态投影。ArcMap的“数据框坐标系”不等于数据本身的坐标系。你可以在图层属性里看到数据真实坐标系而数据显示的位置取决于数据框的坐标系设置。很多人做完投影转换后发现图层位置变了以为是数据错了其实是数据框坐标系被改了。记住一个原则数据坐标系是数据的固有属性数据框坐标系只决定“怎么显示”平时操作时别乱动数据框坐标系。3.3 拓扑问题数据进ArcMap前必须做的检查回到热搜里那句“竣工图线状矢量数据可以后补进arcmap里面吗”——答案是完全可以但后补的前提是你得先解决拓扑问题。行政边界数据从公开渠道下载后用起来最难受的就是相邻面之间有缝隙或重叠统计面积时数据就对不上。在ArcMap里可以这样检查用“数据管理工具”里的“检查几何”工具扫一遍数据它会报出自相交、空几何、重复节点这类错误有错的要素先修复一轮。然后打开“拓扑”工具集新建拓扑规则用“不能有缝隙”和“不能重叠”两条规则去约束面要素。如果报错太多优先检查是不是原始数据精度问题——如果是那就只能在“可接受”和“完美”之间做个取舍毕竟免费数据做到这一步已经不错了。4. 只有一张图片怎么把行政区划边界变成可用的矢量数据有些项目资料里只有一张JPG版本的行政区划图——可能是扫描的地图也可能是截图。这种“图片获取矢量数据”的需求在GIS日常里太常见了特别是竣工图、测绘底图这类资料经常只有纸质或图片版本。虽然不是最推荐的方式但没得选的时候可以参考这个流程。4.1 图片矢量化到底是怎么一回事图片矢量化有两个前提条件图片上有可以识别的真实地理坐标参考点以及这条边界线在图片上清晰可读。如果没有前者就只能做“配准”而不能做“校正”数据无法参与到真实的空间分析中去。正常步骤是把图片加载进ArcMap打开“地理配准”工具栏然后逐个添加控制点。控制点的选择直接决定配准效果我的经验是至少选4个且分布要尽量东西南北拉开别全都挤在一个角落。优先选择那些在图上和真实坐标都能明确找到的点比如道路交叉口、河流拐弯处、明显的地物角点。输入控制点的真实坐标时注意确认经纬度的格式是十进制度还是度分秒方向坐标北纬还是南纬这一个小失误就会让整个配准报废。配准完成后用“查看链接表”检查RMS误差。RMS误差越小说明配准越可靠小比例尺制图控制在2-3个像素以内就够用但如果你要做的是大比例尺的精确分析RMS误差一定要控制在1个像素以内。这里有个需要注意的点像素大小取决于图片分辨率不是固定值所以“误差小于多少米”是个伪命题要换算成实际地面距离才算数。4.2 手动矢量化实操要点配准完了就可以开“编辑器”新建面要素图层开始手动画边界。手工矢量化是个磨人的活技巧在于出图的效率和质量放大到合适的比例尺级别再开始描线线条顺着原图边界走节点不要太多也不要太少。节点太多导致数据量暴涨且边界锯齿状节点太少则丢失细节。如果你的图里有已经处理好的线状矢量图层——比如线划图、竣工图拆出来的道路中心线——可以直接在ArcMap里把它们以线要素加载进来然后通过“要素转面”工具生成封闭的面状行政区划。这就是“线状矢量数据后补进Arcmap”的正规玩法闭合线、检查交叉点、消除悬挂点、要素转面、拓扑检查整套流程走完一份可用的面数据就出来了。干这活的时候永远记得复制一份原始数据再动手因为修拓扑的很多操作是不可逆的一旦哪一步剪错了线原图没有备份就只能从头再来。5. UTM分带与WGS84 zone1-18到底在选什么热搜里还有一个高频词“wgs84坐标系zone1-18是啥意思”。这个问题看着基础但真能准确回答的人不多而且选错分带会造成非常大的坐标错乱必须单独说清楚。5.1 zone1-18到底是什么含义完整的说法应该是“WGS 1984 UTM zone XX”。UTM是通用横轴墨卡托投影用来把地球球面上的经纬度坐标转换成平面直角坐标方便计算距离、面积。它把全球按经度每6度分为一个投影带从西经180度开始编号1带是西经180度到西经174度往东依次递增。全球总共60个带编号到60为止。但这60个带是按全球编号的所以在北美地区使用的编号是zone1-18——严格来说zone1到zone18覆盖的是西半球而zone19之后覆盖东半球。国内做项目时如果遇到国外数据源里让你选“zone 1-18”说明这个数据大概率是以美国为中心的注意别选错。中国领土跨越了UTM的43带到53带从西到东依次排开。你在下载全球数据时经常需要选一个带号。如果数据提供商让选带号只是为了做展示用那好办——但如果你真的在ArcMap里用UTM投影坐标做面积计算选错带号会导致平面坐标的“X”值相差几十万米数据直接飞出九霄云外。带号的计算公式是floor((经度 180) / 6) 1比如北京经度约116.4度代入得到floor(49.4) 1 50即北京在UTM 50带。5.2 按区域选择投影别让面积计算离谱到没法看做行政区划的空间分析时投影坐标系的选择直接决定计算结果。很多人拿到WGS84经纬度数据直接在ArcMap里用“计算几何”算面积出来的单位是“度”这个值没有任何实际意义。正确做法是先给数据定义一个合适的投影坐标系然后再算面积。不同场景的推荐方案很明确如果只是全国总览级别的展示用Albers等积圆锥投影或Lambert等角圆锥投影都可以这两个投影在国内制图界用得很普遍如果要做某个省或某个市的范围分析直接用该地区所在UTM带最合适如果只是做Web地图可视化直接用Web MercatorEPSG:3857就好因为Web底图都是这个坐标系。这里要特别提醒一点ArcMap的“动态投影”功能在显示层面会自动做坐标换算所以哪怕数据是经纬度、数据框是投影坐标系画面也不会出错。但一旦你导出数据或者用“工具”来处理结果就会依据数据框的坐标系输出。要是不看清楚数据框到底用的什么坐标系统计结果出来一大半都是错的。我在实际项目里吃过不少亏最惨的一次就是把全国某个专题数据用错了投影算出的面积比实际差了将近一倍复盘才发现是拿WGS84地理坐标直接算了“面积”字段。从那以后我养成了一个习惯拿到数据第一件事就是打开图层属性看坐标系打开计算几何前先核对投影做分析前先画一个已知面积的多边形做校验。虽然是笨办法但确实管用。本文还有配套的精品资源点击获取