使用AddressAutofill通过CLLocationCoordinate2D查询地址时出错
Mapbox Search iOS 1.0.0-rc.4 AddressAutofill 422错误处理
使用mapbox-search-ios 1.0.0-rc.4版本调用AddressAutofill的suggestions(for:)方法查询地址时,触发422错误,错误信息显示类型参数格式非法:
error = generic(code: 422, domain: "MapboxCoreSearchErrorDomain", message: "Type \"countryregionpostcodedistrictplacelocalityneighborhoodaddressstreetpoi\" is not a known type. Must be one of: country, region, place, district, locality, postcode, neighborhood,LO operating Doesfrom五月ack蚧AL 际 此类型参数拼接错误的问题。
相关调用代码:
func getLocationAddress() { let centerCoordinate = CLLocationCoordinate2D(latitude: -34.005676, longitude: 138.795836)//mapView.centerCoordinate addressAutofill.suggestions(for: centerCoordinate) { [weak self] result in guard let self = self else { return } switch result { case .success(let suggestions): if let first = suggestions.first { self.addressAutofill.select(suggestion: first) { [weak self] result in guard let self = self else { return } if case .success = result { } else { } } } case .failure(let error): print("error = \(error)") } } }
经测试官方Demo也存在相同问题,添加options、countries、language参数后问题仍未解决。
解决办法
- 临时降级版本:将mapbox-search-ios版本降级到1.0.0-rc.3,该版本不存在此类型参数拼接错误的问题。
- 手动指定合法类型列表:创建
AddressAutofill.Options时,显式设置types参数为合法类型数组,覆盖SDK默认的错误拼接值:
let options = AddressAutofill.Options( types: [.country, .region, .place, .district, .locality, .postcode, .neighborhood, .address, .poi], countries: ["AU"], // 按需设置目标国家代码 language: "zh-CN" ) addressAutofill.suggestions(for: centerCoordinate, options: options) { /* 原有回调逻辑 */ }
内容的提问来源于stack exchange,提问作者beyond峰
相关产品推荐
相关产品推荐

