Я обнаружил с помощью тестов, что установка низкой желаемой точности для CLLocationManager
приводит к ошибочному поведению этого компонента.
Вот 2 теста, которые я сделал:
Установите желаемую точность на kCLLocationAccuracyHundredMeters
.Тогда устройство не может найти мою позицию так точно, как я хочу.Вот записи моего делегата CLLocationManager
:
Accuracy is 1500.000000 (desired accuracy is 100.000000)
Accuracy is 1500.000000 (desired accuracy is 100.000000)
Вот и все.Два события за 30 секунд с горизонтальной точностью 1500.
Установите точность желаний на kCLLocationAccuracyBest
.Тогда устройство находит меня!Же журналы:
Accuracy is 1500.000000 (desired accuracy is -1.000000)
...
Accuracy is 162.957953 (desired accuracy is -1.000000)
...
Accuracy is 76.356886 (desired accuracy is -1.000000)
...
Accuracy is 47.421634 (desired accuracy is -1.000000)
Я на том же месте, где я был для теста 1, но на этот раз устройство способно найти мое местоположение с точностью, которую я сначала хотел (т.е. 100,0).
Я повторил эти два теста много раз, для получения одинаковых результатов.
Мой вопрос:
«Кто-нибудь знает, почему устройство iPhoneне стараюсь найти свою позицию, когда я устанавливаю точность kCLLocationAccuracyHundredMeters
? ”
Я предполагаю, что установка точности на kCLLocationAccuracyBest
может включить какой-то другой аппаратный датчик, но это нельзя учитыватькак ошибка?Я не смог найти что-то в интернете относительно этой проблемы.
Спасибо, что поделились своим опытом.(тесты проводились на устройстве 3GS через Wi-Fi и телефонную сеть)