1

我使用 CLLoction 管理器来获取位置。但是当我开始我的位置时,它会给我以前存储在设备中的旧位置。我想为此重置位置我在第一次启动应用程序时使用了标志我使用了 newlocation 并调用 stopupdateinglocation 和startupdatinglocation 方法。但是 oldlocation 没有改变它显示旧位置。

4

2 回答 2

6

每个CLLocation人都有一个timestamp属性,您可以使用它来过滤所有对于您的使用来说太旧的位置更新。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSTimeInterval age = [newLocation.timestamp timeIntervalSinceNow];
    if(age < SOME_CONSTANT_IN_SECONDS)
    {
        //Use location
    }
}
于 2009-12-14T08:19:01.003 回答
0

您无法清除旧位置,但您可以检查 Horizo​​ntalAccuracy 以了解这是一个好的位置(当前)还是旧的和不相关的位置。

于 2009-12-14T08:13:53.060 回答