Базовое местоположение использует три разных метода для определения местоположения.Это триангуляция вышек сотовой связи, данные о местонахождении Wi-Fi и GPS.
В зависимости от значения требуемого параметра CLLocationManager, он будет использовать один или несколько из этих трех методов для определения местоположения устройства.
Причина, по которой местоположение постоянно меняется, заключается в том, что чем дольше вы ждете, тем точнее (обычно) ваши результаты.Так, например:
- Сначала он определяет очень грубое местоположение с помощью триангуляции вышек сотовой связи
- Затем он находит одну или две точки доступа Wi-Fi и получает лучшее исправление в местоположении
- Затем он находит еще несколько горячих точек и, следовательно, получает еще лучшее исправление.
- Наконец, если GPS доступен, вы получаете лучшее возможное исправление
Конечно, требуетсядолгое время (и много энергии) для GPS, чтобы стать доступным.Это связано как с тем, как работает GPS, так и с тем, что iOS отключает GPS для экономии энергии.
Чтобы ответить на ваш главный вопрос, если у вас есть сигнал GPS (т. Е. Вы находитесь на улице), и есть напо крайней мере, несколько точек доступа Wi-Fi вокруг вас, которые находятся в базе данных Apple, вы можете получить местоположение в пределах 10 метров.В помещении, однако, лучшее, что вы можете ожидать, составляет около 100 м.