2013-07-21 3 views
0

Я хочу узнать текущее местоположение пользователя с помощью Google. Я знаю, как получить высоту и долготу пользователя с помощью mapKit, но я не знаю, как перевести его как местоположение или адрес (название улицы, город, страна). Я сделал несколько поисков, и все, что я нашел, это использование NSURL для доступа к данной ссылке, которая обращается к Google Адресам. однако доступный список - это список мест, расположенных рядом с пользователем. так как я могу узнать текущее местоположение пользователя? Примечание: я не использую карту Apple, так как моя страна не включена, и Google больше поддерживает ее.найти текущее местоположение пользователя с помощью API Карт Google (Google Places)

ответ

2

Вы можете использовать обратные геокодирование.

Вот документы:

https://developers.google.com/maps/documentation/geocoding/?hl=en#ReverseGeocoding

Пример запрос (JSON):

http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false 

Получить данные в формате JSON на прошивке:

Not getting json response in google query of longitude and latitude in iOS?

для разбора объекта JSON в iOS, этот ответ мог бы b е полезно для вас:

How to parse specific googlemaps API webservices JSON repsonse

+0

хорошо, я создал NSURL и я получил широту и долготу как я по-прежнему здесь? как загрузить JSON-файл и извлечь из него адрес? Я не умею использовать файлы JSON. Спасибо за ответ btw – HusseinB

+0

сообщение, которое вы рекомендовали, действительно полезно, но они полагают, что у вас есть файл JSON. на самом деле я не знаю, как загрузить его в первую очередь. любой намек? – HusseinB

0

Там нет причин, чтобы использовать Web API, КСН SDK уже обрабатывает это с помощью GMSGeocoder класса. Вот пример того, как Swift преобразовать текущее местоположение пользователя на адрес:

let geocoder = GMSGeocoder() 
geocoder.reverseGeocodeCoordinate(currentLocation.coordinate) { (response, error) -> Void in 

     print("Response: \(response.firstResult())") 
     print("Error: \(error)") 

    }