SwiftUI集成Google Places自动补全 经纬度恒为-180如何解决
问题根因
Google Places 自动补全组件遵循按需返回字段规则,你当前配置的请求字段仅包含地点名称(name)和地点ID(placeID),未声明需要获取坐标信息,接口不会拉取经纬度数据,未赋值的coordinate属性会返回默认无效值-180,-180。
修复方法
在PlacePicker的makeUIViewController方法中,修改placeFields配置,将坐标字段GMSPlaceField.coordinate加入请求字段集合即可。
修正后的字段配置代码:
let fields: GMSPlaceField = GMSPlaceField( rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue) | UInt(GMSPlaceField.coordinate.rawValue) // 新增坐标字段请求 ) autocompleteController.placeFields = fields
如果后续需要获取完整格式化地址、行政区划、联系电话等其他地点信息,按照相同格式将对应GMSPlaceField枚举值加入位运算集合即可。
修改完成后重新运行,选中地点后即可获取到真实有效的经纬度数值。
注:Google Places 接口会根据你请求的字段类型计算调用资费,仅申请业务需要的字段可以控制使用成本。
内容的提问来源于stack exchange,提问作者Taimoor Arif
相关产品推荐
相关产品推荐

