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://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)")
}
})
}