首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算在Android上跑步的距离?

如何计算在Android上跑步的距离?
EN

Stack Overflow用户
提问于 2016-02-01 15:12:37
回答 1查看 816关注 0票数 2

我知道有三种方法

  1. 基于GPS的:在较小的时间间隔(5-10秒)内将短距离加起来(使用Location.distanceTo计算),但这种方法容易产生GPS误差,不会在室内或短跑区域(如小公园)工作。
  2. 加速度的双积分:I可以对加速度计数据进行双积分来计算距离,但加速度计读数中噪声引起的误差可能会加在一起。
  3. 步骤计数:I可以通过测量加速度计数据中的尖峰值或使用Google来检测步骤,然后将步骤总数乘以平均步长。但这里的问题是计算出平均步长。

我倾向于使用#3,因为它在室内工作,不太容易出错或电池耗尽。但是我如何获得每一步的平均步长,特别是当跑步者的步长在短跑和慢跑时发生变化时。

有没有人知道这些方法的任何组合才能得到最好的结果?或者其他完全不同但有效的方法?

EN

回答 1

Stack Overflow用户

发布于 2016-02-01 15:57:12

嗯,这是工程,没有简单的答案;)你提到的所有这些方法都有它们的优缺点。

GPS跟踪不会对每次测量的误差进行评估--这是很棒的,但另一方面,每个位置都会出现明显的误差。更重要的是,你在建筑物中使用你的应用程序会有问题。加速的双重集成在很小的距离上会产生很大的效果,时间误差会增长到很大的数目。也很难创建程序,以适当的方式计算它。有许多重要的问题,如采样或旋转时间,以及转换矩阵的计算,使这些应用程序在android上非常困难。

在我的应用程序中,我使用了以下算法:

  1. 从全球定位系统(从网络提供商或全球定位系统提供商-最佳精度胜利)计算位置
  2. 开始使用基于加速度计的算法。
  3. 在下列情况下停止使用基于加速度计的算法:
代码语言:javascript
运行
复制
- GPS and accelerometer measurements are very different
- Accelerometer-based algorythm finds that calculated quaternions are different from what magnetometer says.
- The velocity or acceleration from measurments is bigger than given value.

  1. 转到第1点

希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35133926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档