两步路KMZ轨迹编辑器
徒步后轨迹里多了走错路和拍照留下的冗余线段。两步路没有编辑功能,Google Earth不支持带时间戳的轨迹,手改 XML 又太折腾。花三天vibe coding了一个 KMZ轨迹编辑器。
五一假期徒步,使用两步路记录了完整的徒步轨迹。但是在共享轨迹之前,我发现轨迹中存在大量多余的无用路径,可能是当时停下来拍照,或者探索路线时产生的。我想删去这些无用轨迹,但是两步路手机版没有这个功能。
我尝试使用Google Earth来修改轨迹,但是Google Earth不支持含有时间戳标记的轨迹编辑。我想试一下手动编辑。KMZ轨迹文件本质上是个压缩包,里面包着KML标注语言文件、图片和视频。但是两步路导出的轨迹尤其复杂——多段轨迹、标注点、沿途拍的媒体文件全都混在一起。解压、手改XML、再打包,每一步都是劝退。
感谢AI,我花了三天时间vibe coding了一个轨迹编辑器。
核心编辑流程
一次编辑只需要三步:
- 拖入文件 — 把两步路导出的
.kmz拖进浏览器窗口,解析自动完成。轨迹线、标注点(waypoint)、里程数据一目了然。 - 点选删除 — 在地图上依次点击两个轨迹点,选中的路段会高亮。确认删除后该段变灰,里程和点数的统计立刻重新计算。
- 导出结果 — 点击导出,工具自动重建 KMZ 文件。删除的路段消失,标注点保留,沿途的媒体文件原封不动打包进去。
整个过程的底层逻辑不简单——KML 里的 <gx:Track> 可能是交替排列的 <when><coord>,也可能按块排列;删除时需要把全局点索引映射到各段的局部索引;导出的 KMZ 还得重新压缩并包含所有附件。但这些对用户完全透明。
不仅仅是删除工具
除了最核心的轨迹段删除,工具还覆盖了一些常用功能需求:
- 标注点编辑:点击标注点标记可以重命名或删除,删除记录自动同步到本地存储。
- 轨迹重命名:点击名称直接进入编辑模式,支持中文文件名。
- 地图切换:卫星影像(Esri)和标准地图(OpenStreetMap)一键切换,配色自动跟随。
- 撤销与清空:每段删除记录都在右侧面板列出,可单独撤销或一键清空所有修改。
- 数据持久化:所有删除记录和标注点编辑都保存在浏览器 localStorage 里,刷新页面不会丢失进度。
- 轨迹描述查看:两步路添加的路线介绍可以在弹窗中查看,不用切回手机。
设计原则
我并不精通WEB开发,因此设计部分完全是由AI来搞定的。没有多余依赖。前端用的是原生JavaScript + Leaflet,Leaflet库连同地图图层直接vendored在static/lib/目录里。后端只依赖 Flask,没有数据库,没有队列,没有容器编排。整个项目跑起来就是 python3 -m kmz_editor.server 一行命令。
主题配色做了专门的打磨——深色山野风,珊瑚色点缀,配合Esri卫星图的自发光青绿轨迹线。我觉得用起来蛮顺手的。
为什么做这个
我平时用两步路记录徒步轨迹,但每次遇到走错路需要回头的时候,导出后的轨迹就多了一条多余的折返线段,删不掉。市面上不缺轨迹编辑器,但为了删几段路去学一个专业软件,总觉得太沉重。
所以就有了这个:只做一件事,把这件事做好。不装框架,不搞微服务。打开、拖文件、点两下、导出,就这么简单。
AI时代,每个人都可以制作出属于自己的定制化软件。
代码开放:
容器化部署:
docker run -d -p 8899:8899 yinguobing/kmz_editor:0.1.0部署后访问:http://localhost:8899
评论 ()