龙空技术网

Keep跑步产品背后的路线设计

Keep自由运动场 676

前言:

当前大家对“微信接口开发跑步路线”大体比较着重,看官们都想要分析一些“微信接口开发跑步路线”的相关资讯。那么小编在网络上收集了一些对于“微信接口开发跑步路线””的相关资讯,希望同学们能喜欢,你们快快来了解一下吧!

前言

随着越来越多的跑步、骑行用户选择 Keep 进行记录,我们在时空两个维度上沉淀了越来越多的数据。在对这些数据进行组合后,不同地域的运动轨迹映射出了纷繁复杂而又极具特色的城市肌理,仿佛一幅构思精妙的延时摄影:

这些轨迹热点客观反映了城市里热门的运动线路,而这些轨迹数据对于我们帮助用户合理规划跑步和骑行活动,甚至是在帮助进行城市空间规划、人行道和自行车道的布局上都能起到积极的作用。

针对前者,我们发现各种问答网站上都散落着这样的需求:在知乎和百度知道上用「城市」和「跑步路线」为关键词会搜到大量的问答内容;各类咨询网站也常见某某城市十大热门跑步线路等榜单。因此,我们自然地希望通过结构化的产品形态把这些内容落地到跑步模块中,让用户更方便地发现身边适合跑步的路线。

跑步路线产品形态

在思考产品时,我们想照顾到各个层次用户的需求。针对 Keep app 内数量众多的初级跑者,希望以「城市向导」的身份给这些用户推荐路线。因此,除了展现路线本身的轨迹、海拔等信息外,也希望把路线上的风土人情图文并茂地展示出来。无论你是小白还是大神,不管是你熟悉的还是短暂停留的陌生城市,都希望你能发现适合的跑步路线,激发你运动的冲动。

*注:在跑步子首页和地图页面推荐的附近热门跑步路线。

自然地,基于这些跑步路线实体我们聚合了同一条路线下的跑步记录。用户可以看到这条路线下的动态、打卡榜、成绩榜等信息。对于路线上最近一个月打卡天数最多的人,我们会授予「路线主任」的头衔,作为你勤劳圈地捍卫主权的一种奖励,也希望你因此能被更多人关注到。

*注:垄断红领巾公园路线主任的用户和激烈争夺中的奥森南园跑道。

相较而言,路线下成绩榜的展现更偏向「硬核」用户:用户可以对比自己历次的路线成绩,也可以看看这条「城市赛道」上谁是速度之王。在记录的匹配上,为了尽量公平和排除不同客户端硬件设备的差异,我们在成绩的计算中尽量模拟实地比赛的情况:可以把过程想像成街机里的赛车游戏:在赛道/路径上会有许许多多个关卡(Checkpoint),根据你通过的关卡的数量,我们会告知是否在按照预定的线路在完成比赛。而由于通过关卡时记录带着时间戳,我们也就知道了你在路线上的成绩。

*注:奥森南园的路线成绩榜

当然实际情况没有这么理想。跑步路线的类型各异,需要不同的匹配模式去对应不同情况:比如一条封闭的天坛公园环线,起终点并不固定,这种情况下我们需要根据跑者实际的跑步轨迹动态地匹配进入环线的点,以此作为起终点再进行匹配度的计算。在后台实现上,我们主要使用了 Geohash, KD tree 等算法满足快速的路线匹配和成绩计算需求。

*注:路线匹配的示意图。

路线内容的生产

PGC 内容

我们比较早地确立了通过 PGC + UGC 的方式进行内容的生产。针对 PGC 内容,通过技术 + 运营的手段梳理历史数据,进行内容的准备工作。主要的手段包括但不限于:

A:对于开跑时间和地点相近,距离近似的跑步数据进行聚合。

B:通过现有的城市跑步路线榜单等信息,确定起终点和距离,匹配数据路中近似的跑步数据。

C:计算跑步数据的质心,把质心相近的跑步路线进行聚合。

D:抓取高校列表,通过地理信息编码获取经纬度,并通过运营工具生成高校田径场。

方案 A 获得的数据聚合有很强的群体活动性质。由于成规模的跑团活动一般有比较好的计划性,获取到的路线质量较高;方案 B 获得的路线质量同样很高。但由于人工参与的部分比较多,效率较低。方案 C 获得的路线数量最多,路线聚合则有很强的图形属性。由于算法特性,匹配到的多是封闭的绕圈路线,其中以操场路线最为典型,和方案 D 结合比较有效。

UGC 内容

在产品上线 PGC 内容冷启动之后,跑步路线内容的生产更多地转向自于用户提交。通过在产品中增加投稿入口以及运营线上的征集活动,我们每天都收到来自全国各地甚至是海外的提交。

*注:跑步等级 R5 以上的用户可以在记录中提交投稿,看每天收到的来自世界各地的投稿会有春晚贺电的既视感。

后台处理工具

在人力有限的情况下,后台工具的搭建对于提高处理速度和在没有「本地向导」的情况下完善内容尤其重要。跑步路线的生成、审核、下架等一系列流程都在我们的 CMS 后台完成。针对图片和内容,我们借助 Foursquare 的 API 接口获取 POI 图片和点评信息;针对海拔信息,通过接入 Google Elevation API 进行校准;针对轨迹信息,主要使用了 Mapbox 和 Turf.js 对点集进行查看、裁剪、标准操场生成等操作。

*注:图为一个标准的 400m 操场。通过点击确定操场的两个顶点,此时程序依据两点距离判断是否 200/300/400 标准操场中的一种,再按照相应的操场规格绘即可还原完整的操场路线。

*注:路线列表的管理后台。黄色代表上传未审核;灰色代表审核通过未上线;绿色为已上线。

*注:图为跑步路线详情的管理后台。地图上的圆点是通过 Foursquare 获得的 POI,圆圈大小表示了它的热门程度。每个 POI 下有图片和点评等信息。

总结

细心的用户可能会发现。在 4.0 上线之后,Keep 的产品定位从「移动健身教练」升级成「自由运动场」。一方面我们希望囊括更多的运动品类,给用户提供一站式的运动解决方案;另一方面也是希望给更多人创造条件在 Keep 里产生更多的社交互动。

跑步路线可以算是我们在跑步社交上的一种尝试,每一条路线都是一个小型的运动「场」,有点像 Ingress 里能量塔或者 Pokemon Go 里的道馆,我们相信基于 LBS 的运动社交或能有更多有趣的玩法。健身和跑步都是孤单的运动,但我们希望你在 Keep 里即使是独自运动也能不感到孤独。

---------------------------------------

关于 Keep:

互联网健身 App「 Keep-移动健身教练」,在各大应用市场搜索 Keep 即可下载,为你量身打造最适合自己的健身计划。

微信公众号:Keep,分享最实用的健身知识、最有趣的生活指南

标签: #微信接口开发跑步路线