首页 / 软件项目 / 御坂足迹地图
Software · 2026

御坂足迹地图

把这二十多年去过的地方,收进一张自己能控制的地图里。 公共点位公开分享,私密点位加密存放,数据全部留在浏览器本地。

已上线 JavaScript 地图可视化 加密存储
御坂足迹地图

为什么做这个

走过的路大多散在相册、聊天记录和记忆里。想找一个“那年去过的那家店”, 往往只剩下模糊的印象。市面上的地图打卡要么把数据锁在平台账号里, 要么只能生成一张发完就忘的图片 —— 都不太像自己的东西。

于是干脆自己做一张。数据是自己的一个 JSON 文件,页面是一个静态站点, 想加就加,想改就改,服务器上不存任何东西。

做成了什么

  • 公共点位 236 个 —— 按兴趣分成景点、好玩、吃的三类,点开有简介和位置。
  • 个人点位 26 个 —— 自己的记录,默认私密,只有输入口令才解得开。
  • 时间跨度 2000 年到 2026 年 —— 从最早的移动轨迹到最近一次出门,都按时间线排着。
  • 一处地图,两层视图 —— 打开是公开地图,解锁后才看得到自己的部分。

技术上做的几个取舍

  • 完全静态 —— 没有后端、没有数据库。整站就是 HTML + CSS + JS 加一份 JSON, 扔在任何静态托管上都能跑,也就不存在“服务停了数据就没了”。
  • 私密点单独加密 —— 个人点位在写入前就用 AES-256-GCM 加密, 密钥由口令经 PBKDF2-SHA256 迭代 60 万次派生。解密只发生在浏览器里, 服务端拿到的始终是一段密文。
  • 默认私密 —— 新增点位时 isPrivate 默认就是 true。 忘了改也不会把不该公开的东西漏出去,这个默认值比任何提示都管用。
  • 本地优先加载 —— 优先读 localStorage 里的缓存,再异步拉最新数据。 网络慢的时候页面也不会空着。

产出与获取

目前作为博客的一个子页面在线运行,随手可以打开。 加密方案仍在继续迭代 —— 静态站点的“密码保护”本质上是一道门槛而不是保险箱, 这一点我从一开始就很清楚,也会在后续版本里做得更稳。

还没做完的

  • 加密强度与密钥派生参数还要继续调,要能扛住离线暴力尝试。
  • 点位编辑目前靠手改 JSON,想补一个可视化录入界面。
  • 想加一条“按年份回放”的动线,把时间维度真正用起来。