Я немного играю с iPhone SDK, и я хочу показать текущую скорость в своем приложении. Есть так много приложений, которые могут сделать это очень точно, особенно для низких скоростей, таких как бег или езда на велосипеде. Лучшее, что я видел, это RunKeeper.Почему моя скорость CLLocation настолько неточна?
Но, в моем приложении, скорость абсолютно неточна. На низких скоростях он всегда равен нулю, и только на более высоких скоростях он показывает некоторые значения, но они редко обновляются и не очень полезны.
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
if (newLocation.timestamp > oldLocation.timestamp &&
newLocation.verticalAccuracy > 0.0f && // GPS is active
newLocation.horizontalAccuracy < 500.0f && // GPS is active
//newLocation.horizontalAccuracy < kCLLocationAccuracyHundredMeters && // good quality GPS signal
//newLocation.speed > 1.0f && // enough movment for accurate speed and course measurement
oldLocation != nil) // oldLocation is nil on the first reading
{
double speed = (newLocation.speed * 3.6);
[self updateDisplayWithSpeed:speed];
//double direction = newLocation.course;
}
}
У кого-нибудь есть рабочий код для этого? Или ты можешь сказать мне, что не так с моей?
у вас есть пример кода для обработки первого вопроса? Или это просто проверка метки времени с предыдущей? –