2011-06-18 2 views
0

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

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

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

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

Пожалуйста, правильно отформатируйте свой вопрос – PengOne

+0

извините за это. Я прямо сейчас отформатировал его ... любую помощь? – nivrutti

ответ

0

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

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

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

+0

Я получаю то же самое, но когда-то он возвращает неправильные значения Я использую следующий код для вычисления скоростей. CLLocationDistance distanceChange = [newLocation getDistanceFrom: oldLocation]; NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate: oldLocation.timestamp]; // вычислить скорость рассчитаноСкорость = (расстояниеИзменить/послеLastUpdate) * 3.6; – nivrutti

+0

@nivrutti Точка, которую я пыталась сделать, заключается в том, что вам не нужно вычислять скорость - вы можете получить ее непосредственно из свойства 'speed'' CLLocation'. – Abizern

+0

спасибо @Abizern ok Я использую только GPS-скорость в своем приложении, но когда-нибудь она возвращает минус значения – nivrutti

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