CLLocationManager随机性&速度

时间:2012-07-20 18:30:26

标签: objective-c ios cllocationmanager

使用CLLocationManager时,我注意到CLLocation生成的每个didUpdateToLocation点似乎存在很大的误差。我按照生成它们的顺序使用这些点的数组来计算用户移动的总距离。

由于这些读数不准确,我注意到在完全固定的设备上运行应用程序可能会导致“移动”的距离很大,而不会发生任何实际的移动。

这是我用来计算距离的代码

- (double) sendTotalDistance
{
    if (locations.count < 2) return 0;
    double howFar = 0.0;
    for (int j=0; j<locations.count-1; j++)
    {
        howFar += [[locations objectAtIndex:j] distanceFromLocation:[locations objectAtIndex:j+1]];
    }
    return howFar;
}

问题:补偿这些读数的随机误差的最佳方法是什么?

我正在考虑对点进行线性回归,但当然这会假设用户正在排成一行。我一直在尝试集思广益,在计算中包含读数的准确性,但我能想到的所有方法都会做出很多假设或引入其他形式的错误。

更新:我现在正在尝试提高更新率并平均一些值。问题是这假设错误是均匀分布的。

更新:我一直在记录程序报告的各个位置,我注意到了描述中的speed=-1.0变量。这个变量有多准确?如果它足够准确,似乎可以忽略小于或接近0速度的测量值。

0 个答案:

没有答案