我在用 CLLocation.speed 获得设备移动的速度,但我每次都得到 0。我试过

speed = ([newlocation getDistanceFrom:oldlocation]/[newlocation.timeStamp timeIntervalSinceDate:oldlocation.timeStamp])

问题是它偶尔会给出错误的速度。

有帮助吗?

解决方案

有一个小配置可以帮助您:

  1. CLLocationManager 除非用户移出当前位置的圆圈,否则不会向您发送更新。您可以控制圆的半径(使其更小),以便获得更精细的更新。看 距离过滤器.

  2. CLLocationManager 有一个精度控制,您希望将其设置为最佳水平。看 期望准确度.

最好的选择就是不断计算这个“速度”并使用弱低通滤波器来平滑结果。

另请参阅此问题以获取更多信息: iPhone核心位置:如何获得最准确的速度.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top