GIS数据GIS DATA

下载上海村界数据:5,601个单元16区一包

技术专栏 · 数据产品 · 2026-10-23

上海的「村界」是所有市包里最有辨识度的一份:5,601 个村级单元、16 区无缺席,压缩包 9.95MB、解压 61.5MB,体量全系第一。打开属性表你会发现它连国标 12 位村级码都没有——中心城区躺着两千多个「428 街坊」式的面片,郊区才是「金汇村」「新龚村」这样的真村。这份上海村界geojson把两种上海装在一个包里,本文把它的编码体系、16 区分布和归属反推法一次讲清。

16 区一张清单:从崇明大岛到黄浦街坊

全域预览。崇明岛横卧长江口,浦东新区在东岸铺开,中心城区密到看不清单块——这就是上海的村界版图:

上海市村界预览图:5,601 个村级单元按 16 区填色
上海市村界全域预览(WGS84 · 2026-09 批次),图例数字为各区村级单元数。
区单元区单元区单元
浦东新区756虹口区340青浦区249
黄浦区595长宁区300松江区193
崇明区489嘉定区268闵行区193
普陀区446奉贤区266金山区168
静安区444合计 5,601
徐汇区380杨浦区370宝山区144

几何上这份包有三个「全系之最」:解压 61.5MB 最大;MultiPolygon 499 个、占比 8.9% 最高(中心城区街坊碎块成组,崇明围垦成片);市域东西横跨 120.852° 到 122.067°,约 115 公里——最东端已经探到佘山岛海域。做市域图时建议先按区裁剪,中心城区单独出图才看得清单元。

不用国标码的包:STREETCODE 街坊制怎么读

全国多数市包按《12位村级代码怎么读》的国标体系走,上海是例外——实测 5,601 个面的村级码全部为空,取而代之的是两个字段:STREETCODE(5 位街道码,如 08013、17016)和 BLOCK_CODE(街坊/村序号,1–3 位)。省字段填满「上海市」,市、区县、乡镇四列全空,类型统一登记「行政村」。整套编码是上海街坊制的产物:街道之下划街坊,街坊号在街道内排序。

村名的构成也印证了城郊二象性:2,894 个单元以「街坊」结尾(428 街坊、331 街坊),2,400 个是真村名(金汇村、新龚村、青松村),剩下 307 个是特殊面——海军富民农场、奉城镇(镇域整面作为单元)这类。按区拆开看,三种形态泾渭分明:

形态区数据特征
城区街坊型黄浦、静安、普陀、徐汇、杨浦、虹口、长宁街坊占比 97–100%,黄浦 594/595、普陀与徐汇 100%
郊区村居型崇明、青浦、奉贤、松江、金山真村界为主,村占比 81–96%,崇明 421 村、青浦 239 村、奉贤 235 村
近郊混合型浦东、嘉定、闵行、宝山村界占比 85–90%,混农场/镇域面,浦东 681 村 + 75 特殊面

这层形态信息直接决定用途:做中心城区点位落格、商圈分析,街坊面片的颗粒正合适;做乡村振兴、涉农补贴台账,取郊区五区加近郊四区的村面就够了。

归属反推:5,601 个面怎么落回 16 区

区县字段是空的,239 个 STREETCODE 里又有 32 个跨区(13.4%,集中在中心城区交界),只按街道码分组会把长宁的面算进普陀。可靠的办法是拿「村界数据 · 按区县」的 16 个区包做反推:给每个面拼一个 STREETCODE + BLOCK_CODE + 村名 三元组,去 16 个区包里逐面查表——实测 5,601 个单元全部命中,零落空,16 区分布表就是这么来的。核心逻辑几行就够:

// 三元组 -> 区:从 16 个区包建索引,再逐面查市包
const keyOf = p => [p['STREETCODE'], p['BLOCK_CODE'], p['村名']].join('|');
const districtOf = new Map();
for (const dist of DISTRICTS)                    // ['黄浦区', '浦东新区', ...]
  for (const f of load(`county/${dist}.gz`))
    districtOf.set(keyOf(f.properties), dist);
for (const f of cityPack.features)
  f.properties['区县'] = districtOf.get(keyOf(f.properties)) || '未知';

