曹县领衔:菏泽5,878个村界一包下载
技术专栏 · 数据产品 · 2026-10-28
菏泽的村界包里藏着一道地图上看得见的「谜题」:5,878 个村级面、字段全部填满,但全域预览图正中央缺了一块——定陶区整区没有村级面。这份菏泽村界geojson不止缺一块:东明县整县走一个少见的前缀,两个开发区单列成组,还有一面飘到了济宁地界。本文把这些坑一个个标出来,再告诉你怎么绕。
先看家底:5,878 个面、157 个乡镇、字段全满
全域预览。曹县在南方一大块,郓城在北,中部的空白就是定陶:
| 分组(按区县字段) | 单元 | 分组 | 单元 | 分组 | 单元 |
|---|---|---|---|---|---|
| 曹县 | 1,187 | 单县 | 517 | 菏泽经开区 | 103 |
| 郓城县 | 1,053 | 成武县 | 500 | 菏泽高新区 | 68 |
| 巨野县 | 897 | 鄄城县 | 495 | 嘉祥县 * | 1 |
| 牡丹区 | 572 | 东明县 | 485 | 合计 | 5,878 |
字段质量是「拿来即用」档:区县、乡镇两级归属链 5,878 行全填,12 位村级码无一空值,157 个乡镇在乡镇字段里各就各位——青固集镇 90 个村、麒麟镇 76 个、侯咽集镇 76 个,做乡镇级汇总连分组表都省了。几何上 5,865 个 Polygon 加 13 个 MultiPolygon,平原大市的典型形态,压缩包只有 6.88MB,解压 29.8MB。
两个分组陷阱:定陶的白洞与东明的 371728
第一个陷阱已经在图上:定陶区零个面。市里九个政区,包里只有八个的村级数据,定陶的位置在图上是一片空白。这不是数据损坏,是本批次的如实口径——买之前知道这点,做市域图时就不会误以为自己的流程出了错。
第二个陷阱更隐蔽。东明县 485 个面的村级码全部是 371728 开头,而常见县码序列里 371727 之后直接排到了它——不在通表县码之列。按码前六位分组的人十有八九会把整个东明丢进「未知」桶。此外还有两处小口径:菏泽经开区和高新区在字段里单列成组(103 + 68 个面),村级码却都归在牡丹区名下;另有 1 个面的字段写成了隔壁济宁的嘉祥县,码是巨野的——孤例,统计时剔掉即可。三个坑合在一起,分组守则就一条:先信字段、再核码前缀,两个字段打架时以字段为准,孤例逐个过目。
村名三道门:委员会、「村」和裸地名
5,878 个村名分成三种形态,做名称匹配前得各过各的门:2,081 个以「村民委员会」全称结尾(黄寺村民委员会、牛庄村民委员会),1,949 个以「村」结尾,剩下约 1,700 个是裸地名——贺庄、王寨、杜桥、北王庄,「庄」538 个、「楼」201 个、「寨」121 个、「集」85 个、「堂」45 个,鲁西南的寨楼集堂一套全齐。剥后缀的顺序别搞反:
function normName(name) {
return name
.replace(/村民委员会$/, '') // 第一道:剥组织全称
.replace(/村$/, ''); // 第二道:剥「村」
// 第三道:剩裸地名(贺庄、王寨),别再剥了,直接以村级码为键
}
const byCode = new Map(feats.map(f => [f.properties['村级码'], normName(f.properties['村名'])]));
「庄、楼、寨、集、堂」这一套在《读村名,识南北:九城村名后缀实测》里都能找到南北对应:寨楼集堂密集带正是鲁豫皖交界的地名指纹。12 位村级码的分组逻辑见《12位村级代码怎么读:逐段拆解与真数据验证》,东明这类特殊前缀就是它讲的「以码为键也要先验码」的活例子。
购买入口:已预选菏泽市
下面的入口与「村界数据 · 按市」页同一购物通道,已替你选中菏泽市,也可以改选其他地市:
已为你选中菏泽市,支付后即时获得下载链接。
正在加载地市清单…
付款后下载 菏泽市_村界_WGS84.geojson.gz(6.88MB),坐标 WGS84(EPSG:4326),叠加国际底图与卫星影像无偏移。曹县、郓城两个大县可到「村界数据 · 按区县」单独取用;鲁西南片区联动则把菏泽与相邻的商丘、开封各市包同口径拼接,全省底账看「村界数据 · 按省」的山东整包。数据到手先过一遍《边界数据拓扑检查:一段脚本查出缝隙与重叠》,再进业务流程。
奥维与 SHP 是老三样:QGIS 按县筛好另存 KML,奥维收藏管理导入、WGS84 无偏移直接对图;SHP 在 QGIS 或 ArcGIS 里另存、编码勾选 UTF-8。29.8MB 的体量全量操作都很快。
常见问题
- 菏泽市村界数据在哪里下载?
- 本文页内的购买入口已预选菏泽市,支付宝付款后立即出现下载链接,与「村界数据 · 按市」页是同一份商品的两个入口。gz 压缩包约 6.88MB,解压约 29.8MB,链接长期有效。
- 包里覆盖菏泽哪些区县?
- 5,878 个村级面按字段分 11 组:曹县 1,187、郓城县 1,053、巨野县 897、牡丹区 572、单县 517、成武县 500、鄄城县 495、东明县 485、菏泽经济技术开发区 103、菏泽高新技术开发区 68。定陶区在包中没有村级面,分组时会看到一处空白,属批次口径的如实呈现。
- 东明县的村级码为什么是 371728 开头?
- 实测东明县 485 个面的村级码全部走 371728 前缀,而常见县码序列里 371727 之后的 371728 并不对应一个通表县。按码前六位分组时,东明极易被当成「未知」丢掉——先按区县字段分组、再回头核码,或者直接把 371728 抄进映射表。
- 村名怎么这么多「村民委员会」?做匹配怎么办?
- 菏泽村名三种形态并存:2,081 个以「村民委员会」全称结尾、1,949 个以「村」结尾、约 1,700 个是裸地名(贺庄、王寨、杜桥,「庄、楼、寨、集、堂」是鲁西南特色)。匹配前先剥「村民委员会」再剥「村」,裸地名直接以 12 位村级码为键。
- 能导入奥维吗?SHP 怎么出?
- 能。奥维那头不认 GeoJSON:先在 QGIS 里按县筛出目标、另存为 KML,进奥维收藏管理导入即可,坐标 WGS84 无偏移;要 SHP 的话在 QGIS 或 ArcGIS 里另存一份,勾上 UTF-8 编码。解压 29.8MB,桌面端全量加载顺畅。
- 做曹县或者郓城的县域分析合适吗?
- 合适。曹县 1,187 个村级单元、郓城县 1,053 个,两个大县各自撑起全市五分之一,承接电商产业带、涉农台账的颗粒正好落在村一级;字段现成,按县筛零处理。只要单县可到「村界数据 · 按区县」页单独取用。
另外,如果你需要的是菏泽市的可编辑矢量 PPT 模板,请到:菏泽市可编辑地图PPT模板。