2009-12-14 3 views
1

Я использовал диспетчер CLLoction, чтобы получить location.but, когда когда-либо я начинаю свое местоположение, тогда он дает мне oldlocation, который хранится в устройстве ранее.i хочу сбросить местоположение для этого я использовал флаг при первом запуске приложения я использовал newlocation и call stopupdateinglocation и startupdatinglocation метод. Но oldlocation не изменился, он показывает старое местоположение.CLLocation manager Дает мне старую позицию

ответ

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 
    } 
} 
+0

Я не могу получить старое местоположение в быстром коде выше. есть ли какие-либо методы для получения старого местоположения? –

0

Вы не можете очистить старое местоположение, но вы можете проверить horizontalAccuracy, чтобы узнать, хорошее ли это местоположение (текущее) или что-то старое и не имеет значения.

+0

oldlocation означает, что если я начну свое приложение, а GPS получит координацию, и после прогулки 5KM я запустил приложение еще раз, а прежнее местоположение GPS - прежнее. Я вычисляю расстояние в моем приложении, он показывает движение 5KM, но я запускаю свое приложение и не перемещаюсь. – user226284

+1

Используйте метку времени. – 2009-12-14 08:27:45

Смежные вопросы