Неправильное расположение обновления CLLocationManager - PullRequest
0 голосов
/ 13 ноября 2018

Я использую CLLocationManager для доступа к местоположению пользователя, следующий метод делегата возвращает координаты, которые не точны

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

}

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

locationManager:didUpdateToLocation:fromLocation: устарело.Рекомендуется использовать locationManager:didUpdateLocations:.Он сообщает делегату, что доступны новые данные о местоположении.Последнее обновление местоположения находится в конце массива locations.


Ниже перечислены свойства, которые вы можете исследовать:

distanceFilter: Минимальное расстояние (в метрах), которое устройство должно перемещать по горизонтали, прежде чем генерируется событие обновления.

требуемая точность: Точность данных о местоположении.

0 голосов
/ 14 ноября 2018

Есть два случая, как вы сказали "Не верно".

  1. Не текущее местоположение, которое вы ожидаете.
  2. Небольшая разница в широте и долготе вашего текущего местоположения.

Случай 1: измените свое текущее местоположение на iPhone и попробуйте снова получить ваше местоположение.

Случай 2: В этом случае вам следует установить некоторые значения для объекта менеджера местоположения, например, фильтр желаемой точности и расстояния.

Кроме того, поделитесь своим кодом внутри этого метода. Может быть, вы делаете что-то не так.

Спасибо!

0 голосов
/ 13 ноября 2018

Точность данных о местоположении.

locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
locationManager.distanceFilter = kCLLocationAccuracyHundredMeters

Вы должны присвоить этому свойству значение, соответствующее вашему сценарию использования.

Например Если вам нужно текущее местоположение только в пределах километра, вы должны указать kCLLocationAccuracyKilometer, а не kCLLocationAccuracyBestForNavigation.Для определения местоположения с большей точностью требуется больше времени и больше энергии.

...