Скорость CLLocation

Существует каноническая книга: Гамма, Руль, Johnson, Vlissides: "Шаблоны Dessign - Элементы Reusable Object-Oriented Software", которая запустила все это. Это содержит 23 шаблона.

9
задан Kshitiz Ghimire 14 December 2011 в 17:08
поделиться

2 ответа

Как насчет приведенного ниже кода, который работает из метода делегата. В качестве альтернативы, если вы действительно хотите опросить, сохраните свое предыдущее местоположение и проверьте расстояние, измененное с момента последнего опроса, и используйте ручной метод (также показанный ниже) для расчета скорости.

Скорость рассчитывается / предоставляется в м / с поэтому умножьте на 3,6 для км / ч или на 2,23693629 для миль / ч.

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
   //simply get the speed provided by the phone from newLocation
    double gpsSpeed = newLocation.speed;

    // alternative manual method
    if(oldLocation != nil)
    {
        CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation];
        NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];
        double calculatedSpeed = distanceChange / sinceLastUpdate;

    }   
}
27
ответ дан 4 December 2019 в 08:01
поделиться

Вы действительно можете использовать только тот метод делегирования, который вы предложили в своем вопросе.

Даже если вы обращаетесь к [CLLocationManager location] каждые 2 секунды, вы будете получать только координаты, которые вы получили в последний раз в методе делегата выше.

Почему нужно проводить опрос каждые две секунды? В некоторых случаях iphone может обновлять свои координаты быстрее.

HTH

0
ответ дан 4 December 2019 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: