简介:本资源为2020年全国村级行政区划点位数据,面向GIS从业者、城乡规划研究者、地理信息专业师生及乡村振兴相关领域工作者,解决村级空间定位缺失、基层治理数据支撑不足等实际问题。压缩包共6个标准Shapefile组成文件(含.shp几何数据、.dbf属性表、.prj坐标系定义、.shx索引及.xml元数据和ReadMe说明),完整支持ArcGIS、QGIS等主流平台直接加载与空间分析,总大小59.26MB。已有2759人学习下载,可直接用于村庄分布制图、区域密度统计、行政边界叠加分析、公共服务设施选址模拟等典型应用场景;属性字段涵盖村名、所属乡镇/县区等关键行政隶属关系,具备高精度空间参考与良好字段规范性,是开展县域尺度农村发展评估与精细化治理的重要基础数据支撑。 “2020年全国村名点数据shp文件.rar”这个标题,一看就是干GIS的老手或者刚入行的新手都会眼熟的东西。村名点数据,说白了就是全国范围内每一个行政村、自然村在地图上的位置标记,配上名称和行政区划信息。这东西在制图、规划、统计、田野调查里都是基础底图素材。而它被打包成rar,又给不少人添了第一道坎——下载下来解压失败、打开shp乱码、坐标系对不上,问题一大堆。
这篇文章我就从拿到这个压缩包开始,一步步拆解怎么把里面的数据真正用起来,包括解压避坑、ArcGIS/QGIS打开、属性表乱码修复、坐标系转换、转3dtiles、批量转CAD、导出txt坐标这些常见需求。顺便把我在实际处理中踩过的坑、试出来的高效方法都交代清楚,希望对正在折腾这批数据的你有帮助。
1. 数据包解压与文件完整性检查
1.1 拿到rar文件后的第一步不是双击解压
很多人下载完“2020年全国村名点数据shp文件.rar”,第一反应就是双击,然后扔给WinRAR或者360压缩去解。如果运气好,几秒钟出来一个文件夹,里面躺着点.shp、.dbf、.shx之类的文件,那就万事大吉。但实际操作中,这个步骤翻车的概率不低,尤其是文件是从网盘、QQ群文件、论坛附件这些渠道来的。
我习惯的做法是:先看文件大小,再查压缩包完整性。rar这种格式自带CRC32校验,如果文件在传输过程中损坏,解压时WinRAR会明确提示“CRC校验失败”或者“文件头损坏”。这时候别急着重新下载整个文件,先用WinRAR自带的“修复压缩文件”功能试一次,有时候只是文件头的小问题,修完就能正常解压。
还有一种情况是分卷压缩包,比如文件名是“2020年全国村名点数据shp文件.part1.rar”到“part3.rar”。这种必须把所有分卷下载完整,而且放在同一个目录下,解压part1就能自动带出其他分卷。缺任何一个分卷,解压都会中断。我见过不少新手只下载了part1就跑去问别人为什么解压不了,这属于基础操作问题,但确实高频发生。
注意:解压的时候尽量别解到C盘系统盘,尤其是这类几百MB甚至上GB的数据。村名点数据如果带属性表,解压后体积可能翻倍,放到D盘或E盘专门建一个“GIS数据”目录管理,后续使用会方便很多。
1.2 解压后怎么快速检查shp文件是否完整
shp文件不是一个单独的文件,而是一组配套文件。正常完整的点数据至少包含:
- .shp:几何信息,点位的坐标
- .dbf:属性信息,村名、行政区划、代码等
- .shx:几何和属性的索引文件
- .prj:坐标系描述文件(这个很关键,没有它ArcGIS会提示未知坐标系)
- .cpg:字符编码描述文件(没有它中文大概率乱码,后面细说)
在解压后的文件夹里,选中全部文件,右键查看属性,看“类型”列是否出现了多种扩展名。如果只有.shp没有.dbf,那这个数据基本没法用,属性表是空的;如果缺.prj,坐标系未知,后续做投影转换全靠猜,风险极大。
一个更专业的检查方式是直接在主流的GIS软件里预加载。ArcGIS里用ArcCatalog预览一下,QGIS里拖拽到地图窗口,如果能正常显示点位、打开属性表能看到村名,那就说明数据基本完整。这一步能筛掉90%的文件损坏问题,算是省时省力的前置体检。
2. 打开shp文件并解决中文乱码问题
2.1 ArcGIS/QGIS打开shp的基本操作
2010年以后,行业里的主流选择基本是ArcGIS和QGIS。这两个工具处理村名点数据都没有什么门槛,区别在于操作习惯和授权成本。
在ArcGIS里打开shp,最直接的方式是打开ArcMap或ArcGIS Pro,然后通过“添加数据”按钮,找到解压好的shp文件,直接拖进内容列表。如果用的是ArcMap 10.x,需要注意坐标系提示框,选“是”应用.prj里的坐标系信息即可。
QGIS这边更简单,它本身就是开源的,没有授权限制。打开QGIS后把.shp文件直接拖进图层窗口,或者用“图层-添加图层-添加矢量图层”的方式,都能完成加载。我个人更推荐在QGIS里做数据预览和检查,因为它每次加载文件都会读一次实际的编码声明和坐标系信息,相对不容易被软件的默认选项带偏。
2.2 中文乱码的根源:cpg文件和dbf编码不一致
村名点数据的属性表里基本都是中文——省、市、县、乡镇、村名。ArcGIS在读取dbf属性表时,默认编码是ANSI或者UTF-8,具体要看数据生产时用的什么编码。如果你的电脑系统区域设置是简体中文,ArcGIS大概率默认读成GBK或GB2312,而数据生产方存的是UTF-8,那属性表里就会是一堆乱码,比如“æ�æ°ç”这种。
解决方法是找到同目录下的.cpg文件,用记事本打开,看里面写的是什么编码。如果是UTF-8,但ArcGIS还是乱码,那就在ArcMap里设置一下shp文件读取编码:菜单栏“自定义”->“ArcMap选项”->“常规”,找到“文本编码”或“Shapefile的默认字符编码”,改成UTF-8,重新加载shp就正常了。
QGIS这边处理乱码相对友好,“图层属性-源-数据源编码”里直接选UTF-8或GBK,改完点击应用,属性表立刻刷新成正常中文。如果连cpg文件都没有,那就只能试。我的经验是先试UTF-8,再试GBK,再试GB2312,三者大概率覆盖绝大多数情况。
实操心得:拿到数据后,先把cpg文件备份一份。很多人在处理过程中会误删或覆盖它,导致数据到后面打开就乱码。如果cpg丢了,再想恢复就得反复试编码,浪费时间。这个备份成本几乎为零,但能省下大量排查时间。
3. 看懂村名点数据的属性结构与坐标系信息
3.1 属性表字段的含义解读
打开shp后,打开属性表,你会看到一堆字段。以2020年全国村名点数据为例,常见的字段包括:
| 字段名 | 含义 | 示例 |
|---|---|---|
| NAME | 村名 | 李家村 |
| PROVINCE | 所在省份 | 山东省 |
| CITY | 所在市 | 青岛市 |
| COUNTY | 所在县 | 即墨区 |
| TOWN | 所在乡镇 | 龙山街道 |
| CODE | 行政区划代码 | 370215 |
| TYPE | 点类型 | 村委会、自然村 |
这些字段的组合,让你不仅能在地图上看到一个一个点,还能通过属性查询按省、市、县快速筛选出目标区域。比如我只想画山东省的村名点分布图,就打开属性表按PROVINCE字段筛选出“山东省”,然后导出成一个新shp,再去做后续操作。这个思路在处理全国数据时尤其常用,数据量太大直接操作会卡,按区域拆分成小块再处理效率高得多。
有一点需要注意:行政区划代码这个字段,在2020版本的数据里可能是当年有效的代码。这些年部分县、乡镇做过区划调整,代码可能有变化。如果项目涉及与最新的区划代码做匹配,最好先核查一遍,别拿旧的代码硬套。
3.2 坐标系:CGCS2000和WGS84的区别
打开shp的时候,ArcGIS底部状态栏或者QGIS右下角会显示当前坐标信息。2020年全国村名点数据大概率是基于CGCS2000坐标系生产的,这是国内官方规定使用的国家大地坐标系,坐标单位是度,也就是经纬度。
这里有一个容易卡住新手的问题:CGCS2000和WGS84到底有什么区别?简单说,两者在大多数应用场景下几乎可以视为一致,但严格来说存在极微小的椭球参数差异,导致坐标值在高精度场景下有几厘米到几十厘米的偏差。对于村名点这种比例尺下的应用,完全不用纠结。你直接用WGS84的底图叠加CGCS2000的村名点,位置基本看不出来偏移。
但如果是要把数据和某个高精度测绘成果叠加,或者做厘米级的工程测量,那就必须走“投影转换”流程。步骤是:在ArcToolbox里选“数据管理工具-投影和变换-要素-投影”,输入shp,选择输出坐标系为WGS84或其他目标坐标系,明确转换方法(比如“CGCS2000_To_WGS_1984”),执行即可。QGIS里就是“导出-另存为-选择CRS”,选WGS84 EPSG:4326,一步到位。
注意:不要直接手动改.prj文件里的字符串,或者用“定义投影”随意指定坐标系。“定义投影”只是给数据“贴标签”,不改变坐标数值,而“投影”才会真正做坐标换算。用错工具,结果就是整个点图层偏移到错误位置,排查起来非常痛苦。
4. 全国村名点数据的典型应用场景
4.1 村名点符号化与专题制图
拿到这批数据,最基础的应用就是把村名点落到地图上做符号化显示。在ArcGIS里,右键图层打开“图层属性-符号系统”,选择“类别-唯一值”,以TYPE字段(村委会、自然村等)做分类,再配上不同颜色的圆点,就能快速出一张村点类型分布图。
如果是要做专业的专题图,比如“某省行政村分布密度图”,那就不能只看点,得结合渔网分割或者核密度分析。渔网分割的思路是把研究区域划分为规整的方格网,然后统计每个网格内的村名点数量,再用渐变颜色渲染这个网格。热搜词里的“渔网分割shp”和“arcgispro怎么把shp拆分”指向的就是这一类需求。
在ArcGIS Pro里生成渔网的路径是“地理处理-创建渔网”,输入范围选目标省份边界的shp,设置像元宽度高度(比如0.1度约等于10公里),勾选“创建标注点”,生成后通过“空间连接”把村名点关联到网格上统计数量,最后对网格做符号化,一张密度图就出来了。这个方法在宏观分析乡村聚落空间分布时,比单纯看散点直观得多。
4.2 数据驱动的外业调查底图制作
做田野调查或者乡村振兴规划的时候,经常需要把村名点打印到纸质地图上当底图。我的做法是:先用村名点数据按乡镇做筛选,导出一个小范围的shp,然后叠加到天地图或者高德底图上。
这里有个经验值得分享:ArcGIS/QGIS直连在线地图时,Web墨卡托投影(EPSG:3857)与村名点数据的经纬度坐标系需要匹配。实际操作起来我更喜欢在QGIS里装一个“QuickMapServices”插件,加载高德或OSM作为底图,再把村名点拖进去,两者坐标系在“开启实时投影”模式下自动对齐,省去手动转换的麻烦。
然后就是排版输出,在QGIS的“打印布局”里加底图、图例、比例尺、指北针,导出一个PDF或者高分辨率图片,去打印店打出来。这种方式比在线地图截图清晰度高得多,而且还能在图面上标注自定义的文字,外业队员拿去用非常顺手。
4.3 村名点坐标提取与Excel上报数据制作
有些项目要的不是图,而是一张包含村名、经度、纬度的Excel表,用于填报系统或者导入便携式GPS设备。这里就涉及shp转txt或者shp转Excel。
直接的办法是用ArcGIS的“表转Excel”工具,把dbf属性表转成.xls/xlsx。但属性表里没有单独的经纬度字段,需要先添加两个双精度字段(比如LNG、LAT),然后用字段计算器把点的X坐标和Y坐标算出来。几何计算里,如果shp是经纬度坐标系,算出来的就是十进制度数,直接就是WGS84经纬度;如果是投影坐标系,算出来的是米制的平面坐标,还得先投影转地理坐标系,再算经纬度。
QGIS里这个操作更顺手:属性表里有个“字段计算器”,选中新建的LNG字段,表达式写$x,LAT字段写$y,然后在图层上右键“导出-另存为-格式选CSV”,一堆带坐标的文本就出来了。再进一步,用Excel打开CSV,就能做后续的格式整理、去重、匹配等操作。
实操心得:坐标精度上,经纬度至少保留6位小数,大概对应0.1米精度,足够村级点位用。有的系统要求GCJ-02火星坐标,比如对接高德开放平台,那还得做一次坐标偏移转换,这一步处理不好点位会偏几百米。如果对这种偏移敏感,建议用专业的坐标转换工具,别只靠在线网页随便转。
5. 格式转换进阶:shp转3dtiles、转CAD、批量拆分
5.1 村名点数据转3dtiles:从二维到三维
近几年“shp转3dtiles”的需求越来越多,主要是Cesium、MapBox之类的三维可视化平台火了以后,大家都想把二维数据搬进三维场景。村名点数据转3dtiles,实际上是把点数据转成三维场景里可加载的点云或广告牌要素。
我在实际项目中的流程是这样:
- 在QGIS中打开shp,选“处理-工具箱”,搜索“Tiles3D”相关工具或借助插件(比如“Cesium ion”相关上传模块)。
- 如果插件不好用,就走中间格式路线:先用QGIS或GDAL把shp转成GeoJSON或3D Tiles支持的格式(如b3dm的源数据glTF),再借助cesium的tileset工具生成3dtiles。
- 把生成的3dtiles文件夹上传到服务器或对象存储,在Cesium中通过
Cesium3DTileset加载。
这个流程里最容易出问题的是坐标系。Cesium默认使用WGS84,如果你的shp是CGCS2000且数据量大,建议先用GDAL的ogr2ogr命令统一转成EPSG:4326,再进转换管线。转换完之后在Cesium里校核一下点位是否落在目标区域,防止因坐标系没转对导致点跑到海里或者别的国家去。
5.2 shp转CAD图纸:规划制图的桥接操作
规划行业经常要把shp导到CAD里继续画图。“dxf转换shp”和“批量把多个shp转为cad”这两个热搜词反映的就是这类高频需求。
ArcGIS的“导出至CAD”工具支持把点要素导出为dwg或dxf,默认情况下村名点会变成CAD里的点实体。但有一个老大难问题:CAD里显示的文字标注不会自动生成。我的做法是借助“注记”功能,先把村名转成标注,再标注转注记,最后连同注记一起导出CAD。
QGIS方案也值得推荐:用“MMQGIS”插件配合“DXF导出”功能,在“图层-保存为-DXF”时勾选“使用属性字段作为文本标签”,选择NAME字段作为CAD文字内容,导出的dxf在CAD里打开就能直接看到每个村名点旁边带着文字。效率比ArcGIS高很多,尤其适合批量操作。
批量把多个shp转为CAD,本质是写脚本自动循环。以QGIS为例,利用批处理工具,输入多个shp,输出指向同一个文件夹,系统自动把每个shp导出为对应的dxf,一次搞定几十个文件。比手工一个个导强太多了,实测能节省80%以上的时间。
5.3 拆分层与按区域分割:大数据量下的性能优化
全国村名点数据包含的点位数量少则几十万,多则上百万,直接在ArcGIS里全量操作,旋转底图、缩放、属性查询都会卡到怀疑人生。解决思路就是拆分。
ArcGIS Pro里拆分的路径是“分析工具-提取-筛选”,按字段条件一次只导出某个省、某个市的村名点。如果按空间范围拆,比如只要某个不规则的县域边界范围内的点,那就先用边界shp做主数据,“分析工具-叠加-相交”或者“空间连接”来提取。
QGIS里更灵活,我常用“按位置选择”把边界内的点选出来,然后右键“导出-另存为所选要素”,生成一个新shp。这个操作连SQL都不用写,鼠标点几下就完成。热搜词里的“arcgispro怎么把shp拆分”其实还可以用“模型构建器”,把“按属性拆分”做成一个工具,丢给同事用,谁都能操作,不用教。
注意:拆分前先确认数据坐标系和边界shp坐标系一致。如果一个是GCS_WGS_1984,另一个是CGCS2000_3_Degree_GK_Zone_40,直接做空间查询,结果注定是错的。稳妥做法是先把两个图层统一到同一个坐标系,再执行拆分。
6. 常见问题与排查技巧实录
6.1 打开shp时提示“未知坐标系”怎么办
这个问题99%是缺少.prj文件。根据前面的完整性检查,如果确认.Prj确实丢了,那就需要判断原数据的坐标系。
思路有两个方向:
- 从数据来源判断:2020年国家公开的数据基本是CGCS2000,如果之前在其他软件里打开过且位置大致正确,可以大胆先用CGCS2000。
- 从坐标数值判断:给shp添加X/Y字段,看坐标值的范围。如果经度在73-135、纬度在18-53附近,那是经纬度坐标,直接定义成CGCS2000地理坐标系即可;如果坐标值很大(几百万这种),那是投影坐标,需要进一步判断具体投影带。
定义坐标系的操作在ArcGIS里是“定义投影”,在QGIS里是“图层属性-源-设置CRS”。注意这一步是修改元数据,不是做坐标换算,定义错了整个图层位置就是错的,但几何坐标数值没有被篡改,还能挽回。
6.2 rar压缩包解压后出现文件损坏或乱码文件
有时候解压出来文件名是一堆“锟斤拷”或“����”之类的文字,这不是数据坏了,而是压缩包内的文件名编码与当前系统不一致。中文文件名的压缩包在Windows和Linux之间互相传,特别容易出现这种问题。
解决办法是用支持编码转换的解压工具,比如Bandizip、7-Zip搭配extract工具,或者WinRAR新版。把解压后的文件重命名成纯英文字母,比如“cunming2020.shp”,虽然难看但稳妥。后续在GIS软件里加载识别不会有任何影响。
6.3 esri的shp文件导cad时文字乱码
如果你在CAD里打开从ArcGIS导出的dxf,发现符号或属性文字全是问号,基本是字体缺失或编码不匹配导致的。ArcGIS里导出的dxf,默认不支持中文字体名称,所以CAD打开时找不到对应字体,显示问号。
解决方法是:在CAD里用“样式”命令确认当前文字样式所用的字体,换成支持中文的,比如“宋体”“黑体”“仿宋”。如果还是乱码,就把dxf再用记事本打开,检查里面的编码声明,将非UTF-8的部分转成UTF-8(前提是你懂一点编码格式,否则建议直接用QGIS导出dxf,它默认对中文兼容性更好)。
6.4 常见问题速查表
| 问题表现 | 可能原因 | 快速排查方法 |
|---|---|---|
| 解压提示CRC错误 | 压缩包传输损坏 | 用WinRAR修复或重新下载 |
| dbf属性表中文乱码 | cpg缺失或编码不一致 | 切换UTF-8/GBK编码重载 |
| 打开shp显示未知坐标系 | .prj文件缺失 | 根据坐标范围定义坐标系 |
| 图层位置偏移到海里/境外 | 坐标系定义错误或投影未转换 | 检查定义投影操作和坐标转换 |
| 导出的CAD文字为问号 | 字体编码不兼容 | 换中文字体或改用QGIS导出 |
| 文件太大导致软件卡死 | 点数量过大 | 拆分成区域数据再操作 |
| dxf转换shp后点位不重合 | 源dxf坐标系信息丢失 | 在CAD里确认坐标后统一投影 |
6.5 处理这类数据的心法:先备份、再操作
最后分享一个经验。所有批量处理shp的操作,无论是拆分、转换坐标、转格式,一定要在副本上做,别动原文件。很多时候处理完发现结果不对,还能拿着原始文件重新来过。备份习惯能让你在“试错—调整—再试”的循环里游刃有余。
另外,处理好的中间文件(比如转好的GeoJSON、筛选后的区域shp、清洗过的CSV)建议按“日期_操作类型_区域”的格式命名。比如“20250110_筛选_山东省村名点.shp”。即使一个月后回来,你也能一眼看出这个文件是怎么来的,省去重头梳理的时间。这个细节对于频繁处理数据的人来说,价值极高。
村名点数据这东西,看起来简单,但真正用好涉及的操作链路很长。从解压检查到打开浏览,再到属性解读、坐标系处理、应用制图、格式转换、按需拆分,每一步都有坑。希望这篇文章能帮你在处理2020年全国村名点数据时少走弯路,把时间花在数据应用本身,而不是无尽的技术排查上。
本文还有配套的精品资源,点击获取