GIS数据GIS DATA

12位村级代码怎么读:逐段拆解与真数据验证

技术专栏 · 数据处理 · 2026-10-11

最近写成都、重庆、广州三篇村界数据的文章,「按村级码前 6 位分区」这句话反复出现。它为什么成立?这一串 12 位数字里每一段到底是什么?空口讲规则容易,拿真数据验证才踏实——本轮解析了铜鼓县、宜丰县、广州市三份村界包共 3,082 个村级码,把五段结构逐一验证,连教科书规则在真实数据里对不上的地方也都挖了出来。

五段结构:2+2+2+3+3

以一个真实码为例——成都锦江区的棬子树村,村级码 510104035200,从左到右切五刀:

12 位村级代码解剖图与末三位段的实测分布
左:2+2+2+3+3 分段,逐段落位;右:三份村界包按末三位段的实测计数。

前 6 位就是县级行政区划代码,本级一层层套上去:51 是四川、5101 是成都、510104 是锦江区。7-9 位是乡镇街道——三份包里去重后的数量分别是铜鼓 13 个、宜丰 55 个、广州 176 个,乡镇街道加各类场站的量级。也就是说,一个 12 位码自带五级归属,靠字符串切片就能逐级汇总,不需要任何空间计算。

结构完整性先验证一遍:三份包 3,082 个码,长度不是 12 位的 0 个、含非数字字符的 0 个。前 6 位的去重数也对得上行政区划常识——铜鼓全县只有 1 个码 360926,宜丰 1 个码 360924,广州 11 个码正好对应 11 个区。

末三位才是身份:居委会、村委会,还有一段「其他」

前 9 位定位到「地方」,末三位回答「这个地方是什么」。实测分布:

末三位段铜鼓县(97)宜丰县(354)广州市(2,631)
001–099(居委会 / 社区类)244974
101–199(社区类,城市化地区)00498
200–399(村委会类)902511,140
400–599(其他:场 / 库 / 站)55919

拿名称后缀做交叉验证:铜鼓 2 个「社区」全部落在 001–099,90 个「村」全部落在 200–399,命中率 100%;宜丰的社区同样命中,209 个村名单元里 205 个落在 200–399。规则在真实数据里站得住,但下面两节是它站不稳的地方。

400–599 里住着林场、农场和共管面

「其他」段是名单最有意思的一段。铜鼓 5 个非村非社区单元全是林场:茶山林场、龙门林场、花山林场、大沩山林场四个落在 598,城郊林场落在 501;广州的 19 个里有圭沙农场(598)、民生农场(500)和南沙的一串管理区;宜丰的 59 个里则是黄岗山垦殖场的各个分场(505、510)。

宜丰还有一类特殊名字:「同安乡党田村与同安村争」「潭山镇店上村与潭山村争」——这是共管面,两个村对同一片地共同管辖,登记时连名。它们的末三位在 401、403 一带,名称却以「村…争」收尾,按名称后缀做分类时这 4 个会被误判。所以从名称猜类型不如直接看末三位,反过来用末三位反查类型更要留意共管面的存在。

广州多出一段 101–199

对照表里最扎眼的数字是广州的 498——两份县包里完全缺席的 101–199 段,在广州被 497 个「社区」外加 1 个单元占满。城市化的推进让社区数量远超 001–099 一段的容量,101–199 段被用作了社区的第二段。换句话说,末三位的分段在不同发达程度的地区丰俭不一:山地县两段够用,超大城市四段齐上。拿着「社区一定在 001–099」的固定假设去广州筛数据,会漏掉一半社区。

验证脚本不长,核心就是按段计数加后缀交叉:

const l3 = +code.slice(9);                 // 末三位转数字
const range = l3 <= 99 ? '001-099'
  : l3 <= 199 ? '101-199'
  : l3 <= 399 ? '200-399'
  : l3 <= 599 ? '400-599' : '600+';
const isShequ = name.endsWith('社区') || name.endsWith('居委会');
const isCun = name.endsWith('村') && !isShequ;
// 交叉记录:社区是否落在 0 段、村是否落在 2 段
if (isShequ) l3 <= 99 ? hit0++ : miss0++;
if (isCun) (l3 >= 200 && l3 <= 399) ? hit2++ : miss2++;

四个用法,记码就够

按县、按市、按省汇总:取前 6、4、2 位分组。按乡镇汇总:取前 9 位,记得乡镇级里也混着场站。区分村居类型:直接看末三位段,别猜名称。校验数据:先查长度与纯数字,再查前 6 位与已知区划代码的一致性。代码与名称的双向查询可以用本站的行政区划码查询工具,五级代码本地检索即时出结果。

这套编码体系贯穿本站全部村界商品:按市购买的每个包里,村界数据 · 按市的每个面要素都带完整 12 位村级码字段,与《广州2,631个村界装进一张图:geojson整包下载》《下载成都市村界geojson:20区县一个包全拿》两篇里的分区脚本同源。数据质量层面的问题(缝隙、重叠)见《边界数据拓扑检查:一段脚本查出缝隙与重叠》。

常见问题

12 位村级代码每一位是什么含义?
五段结构 2+2+2+3+3:第 1-2 位是省,第 3-4 位是地级市,第 5-6 位是区县,第 7-9 位是乡镇街道,第 10-12 位是村级单元本身。前 6 位合起来就是县级行政区代码,例如 510104 是成都市锦江区;用村级码前 6 位分组即可完成任何按县、按市、按省的汇总,无需空间计算。
怎么从代码区分村和社区?
看末三位。实测三份村界包:名称以「村」结尾的单元 95% 到 100% 落在 200-399 段(村委会类),「社区」「居委会」类单元集中在 001-099 段。广州这类高度城市化的包还会启用 101-199 段承接社区(实测 498 个),林场、农场、垦殖场等单元则落在 400-599 段(如 598 的林场、500 的农场)。
为什么村级码和区划名称对不上?
两种情况。一是名称沿用旧称而代码已更新(如开县与开州区),此时以代码为准;二是名称字段为空或字段值互相矛盾,此时同样回到代码。代码由统计口径统一维护,比名称稳定得多,按代码统计、再映射现名是稳妥顺序。
「A村与B村争」这类单元名是怎么回事?
这是共管面:两个村级单元对同一片土地存在共同管辖,数据里以连名形式登记(实测宜丰县有多个「同安乡党田村与同安村争」式单元)。它们的村级码独立、边界独立,统计时按名称前缀或代码归入主导村即可,不宜拆分。
在哪里能查一个村级代码对应的地方?
本站的行政区划码查询工具支持省、市、区县、乡镇街道、村五级代码与名称的双向检索,浏览器本地完成。村界数据商品里每个面要素都带完整 12 位村级码字段,与查询工具使用同一套编码体系。