V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zouzou0208
V2EX  ›  程序员

不知道有同样喜欢跑步的程序员么, 我写了个项目让你可以打造自己的跑步主页

  •  9
     
  •   zouzou0208 · 2020-10-10 09:30:47 +08:00 · 12900 次点击
    这是一个创建于 1266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我跑步超过 20 年了~用不同 APP 记录自己跑步的数据已经超过 9 年.今年年初因为 runtastic 下架,决定自己管理自己跑步数据,顺便学下 react,便做了这个项目

    目前支持:

    • Strava
    • Nike Run Club
    • Runtastic(Adidas Run)

    后续会支持

    • 佳明,佳明中国
    • 悦跑圈
    • nike+strava, runtastic+strava

    项目地址 https://github.com/yihong0618/running_page

    可预览的地址

    截图:

    image

    ezgif-1-50e865bf9558

    第 1 条附言  ·  2020-10-10 11:36:50 +08:00

    忘了说,点击total和缩放地图是有彩蛋的 total + 缩放: image

    第 2 条附言  ·  2020-10-10 11:46:03 +08:00

    大部分能点击的地方都是可以点击的。 可以点击单个跑步的地图: image 列表也支持排序 image

    第 3 条附言  ·  2020-10-21 23:53:25 +08:00
    新增加了 佳明 佳明中国的支持

    keep 也即将支持,我搞定了接口和加密,因为我数据量不够,用 keep 的同学有私信帮帮我的么?

    之后会支持悦跑圈。
    非常感谢大家。
    第 4 条附言  ·  2021-01-26 08:50:17 +08:00

    更新:

    新增加了咕咚的支持 。

    至此,running_page 支持国内大部分主流运动 app --> keep, 咕咚,悦跑圈,佳明,国外的 --> garmin,Rutastic, strava, nike 支持。欢迎跑步的同学来玩。

    image

    168 条回复    2023-10-25 18:21:41 +08:00
    1  2  
    chaleaoch
        1
    chaleaoch  
       2020-10-10 09:43:27 +08:00   ❤️ 3
    厉害了厉害了.
    jokerli
        2
    jokerli  
       2020-10-10 09:45:07 +08:00   ❤️ 1
    哇 这个很不错了 可以做成小程序
    qping
        3
    qping  
       2020-10-10 09:47:49 +08:00
    数据从哪来的啊
    zouzou0208
        4
    zouzou0208  
    OP
       2020-10-10 09:48:35 +08:00
    @qping 项目介绍里有
    qping
        5
    qping  
       2020-10-10 09:49:01 +08:00
    @qping 知道了,没仔细看内容,被图片吸引了眼球。。。。做的很赞
    qping
        6
    qping  
       2020-10-10 09:50:07 +08:00   ❤️ 1
    @zouzou0208 国内的 app,像咕咚跑步会支持么
    zouzou0208
        7
    zouzou0208  
    OP
       2020-10-10 09:50:12 +08:00
    @qping Runtastic 我算是逆向的接口, nike 也是找 api(抓包啥的), strava 有开发者的 api. 悦跑圈我算是搞定了数据,佳明有 api~
    zouzou0208
        8
    zouzou0208  
    OP
       2020-10-10 09:50:51 +08:00
    @qping 咕咚我尝试了,理论可行,但是有一些路要走.可能需要时间.
    zouzou0208
        9
    zouzou0208  
    OP
       2020-10-10 09:51:15 +08:00
    @qping keep 比较麻烦.加密做的挺多的.
    LostPrayers
        10
    LostPrayers  
       2020-10-10 09:51:54 +08:00   ❤️ 1
    有点好奇这里面这个 gpx 数据, 是有一个通用标准吗?
    可以自己写个 app 记录这些信息吗(手机可能没运动手环那些准确,但是可以简单模拟嘛)
    qping
        11
    qping  
       2020-10-10 09:53:43 +08:00   ❤️ 1
    @zouzou0208 加油
    zouzou0208
        12
    zouzou0208  
    OP
       2020-10-10 09:54:13 +08:00
    @LostPrayers 是的.属于通用的交互格式,你可以 google 查一下.一般都用这个.另外还有两种 tcx 和 fit 佳明用的是 fit 但是可以互相转换. 地图也有特殊的交换格式叫 geojson.
    2. 可以的
    akiossdev
        13
    akiossdev  
       2020-10-10 09:57:21 +08:00   ❤️ 1
    羡慕健康的程序员
    z1154505909
        14
    z1154505909  
       2020-10-10 10:28:20 +08:00   ❤️ 1
    跑了快十年了,最开始没有 APP 记录,14 年开始用 APP 记录不过现在那些 APP 账号都忘了,17 年开始用悦跑圈,这周悦跑圈累计 1w 了,
    15 年开始骑行,也差不多五万公里了
    以前也想过要不要弄个地图,研究了下,觉得太麻烦了,就放弃了.哈哈哈
    zouzou0208
        15
    zouzou0208  
    OP
       2020-10-10 10:33:22 +08:00
    @z1154505909 哈哈悦跑圈理论可以搞定。如果搞定了我 at 你。就是研究接口,生成数据麻烦。我 runtastic 就是专门搞了个 repo https://github.com/yihong0618/Runtastic
    hjdtl
        16
    hjdtl  
       2020-10-10 11:16:28 +08:00   ❤️ 1
    有点好奇,为啥有这么多的一两公里的记录
    zouzou0208
        17
    zouzou0208  
    OP
       2020-10-10 11:21:06 +08:00
    @hjdtl 就是跑了 1-2km 。。。跑步比较看心情。
    Lax
        18
    Lax  
       2020-10-10 11:44:52 +08:00   ❤️ 1
    赞啊!
    我也曾想过自己管理数据,大部分 app 都没提供导出 gpx 功能,干脆写了个 app 用自己的旧手机作记录,还没做集中展示
    zouzou0208
        19
    zouzou0208  
    OP
       2020-10-10 11:46:58 +08:00
    @Lax 准确说是大部分“国内” app 哈哈。
    yanyueio
        20
    yanyueio  
       2020-10-10 11:52:52 +08:00   ❤️ 1
    "我跑步超过 20 年了"---了不起。
    haowen737
        21
    haowen737  
       2020-10-10 11:58:11 +08:00   ❤️ 1
    🐂🐂🐂
    zouzou0208
        22
    zouzou0208  
    OP
       2020-10-10 11:59:08 +08:00
    @yanyueio 哈哈,小学开始,那时候不懂就瞎跑。
    zouzou0208
        23
    zouzou0208  
    OP
       2020-10-10 12:00:02 +08:00
    @haowen737 谢谢~
    missdeer
        24
    missdeer  
       2020-10-10 12:02:40 +08:00   ❤️ 1
    被图片吸引了眼球,佩服楼主毅力
    zouzou0208
        25
    zouzou0208  
    OP
       2020-10-10 12:04:57 +08:00
    @missdeer 谢谢
    AmosAlbert
        26
    AmosAlbert  
       2020-10-10 12:11:33 +08:00   ❤️ 1
    我的毕设有着落啦,😂😂😂
    guanaco
        27
    guanaco  
       2020-10-10 12:19:36 +08:00 via iPhone   ❤️ 1
    我就想知道用什么替换 runtastic,10.1 还可以用,但到 6 号就不行了……
    zouzou0208
        28
    zouzou0208  
    OP
       2020-10-10 12:23:11 +08:00   ❤️ 1
    @guanaco 你没赶上。。。runtastic 需要把国家地区改成中国(大陆)以外的地方(因为在大陆下架了),没改的话会封停账号。我比较建议 Nike Run Club 。当然你有预算的话 strava 买高级会员也是可行的。如果不在意数据的话可以用国内的 app, keep 应该做的算是好的(其实我并不推荐)。
    guanaco
        29
    guanaco  
       2020-10-10 12:29:20 +08:00 via iPhone
    @zouzou0208 我试试现在修改是否行,主要是闪退,在闪退之前完成修改
    drawstar
        30
    drawstar  
       2020-10-10 12:31:57 +08:00   ❤️ 1
    这个项目好
    aleung
        31
    aleung  
       2020-10-10 12:38:23 +08:00   ❤️ 1
    做得不错,等着支持 garmin 。

    另外,可以通过 gpx 导入数据吗?草草扫了一眼 readme 好像没有提到。

    预览网站是不是没有彩蛋功能?不知道怎么触发。
    zouzou0208
        32
    zouzou0208  
    OP
       2020-10-10 12:44:14 +08:00
    @aleung 有的,用滚轮缩小地图。

    不完全是 strava 就是用的 api 。不同软件不同的方式

    感谢·
    xrr2016
        33
    xrr2016  
       2020-10-10 12:45:50 +08:00
    只用跑步机跑的咋办, 也没用 APP 记录...
    zouzou0208
        34
    zouzou0208  
    OP
       2020-10-10 12:46:40 +08:00
    @xrr2016 好像不行~
    xrr2016
        35
    xrr2016  
       2020-10-10 12:47:25 +08:00   ❤️ 1
    @zouzou0208 哈哈,项目挺好的,已 star
    abinnz
        36
    abinnz  
       2020-10-10 12:48:53 +08:00 via iPhone
    能支持 Keep 吗
    zouzou0208
        37
    zouzou0208  
    OP
       2020-10-10 12:50:09 +08:00
    @abinnz 有点难,我当时尝试 keep 数据没搞定。等我支持完其它几个会再尝试下。
    geniusmyn
        38
    geniusmyn  
       2020-10-10 12:57:45 +08:00   ❤️ 1
    厉害了厉害了.
    abinnz
        39
    abinnz  
       2020-10-10 13:01:26 +08:00 via iPhone   ❤️ 1
    很棒,我也抓 Keep 接口试下
    sheeta
        40
    sheeta  
       2020-10-10 13:01:42 +08:00 via Android
    楼主,本来我也打算基于 mapbox 做一个类似的,但是 mapbox 本地化实在蛋疼,表面上看着符合国内的地图标准,实际上某些地区还是有问题,自己用还好,做成产品给别人用估计会被喷,所以我就放弃了。
    zouzou0208
        41
    zouzou0208  
    OP
       2020-10-10 13:03:49 +08:00
    感谢反馈
    @sheeta mapbox 有部分本地化的,这块有个坑,我当时研究了好久,你可以参考下我代码里设置中文那块~。
    zouzou0208
        42
    zouzou0208  
    OP
       2020-10-10 13:04:14 +08:00
    @abinnz 如果搞定欢迎 pr, 太感谢了。
    atonku
        43
    atonku  
       2020-10-10 13:07:27 +08:00   ❤️ 2
    你随便写,能让我跑起来算我输🐶
    mxydsg8858
        44
    mxydsg8858  
       2020-10-10 13:33:34 +08:00
    看起来很不错
    mxydsg8858
        45
    mxydsg8858  
       2020-10-10 13:35:28 +08:00   ❤️ 1
    最后一张图很像跑跑卡丁车里面的一个地图:'森林发卡'
    zouzou0208
        46
    zouzou0208  
    OP
       2020-10-10 13:36:41 +08:00
    @mxydsg8858 大连的跨海大桥。。。
    RomanCavalry
        47
    RomanCavalry  
       2020-10-10 13:43:18 +08:00
    really cool
    EIlenZe
        48
    EIlenZe  
       2020-10-10 13:43:21 +08:00   ❤️ 1
    说起来 iPhone 刚开始那会儿 runtastic 就有了 那么多年了 hhh 以前骑车都要开着记录一下
    bitholic
        49
    bitholic  
       2020-10-10 13:46:09 +08:00   ❤️ 1
    cool
    s247769541
        50
    s247769541  
       2020-10-10 13:46:52 +08:00   ❤️ 1
    很棒~ 偶尔跑步,不像楼主跑这么多 太厉害了
    zouzou0208
        51
    zouzou0208  
    OP
       2020-10-10 13:47:38 +08:00
    @EIlenZe 是啊,所以生气,换了 nrc 之后决定自己备份一份数据
    Fooleap
        52
    Fooleap  
       2020-10-10 14:00:52 +08:00   ❤️ 1
    很有意思,收藏之。
    一样的喜欢跑步和地图,也折腾过在博客,简单显示跑步地图。
    zouzou0208
        53
    zouzou0208  
    OP
       2020-10-10 14:03:14 +08:00
    @Fooleap 哇塞,我很早之前尝试搞咕咚的数据看到过你的博客。非常漂亮。有缘。不过你当时的方法好像不行了~感谢你。
    z1154505909
        54
    z1154505909  
       2020-10-10 14:03:20 +08:00
    @zouzou0208 这种研究精神,点赞,我比较懒
    wang2018
        55
    wang2018  
       2020-10-10 14:14:30 +08:00   ❤️ 1
    非常棒,科技感十足,超酷,支持
    slamDunkLINk
        56
    slamDunkLINk  
       2020-10-10 14:19:14 +08:00   ❤️ 1
    楼主能支持小米运动吗,虽然可能量比较少?
    zouzou0208
        57
    zouzou0208  
    OP
       2020-10-10 14:21:12 +08:00
    @slamDunkLINk 有可能行。我没尝试,但是小米的接口一般不那么难(希望)。我记在 TODO List 了,谢谢反馈
    ixinshang
        58
    ixinshang  
       2020-10-10 14:21:20 +08:00   ❤️ 1
    最开始用很古老的 app 记录,但是不利于导出。
    后面换成了行者,但是这 APP 现在吃相有点难看,现在正在想是否有其他工具。
    aleung
        59
    aleung  
       2020-10-10 14:30:24 +08:00   ❤️ 1
    @zouzou0208 #32

    滚轮缩小后可以看到跑过的国家、省份等信息,但是没有显示打卡图和 over 10km runs,依然是 activities 列表。

    我意思是如果我自己已经有一堆 gpx 文件了,是不是可以放到哪个目录里再执行什么命令做处理?你现在的脚本似乎是将数据下载和数据处理合在一起的。我有些以前爬山记录的 gpx,如果能用你这个应用可视化也是相当好的。Garmin Connect 也可以手工下载 gpx 文件。

    另外,我也搜索到一个项目可以批量下载 garmin gpx 的,不过我还没空测试中国区能不能用,估计要换个 API endpoint 吧: https://github.com/pe-st/garmin-connect-export
    JimmyTinsley
        60
    JimmyTinsley  
       2020-10-10 14:31:08 +08:00   ❤️ 1
    厉害!!!
    ZhaoHongXuan
        61
    ZhaoHongXuan  
       2020-10-10 14:36:56 +08:00   ❤️ 1
    很酷,就是跑步记录都在 keep 上面,这几年也有 6000km 了,同时程序员差距好大,惭愧惭愧
    zouzou0208
        62
    zouzou0208  
    OP
       2020-10-10 14:39:00 +08:00
    @aleung
    1. 是的,我准备用类似的项目
    2. 佳明中国和佳明不是一套接口,有点麻烦,但是能搞定
    3. 你可以把 gpx 扔进去,但是得改下命名。改小一点的数字就行(我是利用 unixtime 命名)
    4. 你得运行这个命令(在 GitHub Actions 中你能看到, 更改一下你的变量)
    ```
    python scripts/gen_svg.py --from-db --title "${{ env.TITLE }}" --type github --athlete "${{ env.ATHLETE }}" --special-distance 10 --special-distance2 20 --special-color yellow --special-color2 red --output assets/github.svg --use-localtime --min-distance 0.5
    ```

    爬山的理论可以的,我之前做了,后来就是完全的跑步数据了(你可以参考我 blog 那块),因为计算心率和速度会有噪声。

    非常感谢反馈
    PS. 可以在 issues 中提,或者提 pr, 没意外的话我都会解决
    zouzou0208
        63
    zouzou0208  
    OP
       2020-10-10 14:40:01 +08:00
    @aleung 而且得先 sync 再生成 svg.
    Fooleap
        64
    Fooleap  
       2020-10-10 14:45:00 +08:00
    @zouzou0208 #53 嗯嗯,后面那个方法搞不出来咕咚的数据了。我后面主要用 Nike Run Club,算是比较稳定,就是突然砍掉分享图片的功能了。
    zouzou0208
        65
    zouzou0208  
    OP
       2020-10-10 14:46:40 +08:00
    @Fooleap 图片分享功能可以切换成 hk 解决,nike 接口和转换成 gpx 我代码中的可以参考~。我也觉得大陆用户目前 nrc 是相对好一些的选择。
    Fooleap
        66
    Fooleap  
       2020-10-10 14:49:50 +08:00
    @zouzou0208 #65
    这样啊,我还以为都没有了。好的谢谢,我有时间研究下。
    m3s
        67
    m3s  
       2020-10-10 15:00:44 +08:00   ❤️ 1
    感谢感谢 有空研究下 我用的是悦跑圈
    Cloutain
        68
    Cloutain  
       2020-10-10 15:02:15 +08:00   ❤️ 1
    坚持跑步一个月了 ,心率下降了很多,加油!!
    ershierdu
        69
    ershierdu  
       2020-10-10 15:09:49 +08:00   ❤️ 1
    请教几个问题:
    1.看楼主天天跑(还有一天跑两次的记录),膝盖撑得住吗?怎么保护的…
    2.看楼上的回复,楼主在东北,冬天怎么搞…我在长三角,10 多度就有点受不了了…
    bonfy
        70
    bonfy  
       2020-10-10 15:09:52 +08:00   ❤️ 1
    @zouzou0208 LZ 跑这么多 怎么保养膝盖的?
    zouzou0208
        71
    zouzou0208  
    OP
       2020-10-10 15:11:37 +08:00
    @ershierdu
    1. 膝盖还好,其实你可以看距离我要保养膝盖的时候就会只跑 1km,一定要买双跑鞋
    2. 我不太怕冷,跑起来就不冷了。相对来说,之前在沈阳,手机比我怕冷。
    zouzou0208
        72
    zouzou0208  
    OP
       2020-10-10 15:12:00 +08:00
    @bonfy 一双好鞋,跑前准备,跑后拉伸。
    mosesyou
        73
    mosesyou  
       2020-10-10 15:16:21 +08:00   ❤️ 1
    看起来好棒啊😂
    kermitlee
        74
    kermitlee  
       2020-10-10 15:16:39 +08:00   ❤️ 1
    不错的好项目! star 了,想去帮忙,等有空去去看看怎么搞(这么说来 keep 的数据挺安全?哈哈我一直用 keep,4 年了
    mutu
        75
    mutu  
       2020-10-10 15:17:37 +08:00   ❤️ 1
    楼主的想法很不错,数据都掌握在不同的跑步 app 中,同步给手机的只是一个汇总数据(至少国内的 keep 是这样的),自己能完全掌握好自己数据的话还是蛮不错的
    1. 自动同步 iOS 的健康数据,可能能实现,暂未调研
    2. 目前在用 keep 记录(周边小伙伴们都在用),但是对 keep 挺失望的,出 bug (我的组队数据丢失)反馈了好几天,客服总说帮我催。计划也研究下 keep,看能不能想法把里面的数据倒出来
    wupher
        76
    wupher  
       2020-10-10 15:18:23 +08:00   ❤️ 1
    COOOOL

    已 star
    zouzou0208
        77
    zouzou0208  
    OP
       2020-10-10 15:19:53 +08:00
    @kermitlee 也可能是我没得到要领~哈哈。欢迎欢迎,入口你可以参考 github actions 里的 yml,是靠这个穿起来的。
    zouzou0208
        78
    zouzou0208  
    OP
       2020-10-10 15:20:03 +08:00
    @wupher 谢谢
    AA5DE3F034ACCB9E
        79
    AA5DE3F034ACCB9E  
       2020-10-10 15:25:19 +08:00   ❤️ 1
    nice,希望早日支持悦跑圈,已 star
    ghostsf
        80
    ghostsf  
       2020-10-10 15:36:16 +08:00   ❤️ 1
    地图上的轨迹是多个经纬坐标点绘制的吗?
    wentian2
        81
    wentian2  
       2020-10-10 15:40:56 +08:00   ❤️ 1
    厉害了
    ghostsf
        82
    ghostsf  
       2020-10-10 15:42:13 +08:00   ❤️ 1
    mapbox 收费吗? 可以本地私有部署 ?
    sh1t0nu
        83
    sh1t0nu  
       2020-10-10 15:48:19 +08:00   ❤️ 1
    有意思!
    urusai
        84
    urusai  
       2020-10-10 15:53:27 +08:00   ❤️ 1
    有点意思,star 了
    zouzou0208
        85
    zouzou0208  
    OP
       2020-10-10 16:03:06 +08:00
    @ghostsf 是的,用的 geojson 。
    zouzou0208
        86
    zouzou0208  
    OP
       2020-10-10 16:03:37 +08:00
    @ghostsf 我用的免费的,目前看起来够用。你也可以用自己的 token
    zouzou0208
        87
    zouzou0208  
    OP
       2020-10-10 16:04:39 +08:00
    @mutu iOS 的数据不难,但是苹果的得手动导出不能自动化。每天自动 commit, 自动部署
    leeyom
        88
    leeyom  
       2020-10-10 16:21:13 +08:00   ❤️ 1
    我去,楼主可以啊,我目前跑了两年到三年吧,跑量在 3000 多,平均每年 1000 公里的目标,今年也是惭愧,到目前为止,只跑了 600 多公里,楼主能不能支持 keep 呢,目前所有的数据都在 keep 上
    zouzou0208
        89
    zouzou0208  
    OP
       2020-10-10 16:24:34 +08:00
    @leeyom 谢谢
    keep 不太确定~后续会看看。
    wh1012023498
        90
    wh1012023498  
       2020-10-10 16:30:18 +08:00   ❤️ 1
    明人不说暗话,我只喜欢吃。。
    guanhui07
        91
    guanhui07  
       2020-10-10 16:56:31 +08:00   ❤️ 1
    watana
        92
    watana  
       2020-10-10 17:20:41 +08:00   ❤️ 1
    楼主能分享下冬天跑步的着装吗?要保护膝盖的话,买双护膝的效果怎么样?
    zhangyl
        93
    zhangyl  
       2020-10-10 17:31:50 +08:00   ❤️ 1
    很棒,我开发了针对跑团管理的小程序——“跑跑糖”,已对接 Garmin 和郁金香,都有 api 。咕咚也有对外接口但是要收费,还挺贵。国内的 app 数据都不舍得外流,捂得很严实……
    runking
        94
    runking  
       2020-10-10 18:33:06 +08:00
    提醒下,楼主可能漏隐私了
    zouzou0208
        95
    zouzou0208  
    OP
       2020-10-10 18:47:35 +08:00
    @runking hi~谢谢,能私信我下么?我没记得我传过隐私的东西~。感谢 https://twitter.com/yihong06181
    zouzou0208
        96
    zouzou0208  
    OP
       2020-10-10 18:48:43 +08:00
    @watana 我没带过护膝,冬天的话就是很普通的卫衣,开始冷,跑起来就好了。
    outcastveron
        97
    outcastveron  
       2020-10-10 19:45:31 +08:00   ❤️ 1
    nike 已经荧光黄了,支持一下:)))
    zouzou0208
        98
    zouzou0208  
    OP
       2020-10-10 20:01:03 +08:00 via iPhone
    @outcastveron 太牛了,感觉我还得几年
    ZnBDPang
        99
    ZnBDPang  
       2020-10-10 20:19:52 +08:00
    这也太强了
    lsdk91
        100
    lsdk91  
       2020-10-10 21:04:58 +08:00
    @qping 自己跑啊
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3997 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 05:14 · PVG 13:14 · LAX 22:14 · JFK 01:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.