为啥我的 GPX 上传不显示在我的 Strava 仪表板上?

Posted

技术标签:

【中文标题】为啥我的 GPX 上传不显示在我的 Strava 仪表板上?【英文标题】:Why my GPX uploads don't show up on my Strava dashboard?为什么我的 GPX 上传不显示在我的 Strava 仪表板上? 【发布时间】:2021-01-08 04:28:21 【问题描述】:

我正在开发一个移动应用程序,它能够记录室内骑行的 GPS 数据,就像运动员绕着赛车场转圈一样。根据动感单车提供的速度测量值计算 GPS 点相对容易(与任意 GPS 路线相比)。

该应用正在使用 Strava API 以 GPX 格式(更准确地说是 gpx.gz 以加快速度)上传我记录的活动。该应用程序获得OAuth 令牌"activity:write" 范围。上传 POST 返回 201,上传也很快完成,并显示 200 成功代码。但是,在我查看我的 Strava 用户仪表板后,没有显示任何活动。当我尝试通过 Strava 的 Swagger API 游乐场查看上述活动时,它告诉我“未找到记录”。

curl -X GET "https://www.strava.com/api/v3/activities/4381960409" -H "accept: application/json" -H "authorization: Bearer zzzzzzzzzzzzzzzzzzzzzzzzzzzz"

https://www.strava.com/api/v3/activities/4381960409

  "message": "Record Not Found",
  "errors": [
   
    "resource": "Activity",
    "field": "id",
    "code": "invalid"
   
  ]

“迷失在以太中”的示例活动 ID:4381670165、4381744693、4381960409。

我的问题是我没有任何关于可能出错的调试信息。我收到成功代码,但这些活动从未真正实现。此外,我无法通过他们的 Swagger 检查上传的状态,因为那里的 OAuth 令牌只有读取权限。

由于我正在生成 GPX 文件,因此我通过手动上传来测试它们。第一个是虚拟骑行 (https://www.strava.com/activities/4094942758),第二个是标记为室内骑行 (https://www.strava.com/activities/4094974788) 的骑行。它们都没有显示任何 GPS 数据。但是该文件包含数据。

所以也许 GPX 文件有问题?这是两个:https://drive.google.com/drive/folders/1dkUvrLxW2r3tvQqvoqAkOB9998N9uLn7?usp=sharing

该应用程序是用 Flutter 编写的,并使用了我的 strava_flutterrw_tcx 的派生词。

                        final stravaService = Get.find<StravaService>();
                        await stravaService.login();
                        final records = await _database.recordDao.findAllActivityRecords(activity.id);
                        final statusCode = await stravaService.upload(activity, records);
                        if (statusCode == statusOk) 
                          activity.uploaded = true;
                          await _database.activityDao.updateActivity(activity);
                        

正如我所提到的,它成功完成,上传 POST 然后返回 200,这是 strava_flutter 的胆量。

【问题讨论】:

【参考方案1】:

我犯了多个错误:

    我正在处理多种文件格式(FIT、GPX、TCX),而我上传的实际文件是 TCX。感谢 Strava 开发人员,系统能够优雅地吞下它并从 TCX 中提取信息,没有返回错误代码。这很顺利。 GPS 不显示的主要原因:我交换了经纬度坐标。不幸的是,这也可能令人困惑,特别是如果有人累了。 https://macwright.com/lonlat/ 经过一些额外的修正后,GPS 现在显示:https://www.strava.com/activities/4104607928

【讨论】:

以上是关于为啥我的 GPX 上传不显示在我的 Strava 仪表板上?的主要内容,如果未能解决你的问题,请参考以下文章

Strava (GPX) <type></type> 元素是啥意思?

我的wordpress里上传图片为啥显示成功,但是无法显示?

为啥 event.target.files[0].name 在我的代码中显示错误?

注册 GPX(或 XML)文件以在 iOS 应用程序中打开

为啥 logcat 在我的 Android 中不显示任何内容?

连接 GPX 跟踪点