gpt4 book ai didi

swift - GMS反向地理编码坐标返回statusCode 400错误

转载 作者:行者123 更新时间:2023-11-30 11:04:50 29 4
gpt4 key购买 nike

这已经在我的应用程序中运行了一段时间,直到最近才停止工作。

func reverseGeocodeCoordinate(coordinate: CLLocationCoordinate2D, onSuccess : @escaping LocationUpdateSuccess) {
let geocoder = GMSGeocoder()
geocoder.reverseGeocodeCoordinate(coordinate) { response, error in
if let address = response?.firstResult() {
if let lines = address.lines! as? [String] {
let title = lines.joined(separator: " ")
if (title.characters.count) > 3 {
print(title)
onSuccess(coordinate, title)

}
}
}
else
{
print("Error In Reverse GeoCoding \n \(error?.localizedDescription)")
}
}
}

无论如何,这是我作为参数值发送的内容

CLLocationCoordinate2D
- latitude : 31.51774603759463
- longitude : 74.340778893683378

这是我发出请求时出现的错误的确切文本

The operation couldn’t be completed. (com.google.HTTPStatus error 400.)

同样

GMSPlacesClient().autocompleteQuery

不会像在以下函数中那样响应结果

func autoCompleteQuery(searchText: String) {

if searchText.characters.count != 0 {
self.tableView.alpha = 1

let countryFilter = GMSAutocompleteFilter()
countryFilter.country = "US"


var areaBounds : GMSCoordinateBounds? = nil
if let lastSavedLocation = MyLocationManager.sharedInstance.lastSavedLocation
{
let lat = lastSavedLocation.coordinate.latitude
let long = lastSavedLocation.coordinate.longitude

let offset = 200.0 / 1000.0;
let latMax = lat + offset;
let latMin = lat - offset;
let lngOffset = offset * cos(lat * M_PI / 200.0);
let lngMax = long + lngOffset;
let lngMin = long - lngOffset;
let initialLocation = CLLocationCoordinate2D(latitude: latMax, longitude: lngMax)
let otherLocation = CLLocationCoordinate2D(latitude: latMin, longitude: lngMin)
areaBounds = GMSCoordinateBounds(coordinate: initialLocation, coordinate: otherLocation)
}

placesClient.autocompleteQuery(searchText, bounds: areaBounds, filter: countryFilter, callback: { (result, error) -> Void in

self.nearbyPlacesList.removeAll()
if result == nil {
print("Error in autocompleteQuery -> \(error?.localizedDescription)")
return
}
for result in result!{
if let result = result as? GMSAutocompletePrediction {
self.nearbyPlacesList.append((id: result.placeID!, name: result.attributedFullText.string))
self.tableView.reloadData()
}
}
})
} else {
self.tableView.alpha = 0
}
}

出现以下错误消息。

The operation couldn’t be completed. An internal error occurred in the Places API library. If you believe this error represents a bug, please file a report using the instructions on our community and support page (https://developers.google.com/places/ios-api/support).

我已经研究过答案 here 、重新安装 Pod 等等。

我还匹配了 bundle 标识符,取消了 API 配额限制,从 Google Cloud 控制台禁用并再次启用了 SDK,如下所示

Google's Console Settings Screenshot

但没有任何效果。任何帮助将不胜感激。谢谢

最佳答案

对于稍后看到这篇文章的任何人来说,使用正确的 key 初始化 GMS 服务和位置就是问题所在。

 GMSServices.provideAPIKey(<API_KEY_GOES_HERE>)
GMSPlacesClient.provideAPIKey(<API_KEY_GOES_HERE>)

我使用的是某个项目中的旧 key ,该项目在 Google Cloud Console 上不再处于事件状态,因此返回 400 错误。希望这对某人有帮助;)

关于swift - GMS反向地理编码坐标返回statusCode 400错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52839564/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com