我使用URL:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY&types=geocode
我应该怎么做才能检索带有位置信息(纬度和经度)的数据?
我使用URL:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY&types=geocode
我应该怎么做才能检索带有位置信息(纬度和经度)的数据?
仅通过此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生成供我的应用使用的密钥。
上述URL中的autocomplete
必须替换为details
。
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=bar&key=API_KEY
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)")
}
})
}