Вы можете рассчитать расстояние между двумя географическими точками, используя Базовый API Местоположения.
Процесс поиска геолокации на основе адреса известен как прямое геокодирование и не поддерживается iOS.
Для яблочной документации :
Многие службы геокодирования позволяют выполнять преобразования в любом направлении, но в настоящее время iOS поддерживает только обратное геокодирование, которое преобразует широту и долготу в метку.Если вы хотите преобразовать информацию о метках в широту и долготу - процесс, известный как прямое геокодирование, - вам нужно найти подходящий сторонний сервис для использования.
Поскольку у вас есть адрес, выможете выполнить прямое геокодирование, используя google api .Вы можете отправить запрос, например:
http://maps.google.com/maps/api/geocode/json?address=Padre+Chagas+Porto+Alegre&sensor=false
А затем проанализируйте местоположение места и создайте объект CLLocation с широтой и долготой.
При этомДело в том, что вы решили проблему поиска места назначения геолокации.Теперь все, что вам нужно сделать, это получить текущее местоположение пользователя с помощью Core Location, используя что-то вроде создания Location Manager:
- (void)getLocation
{
_clManager = [[CLLocationManager alloc] init];
_clManager.delegate = self;
if (! [CLLocationManager locationServicesEnabled])
return;
[_clManager startUpdatingLocation];
}
И рассчитать расстояние, когда вы получите обновление местоположения пользователя:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
CLLocationDistance distance = [newLocation distanceFromLocation:<destiny_location>];
[_clManager stopUpdatingLocation];
[self.tableView reloadData];
}
Возвращенное расстояние будет в метрах.Он измеряет прямую линию от местоположения пользователя до точки назначения.