Будет ли точность определения местоположения iPhone выходить за рамки служебного долга? - PullRequest
3 голосов
/ 21 сентября 2011

Если я установлю желаемую точность моего CLLocationManager равной kCLLocationAccuracyKilometer (с точностью до километра), получит ли iPhone в итоге лучшую позицию, когда он ее получит?Или это остановится с моей желаемой точностью.Я не могу найти это в документации.

Идея состоит в том, что мне нужно быстрое исправление для местоположения, но тогда я хотел бы пойти более точно.Придется ли мне это самому кодировать или это делается автоматически?

Ответы [ 3 ]

3 голосов
/ 21 сентября 2011

Я не знаю, верно ли следующее на 100%, но я почти уверен, что это работает так: фильтры точности в первую очередь предназначены для экономии энергии. Так что, если вы укажете, что вам достаточно kCLLocationAccuracyKilometer, и ОС вполне уверена, что сможет точно определить вас в пределах 1 км, используя только триангуляцию, она даже не включит устройство GPS, разряжающее батарею. Что касается вашего первого вопроса, менеджер местоположения остановится, как только достигнет желаемой точности.

Относительно второго вопроса: я не думаю, что фильтр точности влияет на время получения вами первого обновления местоположения. ОС часто кэширует ваше последнее известное местоположение и доставит его почти мгновенно, даже если вы указали очень высокую точность. Последующие обновления местоположения станут более точными.

Вы должны легко проверить, действительно ли это реальное поведение.

2 голосов
/ 21 сентября 2011

Установите лучшую точность, которая вам нужна (но не больше, потому что службы определения местоположения потребляют слишком много энергии). LocationManager будет вызывать didUpdateToLocation вашего CLLocationManagerDelegate каждый раз, когда повышается точность. Как можно скорее прекратите обновление местоположения, чтобы предотвратить разрядку аккумулятора.

1 голос
/ 21 сентября 2011

Нет, он остановится с указанной точностью. Если вы запрашиваете только kCLLocationAccuracyKilometer, приемник GPS не будет включен, и он будет работать не лучше, чем триангуляция Wi-Fi или вышка сотовой связи. [Единственное исключение может быть, если другое фоновое приложение (например, TomTom nav) уже имеет GPS для исправлений высокой точности, тогда вы можете также получить исправления высокой (<300 м) точности). </p>

Если вы хотите лучшего, вам нужно запросить его, и вы можете сразу же запросить его, вы получите быстрое исправление (точность 1000 м) сразу же, а через минуту или две вы получите высокоточное GPS-исправление (ну, это может занять от 30 секунд до 10 минут в зависимости от нескольких вещей). Никакого специального кодирования не требуется, просто укажите точность, которую вы в конечном итоге хотите.

...