2017-01-26 4 views
0

Я делаю запрос внутри:Получить пользователь Окончательной Расположение IOS

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ 
    if (!gotLocation){ 
     gotLocation = true; 
     [locationManager stopUpdatingLocation]; 
     // DO QUERY 
    } 
} 

Но я хотел бы знать, когда окончательное местоположение установлено, или когда более точные один сделан. Я пытаюсь запросить только один раз и нужно точное местоположение для запроса. Я знаю, что могу использовать [locations lastObject], но как определить, когда установлено конечное или более точное местоположение.

ответ

0

Вы можете проверить местоположение horizontalAccuracy. Чем меньше значение, тем точнее. Вы должны сохранить ссылку на последнее место, которое вы получили, а затем, когда новое местоположение будет более точным, horizontalAccuracy будет меньше, обновит вашу ссылку.

Затем, как только вы получите местоположение с horizontalAccuracy, достаточно близко для вашего прецедента, вы можете позвонить по телефону stopUpdatingLocation, так как у вас есть ваше местоположение, а затем сделайте свой запрос.

Например:

CLLocation *location = [locations lastObject]; 
if (location.horizontalAccuracy < self.lastLocation.horizontalAccuracy) { 
    self.lastLocation = location; 
    if (self.lastLocation.horizontalAccuracy <= kDesiredLocationAccuracy) { 
     // execute query or additional logic 
     [locationManager stopUpdatingLocation]; 
    } 
} 

Надежда, что помогает!

+0

Вам нужно будет добавить какой-то таймер или другой предел, поскольку возможно, что желаемая точность никогда не будет достигнута. Если вы готовы настроить таргетинг на iOS9 и позже, вы можете использовать 'requestLocation', и вся тяжелая работа для вас будет выполнена. – Paulw11

+0

@ Paulw11, ваше предложение интересно. Это нормально, если вы можете опубликовать пример этого таймера и проверить, когда желаемая точность не улучшится. –

+0

Лично я хотел бы настроить iOS 9 как минимум и использовать 'requestLocation' – Paulw11

Смежные вопросы