Google Places自动完成 - 如何获取纬度和经度?

11

我使用URL:

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

我应该怎么做才能检索带有位置信息(纬度和经度)的数据?


你需要在Google Maps开发者平台生成API_KEY,然后将API_KEY传递到你的URL中。你需要注册并创建密钥,可以使用以下链接:(https://developers.google.com/maps/signup) - ChintaN -Maddy- Ramani
我知道,我通过了。它有效。我从谷歌接收到地点,但是没有关于位置的信息。 - Bartłomiej Semańczyk
3个回答

26

仅通过此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


感谢你的回答,伙计 :) - Zeeshan
我收到的result[0]结果是 lat: function () & lng function (),但我没有得到值。 - jasan
搞定了,函数返回了值 :) - jasan

5
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)")
            }
        })
    }

它正在抛出一个内部错误.. 你有其他的方法吗? - Priyanka Kanse
它给了我这个错误 错误": { "代码": 429, "消息": "资源已耗尽(例如,请检查配额)。", "错误": [ "消息": "资源已耗尽(例如,请检查配额)。", "域": "全球", "原因": "超过速率限制", - Chandni

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接