城市制霸:把去过的中国城市涂在地图上

最近做了一个小网站:城市制霸。

在中国地图上把去过的城市一个个涂上颜色,最后得到一张属于自己的足迹地图,还能保存成图片分享出去。

城市制霸

缘起

之前很流行一个「中国制霸」的小游戏(itorr/china-ex),以省为单位,给去过的省份涂色、算分。玩起来很上头,但总觉得省这个粒度有点粗:去过广州不代表去过广东,在杭州住过几年,也不代表去过浙江的每一个地方。

于是就想做一个细化到城市的版本:地图用真实的矢量边界,全国视图看全局,点进某个省再逐个标记城市。

能做什么

  • 标记城市:在全国地图上点一个省,地图会放大到这个省;再点城市,选择去过的程度。
  • 五个等级:居住(5 分)、短居(4 分)、游玩(3 分)、出差(2 分)、路过(1 分),总分自动统计。
  • 画笔:先选好等级,再连续点击多个城市,一口气涂完。
  • 搜索:输入城市名、简称或拼音(shenzhen、sz 都行),直接定位。
  • 保存图片:全国视图保存全国足迹图;在省视图保存这个省的「XX 制霸」图,全省点亮还会盖上「全制霸」印章。
省视图
单省导出图

370 座城市是怎么来的

这里的「城市」指地级行政区,外加几类通常也会被当作「一个地方」的单位:

类别 数量
地级市 293
自治州 30
地区 7
盟 3
省直辖县级单位(仙桃、济源、海南各市县、新疆兵团城市等) 30
北京、天津、上海、重庆、香港、澳门、台湾(各算一个) 7
合计 370

理论满分是 370 × 5 = 1850 分。不过要拿满分,得在每座城市都住满一年以上,也就是先活个 370 岁再说。

数据存在哪

不需要注册登录,所有标记都只保存在你自己的浏览器里,不会上传到任何服务器。换手机、换电脑或清理浏览器之前,可以在统计卡片里点「导出」存成一个 JSON 文件,之后再「导入」恢复。

技术上的一点碎碎念

整个网站是纯静态页面,没有后端:

  • 地图边界来自阿里 DataV GeoAtlas,用 mapshaper 修复拓扑、简化后投影成 SVG;全国视图先加载一份粗略的边界,进入省视图时再换成精细版。
  • 界面字体用的是开源的得意黑,按页面实际用到的字做了子集,不到 100 KB。
  • 用 Vite 构建,部署在 Vercel 上,国内也能直接访问。

代码以 MIT 协议开源在 GitHub。

最后

网站地址:https://china.loveyou.moe/,手机和电脑的浏览器都能直接打开(在微信里打不开的话,点右上角「在浏览器打开」)。

欢迎来涂一涂,看看自己到底点亮了多少座城市。