Итак, я имею дело с некоторыми проблемами точности с iPhone GPS. У меня есть приложение, которое использует местоположение.
В методе делегата locationManager: didUpdateToLocation: fromLocation:
мне возвращается местоположение. Из немного исследований, похоже, что GPS не всегда точна в первом результате, который он возвращает, даже если для параметра desiredAccuracy
установлено значение kCLLocationAccuracyBest
.
Чтобы обойти это, я не называю stopUpdatingLocation
, прежде чем он вернет newLocation:
не менее 3 раз (это очень быстро). Я также играл с двумя другими "требованиями" относительно того, следует ли stopUpdatingLocation
и вернуть newLocation
. Один из способов, которым я пытался, - проверить lat и long на newLocation
и сравнить с oldLocation
, и если они не совпадают, сохраните обновление местоположения. Я также попытался проверить расстояние между oldLocation
и newLocation
, и если оно меньше 20 метров, это нормально. Оба они тестируются с возвратом не менее 3 пробегов. Последний способ менее "строгий", так как newLocation
и oldLocation
довольно сложно избежать 100-процентного идентичности, если пользователь находится в движущемся транспортном средстве.
Теперь, моя проблема заключается в том, что даже при выполнении вышеизложенного (в основном, не принимающего местоположение, до тех пор, пока не произойдет несколько обновлений на CLLocationManager
И, проверяя расстояние между CLLocations
(или они идентичны), я все еще видя несколько странные результаты для местоположений, иногда, при тестировании.
Иногда, если я покину приложение, зайдите в Maps.app, используйте GPS, затем откройте многозадачность, принудительно закройте мое приложение, а затем снова откройте его, чтобы получить чистый запуск.
Любые переживания и возможные решения, которые люди использовали для решения одной и той же проблемы? Комментарии и решения оценены:)