Рядом со мной по миль Objective-C - PullRequest
0 голосов
/ 08 октября 2011

Я пытаюсь сделать что-то похожее на:Я думаю, мне нужно отправить запрос в Google API, и он вернет мне некоторые данные, но я полностью потерян в этой части ... У меня есть все адреса, которые я хочу отправить, но только он.Кто-нибудь знает хороший учебник или направление, чтобы посмотреть?

Ответы [ 2 ]

4 голосов
/ 09 октября 2011

Вы можете рассчитать расстояние между двумя географическими точками, используя Базовый 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];
}

Возвращенное расстояние будет в метрах.Он измеряет прямую линию от местоположения пользователя до точки назначения.

0 голосов
/ 09 октября 2011

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

Я не знаю, как математика думала об этом вычислении, но быстрый поиск показал это: http://www.movable -type.co.uk / scripts / latlong.html

...