2013-08-05 2 views
1

Я использую следующий код для обновления местоположения после каждого 0,1 секунды -Вычислить точную скорость с помощью GPS

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CLController = [[CoreLocationController alloc] init]; 
    CLController.delegate = self; 


// set auto update timer 
    currentTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self 
                selector:@selector(updatestart) userInfo:nil repeats:YES]; 

} 

-(void)updatestart 
{ 

     [CLController.locMgr startUpdatingLocation]; 
} 

И тогда я пытаюсь вычислить скорость, используя

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    [locMgr stopUpdatingLocation]; 

NSLog(@"%f",newLocation.speed); 
} 

я получаю скорость в метрах/сек, но через некоторое время процесс замедляется, и даже когда я останавливаюсь, скорость вычисляется.

Я хочу получить точную скорость и показать предупреждение, если скорость выше 12 км/час.

Есть ли другой подход, который я могу использовать, чтобы найти то же самое?

Спасибо ..

+0

Как вы можете знать, что вы переехали, или что вы начали снова, если вы не продолжаете измерять? 0 м/с - такое же допустимое измерение скорости, как и 12 м/с. – Caleb

ответ

3

Запуск и остановка менеджер местоположения, как это не способ сделать это. Вы не можете заставить его предоставлять больше обновлений местоположения. Оставьте его включенным и усредните обновления местоположения с течением времени. Чтобы получить максимальную точность, используйте kCLLocationAccuracyBestForNavigation для менеджера .

+0

Если я не принудительно запускаю и останавливаю место обновления, он показывает мне обновленное местоположение только пять раз и останавливается после этого. – Rohan

+0

Теперь он отлично работает. Но проблема, с которой я сталкиваюсь, заключается в том, что она обновляет мою скорость после задержки 2-3 секунды. Также я хочу упомянуть, что я использую GPS для получения местоположения. Есть ли что-нибудь, что я могу сделать, чтобы сделать его идеальным? – Rohan

+0

Вы можете попробовать использовать свойство 'speed'' location', но я не уверен, что это будет более точно. Вам просто нужно подождать, пока GPS не получит исправление, прежде чем вы сможете точно измерить. –

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