如何使用CLLocationManager主动跟踪距离



我想知道如何使用CLLocationManager主动(准确)跟踪用户的行程。目前我的代码如下:

- (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation {
    totalDistance += [newLocation distanceFrom:oldLocation] / kMilesToMeters;
}

然而,当我用里程表检查时,结果非常不准确。有没有一种更准确的方法可以在用户移动时主动计算距离?

感谢

GPS非常不准确。有时它可以把你"传送"到其他地方,然后带你回去。所以你要做的第一件事就是过滤掉所有的虚假数据。你可以忽略变化太频繁的位置:例如,GPS告诉你在p1(x,y),几秒钟后它告诉你在p2(x+20m,y+10m),它告诉你的位置是p3(x+2m,y+3m)。很明显,p2可能是错误的位置,你可以忽略它

另外,一个好主意是不要直接使用位置来计算距离,而是逐步逼近这些值(也许最小二乘法对你很好,或者如果你喜欢硬数学,那么你可以看看卡尔曼滤波器)。

最新更新