вопрос расчета скорости iPhone iPhone - PullRequest
0 голосов
/ 18 июня 2011

В моем приложении я использую LocationManager для получения местоположения, также я хочу вычислить РАССТОЯНИЕ, СКОРОСТЬ и ВРЕМЯ.

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

Для получения местоположения я использую следующий код.

CLLocationManager *locManager ;
float fltDistanceTravelled; 
double calculatedSpeed;

//===============
locManager=[[CLLocationManager alloc] init];
locManager.delegate=self;
locManager.distanceFilter=25.0f;
locManager.desiredAccuracy=kCLLocationAccuracyBestForNavigation;
[locManager startUpdatingLocation];
//=====================

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{
    if(newLocation && oldLocation)
    {
        // getting distance
        fltDistanceTravelled +=[self getDistanceInKm:newLocation fromLocation:oldLocation];
    }
    if(oldLocation != nil)         
    {
        CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation];
        NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];
        // calculate speed
        calculatedSpeed= (distanceChange / sinceLastUpdate) * 3.6;       
    }
}

но этот код возвращает неправильные значения рассчитанной скорости (скорости) автомобиля.

1 Ответ

0 голосов
/ 28 июня 2011

Вы уже получаете данные о скорости в методе делегата.

CLLocation имеет свойство speed

Вместо того, чтобы пытаться вычислять его самостоятельно,просто получите это от newLocation.speed.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...