GPS получает неправильное положение - PullRequest
0 голосов
/ 25 июня 2010

в основном Location-Controller в моем приложении работает. Но если он работает в течение длительного времени, он получает неправильные позиции, не распознавая его. Я думаю, что переполнение буфера gps или что-то в этом роде.

вот мой код для didUpdate-Event

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {</p> <pre><code>//nonvalid if (signbit(newLocation.horizontalAccuracy)) return; //0.0 is no valid location here if ((abs(newLocation.coordinate.latitude) < 1.0e-05) || (abs(newLocation.coordinate.longitude) < 1.0e-05)) return; if (newLocation.horizontalAccuracy > DBL_MAX) return; @synchronized(self) { currentCoordinate.latitude = newLocation.coordinate.latitude; currentCoordinate.longitude = newLocation.coordinate.longitude; }

}

возможно ли очистить буфер расположения? или контролировать Позицию с помощью значения из триангуляции?

1 Ответ

1 голос
/ 25 июня 2010

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

// check that the location data isn't older than 60 seconds
if ([newLocation.timestamp timeIntervalSinceReferenceDate] < [NSDate timeIntervalSinceReferenceDate] - 60) {
    return;
}
...