Определение, в каком городе пользователь находится
Как только мы запросим координаты. Откуда мы знаем, что это место находится в Нью-Йорке или Лос-Анджелесе? Или нет?
Как мы рассчитаем это?
Я понятия не имею, как это сделать. Любая помощь, пожалуйста
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, и вам нужно будет выполнить некоторое форматирование. Используйте эту ссылку, чтобы получить представление о том, как будут возвращаться данные. Дайте мне знать, если вам нужна помощь в форматировании полученных данных.