在Android上跑步时如何计算距离?
我知道有三种方法在Android上跑步时如何计算距离?,android,gps,accelerometer,Android,Gps,Accelerometer,我知道有三种方法 基于GPS的:以较小的时间间隔(5-10秒)累计短距离行驶(使用Location.distanceTo计算),但此方法容易出现GPS错误,且不适用于室内或短距离行驶区域(如小公园) 加速度的二次积分:我可以对加速度计数据进行二次积分来计算距离,但加速度计读数中的噪声可能会导致误差累积 步长计数:我可以通过测量加速计数据中的峰值或使用Google Fit API检测步长,然后将总步长乘以平均步长。但这里的问题是计算出平均步幅 我倾向于使用#3,因为它在室内工作,不太容易出错或电池
有人知道这些方法的任何组合可以获得最佳结果吗?或者其他完全不同但有效的方法?这是一种工程——没有简单的答案;) 你提到的所有这些方法都有其优缺点 GPS跟踪不会汇总每个测量的误差-这很好,但另一方面,每个位置都会有明显的误差。更重要的是,在建筑物中使用应用程序时,你会遇到问题。 当时间误差增长到大数值时,加速度的双重积分在小距离上工作得很好。也很难创建以适当方式计算它的程序。有很多重要的问题,例如采样或旋转时间和平移矩阵计算,使得这些应用程序在android上非常麻烦 在我的应用程序中,我使用了以下algorytm:
- GPS和加速计测量值非常不同
- 基于加速度计的算法发现,计算出的四元数与磁强计所说的不同
- 测量得到的速度或加速度大于给定值
希望能有所帮助我知道解决方案并不简单。什么是基于加速度计的算法?第三步速度的“给定值”是多少?