GeoJSONcn
GeoJSONcn / 技术专栏 / 从零搭一个行政区划边界数据服务:…

从零搭一个行政区划边界数据服务:架构与数据模型复盘

发布于 2026-07-15 · GeoJSONcn 技术团队 · 阅读约 4 分钟

前面九篇把坐标系、格式、坐标、加速、Serverless、数据建模、付费、SEO 都拆过了。最后这篇做个总复盘,把 GeoJSONcn 这个全国行政区划边界数据服务(省市区县乡镇四级,4.6 万页)的架构和数据模型串一遍。你会发现,所谓复杂系统,大多是几个朴素原则的组合。

一、先定数据模型

一切从数据开始。四级行政区划,本质是棵树:

省 (34)
 ├─ 市 (364)
 │   ├─ 区县 (2800+)
 │   │   └─ 乡镇街道 (43000+)

每级一个 Feature,properties 里带 name / code / level / 父级code。树靠 code 父子关联。边界几何用 Polygon,坐标统一 WGS84(前面坐标系那篇讲过为什么)。

数据模型定清楚,后面所有功能(钻取、搜索、渲染)都是它的衍生。

二、构建期预渲染:4.6 万页怎么来

不 SSR 现算,而是写个生成脚本,把每级每个页面提前烤成静态 HTML:

构建产物就是一堆文件,躺平等访问。

三、边缘交付:让用户就近拿到

链路设计:

浏览器
 → 阿里云 ESA(国内边缘,30天缓存,忽略源站缓存时间)
   → Cloudflare Worker(路由 + 轻加工,如相关阅读注入)
     → Cloudflare R2(静态文件源)

原则:热点冻边缘、源站零加工、压缩交边缘。这一条让几万页国内秒开。

四、静态为主,Serverless 补"活"

纯静态满足不了"相关阅读自动关联"这类动态需求。解法:把小数据丢 KV,Worker 边缘轻加工(前面 KV+Worker 那篇详述)。静态负责快,Serverless 负责活,两者不冲突。

五、产品层的取舍

六、SEO 是副产品不是主战场

架构对了(快、规范、有外链),SEO 自然来。canonical 聚权重、sitemap 拆索引、技术文章外发平台做外链。别本末倒置去堆关键词。

这套架构能抄到哪

你不一定是做地图的。凡是内容相对固定、页面巨多、读多写少的场景,文档站、商品站、博客、黄页,这套组合都适用:

1. 构建期预渲染海量静态页; 2. 边缘缓存扛住访问; 3. 需要动态的部分用 KV 加 Worker 补; 4. 付费/鉴权按"显示层 vs 数据层"分离; 5. SEO 靠规范加速度加外链。

写在最后

这个项目里每个技术点,单独看都不神秘。坐标系、格式转换、Canvas 渲染、边缘缓存、KV、canonical,把它们按"静态优先、边缘优先、分层分离"的原则串起来,就撑起了一个能扛 4.6 万页的服务。

如果你正好需要全国四级行政区划的 WGS84 边界数据(省市区县乡镇),或者想在线预览编辑 GeoJSON,欢迎来 GeoJSONcn 逛逛。数据免费预览,下载按需付费,导出的文件干干净净不带水印。

这十篇就到这儿。从坐标系到架构,希望能给你做地理数据或海量静态站时一点参考。有坑一起踩,有活一起干。