Расстояние до места, пока пользователь находится в движении - PullRequest
3 голосов
/ 23 ноября 2011

Я нахожусь в процессе написания приложения, которое показывает расстояние пользователя от фиксированной точки, когда пользователь ходит (т. Е. Метка, показывающая расстояние от пользователя до точки, обновляется каждый раз, когда пользователь перемещается).Я использую CLLocationManager с кодом, показанным ниже:

- (void)viewDidLoad
{
    locationManager=[[CLLocationManager alloc]init]; 
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    [locationManager startUpdatingLocation];      
}

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation      *)newLocation fromLocation:(CLLocation *)oldLocation 
{   
    CLLocationDistance meters = [newLocation distanceFromLocation:fixedPoint];
    self.distanceLabel.text = [[NSString alloc] initWithFormat:@"Distance: %.1f feet", meters*3.2808399];
}

Метка, которая должна показывать расстояние от пользователя до точки, не обновляется постоянно, а когда обновляется, обычно непоказать правильное расстояние от пользователя до фиксированной точки.Мне было интересно, есть ли лучший способ для меня, чтобы попытаться сделать это, или сделать фундаментальные ограничения базовой структуры местоположения сделать это невозможным.Любая помощь будет принята с благодарностью.

1 Ответ

4 голосов
/ 24 ноября 2011

Вы отфильтровываете старые (кэшированные) позиции?Вы также должны фильтровать на основе точности, вы, вероятно, не хотите, чтобы местоположения с низкой точностью.

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

Предполагая, что устройство имеет GPS и может видеть достаточно спутников GPS, чтобы получить хорошую позицию, это прекрасно работает.

...