评估用户所在位置GPS传感器数据准确性的最佳方法是什么?

Rup*_*esh 2 iphone gps

我想使用最好的坐标.但有一件事令我困惑

在这里,我想检查一下,如果新的位置准确性更好,那么使用新位置,否则使用旧位置

if (newLocation.horizontalAccuracy>oldLocation.horizontalAccuracy)
{
    self.bestEffortAtLocation=newLocation; // this mean new location is better accurate
}
else
{
    self.bestEffortAtLocation=oldLocation; // this mean old location is better accurate
}
Run Code Online (Sandbox Code Playgroud)

我想知道上面的检查是否正确?

我知道这是一个愚蠢的问题.但现在在这个时候我处于表面水平.

请建议

Joh*_*lla 8

这不是一个好主意.为了解原因,我们假设我们在时间t A(t)调用准确度,它将以米为单位给出.我们可以想象以下情况:

  • A(0)=米
  • A(t)= n> m米
  • v(0)= k米/秒,其中k/t> m
  • 区间[0,t]上的零加速

那是:

  • 在零时刻,您的准确度是一些值m米.
  • 稍后t,您的准确度会更差n.
  • 你在时间零速度将携带您的半径范围之外m后的时间t.
  • 你有恒定的加速度,所以你的速度不会改变.

使用您的算法时,您可能会拒绝使用新的GPS位置,t因为n比较差m,即使用户不可能在旧位置附近.他们的速度超过了半径m.那显然不对.

相反,这是一个基本的算法来决定新位置是​​好还是坏?

  • t每个周期间隔为秒,存储(L, v, A)包含用户的位置L,速度v和精度A的3元组.

  • 在某些时候,u您想知道对用户位置的最佳猜测是什么.

  • 一次检查位置u - t.如果A old > A new(请记住,如果以米为单位测量的精度值越高,则使用新位置,因为它更准确).

  • 如果一个旧的 <一个新的,事情有点不同.如果A/t超过2v,用户可能仍在精度圈内,所以使用旧的L.但如果没有,那么用户已超出精度圆的范围,所以使用新的L.