Google Places автозаполнение-как получить широту и долготу?

Я использую URL:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY&types=geocode

что я должен сделать, чтобы получить данные с местоположением мест (широта и долгота)?

3 ответов


это невозможно только с этим URL:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY

все, что мне нужно было сделать, это получить place_id из ответа, а затем используйте его в следующем следующем URL:

https://maps.googleapis.com/maps/api/place/details/json?input=bar&placeid=PLACE_ID&key=API_KEY

где:

PLACE_ID полученных place_id из предыдущего запроса.

API_KEY - мой ключ, созданный компанией Google для использования с моим приложением.

autocomplete нужно заменить на details в выше URL-адреса.


Это на самом деле называется "автозаполнение Google мест", а не "автозаполнение карт". Вы получаете идентификатор места оттуда, вам нужно позвонить в Google places api, чтобы получить подробную информацию, включая местоположения и т. д.

https://developers.google.com/places/documentation/details

или вы можете использовать место поиска api в качестве ваших потребностей.

https://developers.google.com/places/documentation/search


https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY

тогда get place_id и вызовите следующую функцию для получения данных

let placesClient = GMSPlacesClient.shared()
    func GetPlaceDataByPlaceID(pPlaceID: String)
    {
      //  pPlaceID = "ChIJXbmAjccVrjsRlf31U1ZGpDM"
        self.placesClient.lookUpPlaceID(pPlaceID, callback: { (place, error) -> Void in

            if let error = error {
                print("lookup place id query error: \(error.localizedDescription)")
                return
            }

            if let place = place {
                print("Place name \(place.name)")
                print("Place address \(place.formattedAddress!)")
                print("Place placeID \(place.placeID)")
                print("Place attributions \(place.attributions)")
                print("\(place.coordinate.latitude)")
                print("\(place.coordinate.longitude)")
            } else {
                print("No place details for \(pPlaceID)")
            }
        })
    }