将位置数据添加到Google Fit



我正在用Python编写一个应用程序,将数据添加到Google Fit中。我成功地创建了数据源,并添加了带有心率、节奏、速度、步数等点的数据集,以及这些数据集的会话。

我现在正试图添加位置数据,以便Google Fit中的活动显示活动地图,但运气不佳。我不清楚的是,虽然上述所有项目都是一个数据点,但根据https://developers.google.com/fit/datatypes/location#location_sample.

数据点中的这4个不同项目是否需要以任何方式命名,或者我只是按照上面参考文献中描述的顺序将它们依次添加为4个fpVals?也就是说,在为数据集的补丁操作构建points数组时,我是否只是将它们添加到值数组中,如下所示:

gfit_loc.append(dict(
dataTypeName='com.google.location.sample',
endTimeNanos=p.time.timestamp() * 1e9,
startTimeNanos=p.time.timestamp() * 1e9,
value=[dict(fpVal=p.latitude),
dict(fpVal=p.longitude),
dict(fpVal=10),
dict(fpVal=p.elevation)]
))

其中数据集添加了:

data = service.users().dataSources().datasets().patch(
userId='me',
dataSourceId='raw:com.google.location.sample:718486793782',
datasetId='%s-%s' % (min_log_ns, max_log_ns),
body=dict(
dataSourceId='raw:com.google.location.sample:718486793782',
maxEndTimeNs=max_log_ns,
minStartTimeNs=min_log_ns,
point=gfit_loc
)
).execute()

所以事实证明,除了一个小异常,我做的每件事都是正确的。我将活动类型设置为95,这被定义为步行(跑步机(,用于我的原型中的所有活动。我还没有允许用户指定活动类型,而且考虑到95是一项室内跑步机活动,Google Fit只是没有以地图的形式显示该活动的任何位置数据。

一旦我开始使用非跑步机活动类型,地图就开始出现在我的谷歌健身活动中。

最新更新