Google Places Autocomplete - 如何获取纬度和经度?

Posted

技术标签:

【中文标题】Google Places Autocomplete - 如何获取纬度和经度?【英文标题】:Google Places Autocomplete - how to get Latitude and Longitude? 【发布时间】:2015-02-26 15:26:31 【问题描述】:

我使用网址:

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

我应该如何检索带有地点位置(纬度和经度)的数据?

【问题讨论】:

您必须在 googlemaps 开发者处生成 API_KEY。然后在您的网址中传递 API_KEY 。您必须使用 (developers.google.com/maps/signup) 注册并创建密钥 我知道,我通过了。有用。我从 Google 收到地点,但没有关于位置的信息。 【参考方案1】:

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

【讨论】:

感谢您的回答伙伴:) 我收到的结果 [0] 是 lat: function () & lng function () ,我没有得到值。 想通了,函数返回值:)【参考方案2】:
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)")
            
        )
    

【讨论】:

它抛出一个内部错误..你还有其他方法吗? 它给了我这个错误 error": "code": 429, "message": "Resource has been exhausted (eg check quota).", "errors": [ "message": "资源已用尽(例如检查配额)。", "domain": "global", "reason": "rateLimitExceeded",【参考方案3】:

这实际上称为“Google 地方信息自动完成”而不是“地图自动完成”。您从那里获取地点 id,您需要调用 Google 地点 api 来检索详细信息,包括位置等。

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

或者您可以根据需要使用 Place Search api。

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

【讨论】:

以上是关于Google Places Autocomplete - 如何获取纬度和经度?的主要内容,如果未能解决你的问题,请参考以下文章

google.maps.places.Autocomplete 语言输出

反应:Google Places API/ Places 详细信息

如何从 google.maps.places.Autocomplete 获得超过 5 个结果?

使用 GooglePlacesAutocompleteWidget 时强制 flutter_google_places 仅显示城市

Android Google Places API,getAutocompletePredictions 返回状态“PLACES_API_ACCESS_NOT_CONFIGURED”

使用 google-places-api 的简单 html 页面的 ApiNotActivatedMapError