GIS数据GIS DATA

村界的四个尽头在哪:21市8.3万面四至实测

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

村界系列又攒了一批新市包,索性回答一个地理课式的问题:这些村界铺开去,最东、最西、最南、最北各到哪儿?把 21 个市的村界包全部解开,对 8.3 万个村级面的 3,680 万个顶点逐个扫描,四个方向的极值面各就各位——西极在帕米尔高原的塔什库尔干乡,东极在上海的河口封边面上,两两相距数千公里。

四至清单:四个方向各归其位

中国轮廓图上的村界四至点:西极塔什库尔干、东极上海、北极北京、南极广州
四至点为逐顶点扫描的极值落点,虚线为东西与南北方向连线及大圆距离。
方向坐标市区县村级面名
东极122.0670°E上海市—区内镇外
西极74.4573°E喀什地区塔什库尔干塔吉克自治县塔什库尔干乡
南极22.5517°N广州市南沙区围垦公司
北极41.0592°N北京市—帽山村

四个名字各有来历。西极面「塔什库尔干乡」坐落在帕米尔高原的塔什库尔干塔吉克自治县——中国最西端的县份之一,县域与三国接壤,一个县的面积比许多地级市还大,村级面延展到县境西缘毫不费力。南极面「围垦公司」在广州南沙,万顷沙一带的围垦造地以公司名登记成面。北极面「帽山村」在北京北部山区。东极面又是老熟人「区内镇外」——《量出最大的村:7.2万个村面面积排行实测》里它以 893 平方公里上过面积榜第二,这次它连市域东侧的封边都包了:上海东端的河口水域本就不归任何镇管,兜底面一路封到佘山岛方向。

距离账:东西四千四,南北两千一

西极与东极两个顶点之间,大圆距离 4,371 公里;南北两极之间 2,077 公里。东西方向经度跨 47.61°,但塔什库尔干在北纬 37 度、上海在北纬 31.5 度,两条纬线的经度换算差了近一成(《经纬度一格多少米:五份村界包换算实测》的换算规则照用);南北方向纯走经线,2,077 公里换算回来正好是 18.5 个纬度。

这份四至的口径要说清楚:它是 21 个在售市级包、约 8.3 万个村级面的样本四至,不是全国口径——全国尺度的西极在乌恰一带、北极在漠河,都不在这批包里。它的价值在于同批次、同清洗口径的数据铺开去的确切边界:做跨市拼接、覆盖说明、宣传示意时,这四个点就是这套数据真实到过的地方。

提取脚本:一次遍历,四个极值

const ext = { E: -1e9, W: 1e9, N: -1e9, S: 1e9 };
const hit = {};
for (const city of CITIES) {
  const feats = loadGz('data/village/市/' + city + '_村界_WGS84.geojson.gz');
  for (const face of feats) {
    const flat = face.geometry.coordinates.flat(Infinity); // 任意层级一次展平
    for (let k = 0; k < flat.length; k += 2) {
      const x = flat[k], y = flat[k + 1], nm = face.properties['村名'];
      if (x > ext.E) { ext.E = x; hit.E = [x, y, city, nm]; }
      if (x < ext.W) { ext.W = x; hit.W = [x, y, city, nm]; }
      if (y > ext.N) { ext.N = y; hit.N = [x, y, city, nm]; }
      if (y < ext.S) { ext.S = y; hit.S = [x, y, city, nm]; }
    }
  }
}
// 21 包约 3,680 万顶点,一次遍历 40 秒跑完

这套扫描是村界系列的「全家桶入口」:《量出最大的村:7.2万个村面面积排行实测》的面积、《量一量谁的村界最碎:7万面紧凑度排行》的紧凑度、本文的四至,用的都是同一次遍历的骨架,差异只在每个顶点上多做的一次运算。数据在「村界数据 · 按市」页按市取用,整省批量走「村界数据 · 按省」。

常见问题

村界的「四至」是怎么找出来的?
逐顶点扫描:把 21 个市的村界包全部解开,对 8.3 万个村级面的 3,680 万个顶点逐个比较经纬度,东、西、南、北四个方向各有记录一个极值顶点,极值顶点所在的村级面就是四至面。全程一次遍历,约 40 秒跑完。
西极为什么落在塔什库尔干?
喀什地区塔什库尔干塔吉克自治县是中国最西端的县份之一,县域深入帕米尔高原、与三国接壤。实测西极顶点在东经 74.457°,落在塔什库尔干乡的村级面上——塔县县域面积比很多地级市还大,山区村面延展到县境最西缘毫不意外。
东极为什么是一个叫「区内镇外」的面?
上海的东端是河口与海洋的交界带,行政建制管不到的水域和滩涂统一划进「区内镇外」这类兜底面。东极顶点(东经 122.067°,佘山岛方向)恰好落在这种兜底面上——它不是村,却是市域东侧的如实封边,《量出最大的村》里它也以 893 平方公里上过面积榜第二。
东西和南北各有多远?
西极与东极两个村级面顶点之间东西相距约 4,371 公里,南极与北极之间南北相距约 2,077 公里。东西跨度 47.6 个经度,在北纬 30 到 37 度之间,经度一格的实际距离随纬度缩放,跨纬度距离按大圆航程计算。
这是全国范围内的四至吗?
不是,口径是本文取样的 21 个在售市级村界包,约 8.3 万个村级面。全国口径的西极在新疆乌恰一带、北极在黑龙江漠河,不在本文样本里。本文给的是同一批次、同一清洗口径下的样本四至,做跨市拼接与覆盖说明时可直接引用。
这些村界包在哪里能取到?
「村界数据 · 按市」页按地市整包出售,本文涉及的喀什、上海、北京、广州等 21 市均在售;省级批量走「村界数据 · 按省」整包,四至提取脚本本文已给出,Node 环境直接复用。