0

我正在使用 Google Fit REST API(通过 Google Java 客户端库)将活动发布到 Google Fit。

总之,我正在做的是创建三个DataSet涵盖给定时间段的 s:

  • "com.google.location.sample"- 地点
  • "com.google.step_count.delta"- 脚步
  • "com.google.calories.expended"- 卡路里

...然后创建一个Session,最后是DataSet一个 Activity Segment (在这种情况下,所有时间都是步行)。

这基本上一切似乎都有效 - 我可以查看http://fit.google.com,我可以看到活动,以及正确的时间、位置、持续时间、步数和卡路里。问题出在地图上……它只显示了整个步行区域的阴影圈-它没有显示我在该位置中包含的轨道/路径DataSet

编辑...这是它的外观示例(在 Web UI 中)。

当所有其他活动都完美显示时,为什么这不会正确显示?

这些是我的一些怀疑

  • 我的数据没有altitudeor accuracy- 这是"com.google.location.sample". 所以我设置altitude为 0.0(米),并设置accuracy为 5.0(米)。我特别想知道谷歌是否对我将每个点的高度设置为 0.0 的反应很糟糕?
  • 我的位置 DataSet 中有 100DataPoint秒,而按步数和卡路里每个DataSet只有一个DataPoint- 即我只有步行的总步数和总卡路里。所以存在不一致(每个数据集的最早开始日期和最晚结束日期相同)

任何人都可以就为什么会发生这种情况提供任何指导吗?

4

1 回答 1

0

认为这可能是由于数据点冲突。如此处所述。虽然这是针对 Android 的 API,但我认为在使用 REST API 时也是如此。

DataPoint应用程序中的每个都DataSet必须有一个startTime和一个 endTime,它定义了一个唯一的间隔,实例DataSet之间没有重叠。DataPoint如果您的应用尝试插入DataPoint与现有DataPoint实例冲突的新实例,DataPoint则会丢弃新实例。要插入DataPoint可能与现有数据点重叠的新点,请使用HistoryApi.updateData更新数据中描述的方法。

您提到数据点的日期相同。因此覆盖其他的,它只被视为一个。

对于您的com.google.location.sample数据类型字段。认为最好让它们保持原样。尽量不要放置静态值和 for altitudeand accuracy

于 2016-04-09T11:09:54.833 回答