Определение, в каком городе пользователь находится

Как только мы запросим координаты. Откуда мы знаем, что это место находится в Нью-Йорке или Лос-Анджелесе? Или нет?

Как мы рассчитаем это?

Я понятия не имею, как это сделать. Любая помощь, пожалуйста

PS: обратное геокодирование преобразует координату в имя. Но это не мой вопрос. Я спрашиваю, откуда мы знаем, что это место в городе или нет? Это, сравнивая строку, сгенерированную обратным геокодированием, потому что это звучит "склонно к ошибкам" для меня

2 ответа

То, что вы ищете, называется обратным геокодированием. Посмотрите на класс CLGeocoder и reverseGeocodeLocation:completionHandler: метод.

Я предполагаю, что вы не хотите использовать геокодирование Apple, потому что это не надежно. Вы можете использовать преобразование координат в местоположение с помощью Google API.

let urlPath: String = "http://maps.googleapis.com/maps/api/geocode/json?latlng=\(self.latitude),\(self.longitude)&sensor=true_or_false
let recievedLocation : NSMutableData! = self.getJSON(urlPath)
let recievedDictonary = self.parseJSON(recievedLocation)
let returnedPlaces : NSArray = recievedDictonary["results"] as! NSArray

Замените широту и долготу в URL вашими координатами. Возвращенные места будут иметь массив словарей. Это будет в формате JSON, и вам нужно будет выполнить некоторое форматирование. Используйте эту ссылку, чтобы получить представление о том, как будут возвращаться данные. Дайте мне знать, если вам нужна помощь в форматировании полученных данных.

Другие вопросы по тегам