2010-07-23 7 views
3

Мне нужно получить скорость моего устройства (метры в секунду), и это мой код, скорость всегда 0, я не понимаю.Как рассчитать скорость с помощью Core Location?

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ 

     double gpsSpeed2 = newLocation.speed; 

     labelm.text = [NSString stringWithFormat:@"%f",gpsSpeed2]; 
    } 



locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 
locationManager.distanceFilter = kCLDistanceFilterNone; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[locationManager startUpdatingLocation]; 

благодарит

ответ

-1

Вам нужно сделать расчет самостоятельно. Что-то вроде этого:

if (oldLocation != nil) 
{ 
    CLLocationDistance distance = [newLocation getDistanceFrom:oldLocation]; 
    NSTimeInterval timeElapsed = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp]; 

    // Use distance and timeElapsed to calculate speed 
} 
else { 
    // We don't have and old time, so can't calculate speed 
}  

oldLocation = [newLocation retain]; 
1

Я никогда не пробовал раньше, но, вероятно, его лучше, если вы установите distanceFilter в менеджере местонахождения ряда как 1 метр и рассчитать время. затем вычислить скорость.

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