iPhone加速度计功能计算步数的逻辑

4

如何利用iPhone中的加速度计功能在步行时计算距离?


1
这不是一个完整的答案,但如果你真的必须使用加速度计来实现这个功能,那么我认为你将不得不实现一个步数计算器。它只是一个加速度计,并不是惯性导航系统。 - Nimrod
有人能提供使用加速度计计步的示例代码吗? - user607688
2个回答

2

您无法使用加速度计来确定距离。

如果我静止不动,加速度计仅会检测到由于重力引起的加速度。这显然将步行距离设置为0。

但如果我以恒定的速度行走,并在行走时启动您的应用程序,则我的加速度也为零,因此加速度计再次仅检测到由于重力引起的加速度。情况与上述相同,步行距离为0,这是不正确的。

更不用说处理设备方向变化引起的加速度变化的困难了。

需要使用核心位置技术来计算任何与距离有关的内容。您可以使用加速度计来实现计步器,但那只能计算步数,而不能计算距离。


嘿,我已经得到了逻辑。在获取加速度向量后,我们可以通过设置某个阈值来检查它。如果匹配或接近,则计数会增加。然后我们间接地得到步数。步数*步长=行程距离。 - user247514
1
实际上你可以这样做。你需要对加速度进行两次积分以得到位置(加速度=>速度=>位置)。我曾经使用Wii遥控器完成了这个过程,而且它确实有效,但你需要一个非常受控制的环境。任何颠簸或震动都会完全破坏它。 - Martin Wickman

1

这个问题最好使用核心定位来解决。

实际上,在Bill Dudney和Chris Adamson的《iPhone SDK Development》第24章“iPhone定位API”中创建了一个计算步行距离和速度的示例应用程序(iPhone SDK开发)


1
如果可能的话,那就太理想了,但是这个假设并不适用于使用没有 GPS 的 iPod Touch,而只适用于使用 iPhone 的用户。 - Nimrod
1
核心位置信息在所有设备上都可用,但显然,具备 GPS 的设备可能更受欢迎或者根据应用需求必需。 - gerry3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接