这个方法的成立前提是市包与区包同批次同源——本站两套数据正是同一切分的关系,三元组天然可对。用别处拿到的混合来源数据时,三元组对不上就退回几何归属(质心落区界),方法见《下载西安村界geojson:空间连接补全13区县》;北京包那种「有码但混着历史码」的又是另一种处理,见《做成北京村界地图:8,021个村级面一包拿齐》。三个直辖市正好构成归属方法论的三块拼图。

购买入口:已预选上海市

下面的入口与「村界数据 · 按市」页同一购物通道,已替你选中上海市,也可以改选其他地市:

¥29.99/ 市 · 买断制

已为你选中上海市,支付后即时获得下载链接。

正在加载地市清单…

付款后下载 上海市_村界_WGS84.geojson.gz,坐标 WGS84(EPSG:4326),叠加国际底图与卫星影像无偏移。只需要个别区的(崇明的现代农业项目、浦东的辖区分析),「村界数据 · 按区县」按县计价更省;上海与江苏苏州、南通接壤的跨界分析,把对应市包同口径拼接即可。

用起来:61.5MB 大包的正确打开方式

解压后 61.5MB,桌面 GIS 全量加载无压力,浏览器端务必先按区裁剪——16 个区各自 1–12MB,逐区按需加载比整包体验好得多。QGIS 出图:先跑一遍上一节的归属反推,按区县字段分类填色(本文预览图即此做法),中心城区再按街道放大出细节图。进奥维走 KML 老路:按区筛好另存,收藏管理导入,WGS84 无偏移直接对图;要 SHP 就在 QGIS 或 ArcGIS 里另存、勾 UTF-8 编码。数据到手先过一遍《边界数据拓扑检查:一段脚本查出缝隙与重叠》的体检脚本,街坊面片密集的城区尤其值得跑。

常见问题

上海市村界数据在哪里下载?
本文页内的购买入口已预选上海市,支付宝付款后立即出现下载链接,与「村界数据 · 按市」页是同一份商品的两个入口。gz 压缩 GeoJSON 约 9.95MB,解压约 61.5MB,链接长期有效。
包里覆盖上海哪些区?
16 个区一个不缺:浦东新区 756 个村级单元、黄浦区 595、崇明区 489、普陀区 446、静安区 444、徐汇区 380、杨浦区 370、虹口区 340、长宁区 300、嘉定区 268、奉贤区 266、青浦区 249、松江区 193、闵行区 193、金山区 168、宝山区 144。中心城区以街坊面片交付,郊区为标准村界。
什么是街坊?为什么黄浦区的单元几乎全叫街坊?
中心城区的行政村早已撤村建街,原村域地块划入街道管理后以「街坊」面片保留在数据里,如「428 街坊」「331 街坊」。黄浦区 595 个单元里 594 个是街坊;普陀、徐汇、虹口、长宁的街坊占比 100%。郊区(崇明、青浦、奉贤、金山、松江)则是标准的行政村界。
村级码是空的,怎么按区分组?
上海包不用国标 12 位码,而是 STREETCODE(5 位街道码,共 239 个)加 BLOCK_CODE(街坊/村序号)的街坊制编码。按区归属可用本文的县包反推法:以 STREETCODE + BLOCK_CODE + 村名 三元组对 16 个区包逐面匹配,实测 5,601 个单元全部对上。注意 239 个 STREETCODE 里有 32 个跨区(13.4%),只按 STREETCODE 分组会出错。
能导入奥维吗?SHP 怎么出?
能。奥维不直读 GeoJSON,先在 QGIS 里按需筛选后另存 KML,再经收藏管理导入,WGS84 无偏移铺图即对;SHP 用 QGIS 或 ArcGIS 软件另存,编码勾选 UTF-8。包解压约 61.5MB,是全系最大的市包,建议先按区裁剪再加载。
只要崇明或者浦东一个区怎么办?
不必买整市。「村界数据 · 按区县」页 16 个区单独出售,崇明 489 个单元、浦东 756 个都可单取,单价更低;跨区做全市分析或要全域底账时,本文的按市整包一次拿齐更划算。

另外,如果你需要的是上海市的可编辑矢量 PPT 模板,请到:上海市可编辑地图PPT模板。