Кто-нибудь уже решил это? Я прочитал много сообщений на форуме и до сих пор не могу сказать, является ли это решенным вопросом ...
Учитывая, что didUpdateToLocation () может возвращать кешированную или неточную информацию, как узнать, есть ли у вас точное исправление?
Когда вы устанавливаете желаемую точность на kCLLocationAccuracyNearestTenMeters, HundredMeters, Kilometer, ThreeKilometer, кажется очевидным, что вы можете сравнить горизонтальную точность возвращаемых точек с желаемой точностью, чтобы решить, когда принимать точку.
Но значения kCLLocationAccuracyBestForNavigation и kCLLocationAccuracyBest равны -2 и -1 соответственно, так как я могу узнать, когда у меня есть желаемая точность ??
В настоящее время я проверяю возраст исправления и отклоняю любое исправление, которое слишком "устарело" по времени. Затем я проверяю, является ли горизонтальная точность отрицательной, и отклоняю ее, если это так. если я получаю положительное значение verticalAccuracy, я обычно использую это исправление, поскольку соответствующая горизонтальная точность также хороша.
Но эти проверки использовались, когда я искал точность в 10-100 метрах ... Я не знаю, что проверять, когда я бегу ... AccuracyBestForNavigation или ... AccuracyBest ?? Должен ли я выровнять постоянно работающий locationManager и никогда не ожидать его отключения и не фильтровать результаты ??
Кто-нибудь мудрее меня с ответом ??
Спасибо