首页
/ 解决running_page项目中Keep骑行数据无法生成GPX文件的问题

解决running_page项目中Keep骑行数据无法生成GPX文件的问题

2025-06-17 20:43:03作者:胡易黎Nicole

在running_page项目中,用户经常遇到无法从Keep导出骑行数据生成GPX文件的问题。本文将深入分析该问题的原因,并提供完整的解决方案。

问题背景

running_page是一个用于同步和可视化运动数据的开源项目,支持从Keep等平台导入数据。许多用户反馈,虽然跑步数据可以正常生成GPX文件,但骑行数据却无法导出。

根本原因分析

经过技术排查,发现项目中存在一个硬编码的过滤条件,导致只有户外跑步(outdoorRunning)类型的数据才会被处理生成GPX文件。这一限制使得骑行数据被系统自动过滤掉了。

解决方案

要解决这个问题,需要进行以下步骤:

  1. 首先修改API端点配置,确保请求的是骑行数据而非跑步数据:
LOGIN_API = "https://api.gotokeep.com/v1.1/users/login"
RUN_DATA_API = "https://api.gotokeep.com/pd/v3/stats/detail?dateUnit=all&type=cycling&lastDate={last_date}"
RUN_LOG_API = "https://api.gotokeep.com/pd/v3/cyclinglog/{run_id}"
  1. 在代码中找到并移除硬编码的跑步类型检查条件:
# 移除或注释掉以下过滤条件
and run_data["dataType"] == "outdoorRunning"
  1. 清理缓存数据:
rm imported.json
rm run_page/data.db
  1. 重新执行同步命令:
python3 run_page/keep_sync.py ${your_mobile} ${your_password} --with-gpx

技术原理

GPX文件生成的核心逻辑依赖于从运动平台API获取的轨迹数据。Keep平台对不同类型的运动数据使用了不同的API端点和数据结构标识。项目最初只考虑了跑步场景,因此在代码中加入了类型检查,这导致骑行数据无法通过验证。

注意事项

  1. 确保你的Keep账户中确实有骑行记录
  2. 修改代码前建议备份原文件
  3. 如果同步后仍无数据,可以检查终端输出是否有错误信息
  4. 不同运动类型的数据结构可能略有差异,如果遇到解析问题需要相应调整

总结

通过修改API配置和移除类型限制,可以成功导出Keep骑行数据为GPX格式。这个解决方案不仅适用于骑行数据,也为项目支持其他运动类型提供了思路。理解数据结构和过滤条件是解决此类问题的关键。

登录后查看全文
热门项目推荐
相关项目推荐