嗨,大家好,我是 chenxuan。作为一个热爱旅游的开发者,我一直在寻找一款称手的路书规划工具,但市面上的产品总有些不尽如人意的地方:要么需要繁琐的API Key申请,要么在网络不佳时无法使用,要么就是担心自己的行程数据隐私。
于是,我决定自己动手,RoadbookMaker 由此诞生。它是一个完全免费、无需注册、无需任何API Key、甚至可以完全离线使用的路书规划工具。最重要的是,它完全开源。
项目与在线体验地址:
- GitHub地址 : github.com/chenxuan520...
- 在线体验 : map.chenxuanweb.top

核心优势:简单,但强大
在深入了解如何使用前,先快速概览一下 RoadbookMaker 最核心的几个优势:
-
🚀 真正的零门槛
- 无需API Key: 无需注册任何地图厂商的开发者账号,免去申请和配置Key的烦恼。
- 无需注册登录: 没有账户体系,打开即用。
- 完全离线可用: 核心功能在断网时依旧可用,所有数据默认安全地存储在你的浏览器本地。
-
📱 极致的用户体验
- 手机端完美适配: 响应式设计,在手机上也能获得流畅的规划体验。
- 一键集成 :无缝跳转至导航 (百度、高德、Google)、携程订票 、Google酒店 和小红书攻略,实现从规划到出行的一站式服务。
- 快捷键支持 : 提供
A添加、C连接、D删除等全键盘快捷键,大幅提升规划效率。
-
🏠 便捷的自托管
- Docker一键部署: 提供 Docker 镜像,一条命令就能在自己的服务器或NAS上拥有它。
- 数据私有:自托管意味着数据完全由你掌控,隐私安全感拉满。
手把手教你用 RoadbookMaker 规划一次旅行
下面,我们通过一个实例,看看用它规划一次"周末城市漫步"有多简单。
第一步:添加你的足迹
打开网站,界面就是一张简洁的地图。你可以通过顶部的搜索框寻找地点,或者直接在地图上进行操作。

- 添加标记点 :点击顶部的 "添加标记点" 按钮,或直接按快捷键
A,鼠标会变成一个十字准星。在地图上你感兴趣的位置点击一下,一个标记点就添加好了。

第二步:连接成线,规划路线
当你在地图上标记了几个点后(比如咖啡馆、书店、公园),就可以将它们连接起来形成路线。
- 连接标记点 :点击"连接标记点"按钮或按
c,在弹出的窗口中选择起始点和目标点,并选择一种交通方式,例如"步行"🚶。一条代表路线的连接线就生成了。


第三步:丰富你的行程细节
现在,路书已经有了基本的框架,我们可以为它填充更多细节。
-
编辑标记点:单击任意一个标记点,右侧会滑出详情面板。在这里,你可以:
- 修改名称,设置到达和离开的时间。
- 为它更换一个醒目的图标(支持数字、Emoji或自定义文字)。
- 通过 "去小红书搜一搜" 链接,直接探索这个地点的周边玩法。
- 通过 "Google酒店搜索" 快速查找附近的住宿。
-
编辑连接线:同样,单击连接线,也可以在详情面板中:
- 设置这段路程的耗时。
- 一键跳转到百度/高德/Google地图进行导航。
- 如果交通方式是"火车"🚄或"飞机"✈️,还会出现携程订票的快捷链接。

第四步:分享与备份你的路书
规划完成后,你可以轻松地将成果分享给朋友或进行备份。
- 导出HTML :这是
RoadbookMaker的一个特色功能。它能生成一个独立的HTML文件,这个文件内置了所有地图数据和交互功能。你可以把这个文件发给任何人,对方在任何设备上用浏览器打开,就能看到和你一模一样的路书,无需安装任何东西,当然导出的html路书也可重新导入。 - 导出JSON:如果你想在其他设备上继续编辑,可以导出为JSON文件,之后再通过"导入路书"功能恢复。
背后的技术思考
为了实现上述流畅且零门槛的体验,我在技术上做了一些选型和实现。
-
前端 (Vanilla JS + Leaflet.js) : 前端选择了原生JavaScript,配合强大的开源地图库
Leaflet.js。这样做的好处是极致的轻量化,无需任何构建步骤,保证了快速加载和响应,也为完全离线使用打下了基础。 -
后端 (Go + Gin): 后端采用Go语言开发,主要为了实现高性能的API服务和极简的部署。Go可以将整个应用编译成一个无依赖的二进制文件,这使得Docker镜像可以做到非常小。
-
"无需API Key"的秘密 : 后端的一个核心功能是作为API代理。它将前端发来的搜索请求,代为请求百度、天地图等服务,并处理好坐标系转换(例如国内的GCJ-02火星坐标系),最后将干净、统一的数据返回给前端。这样就巧妙地绕开了前端直接调用地图API会遇到的Key暴露和跨域问题。
写在最后
RoadbookMaker 是我利用业余时间,从解决自身痛点出发,逐步打磨而成的项目。它不追求大而全,而是专注于将"路线规划"这一核心体验做到简单、纯粹、不受限制。
如果你觉得这个项目对你有帮助,或者你也认同它的理念,请在 GitHub 上给我一个 Star ⭐!你的支持是我持续更新的最大动力!
再次附上地址,欢迎大家体验和贡献!
- GitHub : github.com/chenxuan520...