0

我目前正在开发一个健康/健身应用程序,该应用程序应该跟踪用户在锻炼期间的瞬时速度(跑步、骑自行车等......)。应用程序必须能够给出实时指令,因此速度必须尽可能准确并且刷新频率很高。

我已经在这里找到了一个很好的教程,其中当前速度是使用距离和时间计算的,并与之前计算的 3 个速度进行平均。如果我更改一些定义,这似乎可以完成工作,但是对于如此简单的事情,整个代码有点复杂。另外,我知道CLLocation该类具有speed提供相同信息的属性。

所以我的问题是:哪种方式最能获得瞬时速度?或者换句话说,CLLocation'sspeed属性是否足以满足这种用法?

谢谢 !

4

2 回答 2

0

您可以获得的最佳价值是 GPS 速度。因此,请确保您已将 GPS 设置为 AccuracyBest 并读取 CLLocation 速度属性。

你移动得越慢,它就越不准确,就像所有的 GPS 设备一样。对于汽车典型速度,您可以预期 0.1 公里/小时的精度。

于 2013-09-18T19:24:41.010 回答
0

来自Apple 参考

speed
The instantaneous speed of the device in meters per second.

@property(readonly, NS_NONATOMIC_IPHONEONLY) CLLocationSpeed speed
Discussion
This value reflects the instantaneous speed of the device in the direction of its current heading. A negative value indicates an invalid speed. Because the actual speed can change many times between the delivery of subsequent location events, you should use this property for informational purposes only.

Special Considerations
In iOS, this property is declared as nonatomic. In OS X, it is declared as atomic.

Availability
Available in OS X v10.7 and later.
Declared In
CLLocation.h

听起来 Apple 认为它并不准确。也不是。

编辑——这是一个相关的问题,同样的问题和一些建议。

于 2013-09-18T13:46:35.677 回答