Как рассчитать скорость с местоположением ядра? - PullRequest
3 голосов
/ 23 июля 2010

мне нужно получить скорость моего устройства (в метрах в секунду), и это мой код, скорость всегда равна 0, я не понимаю.

  - (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];

спасибо

Ответы [ 2 ]

1 голос
/ 23 июля 2010

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

0 голосов
/ 23 июля 2010

Вы должны сделать расчет самостоятельно.Как то так:

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];
...