早上好!!
我目前正在开发一款iOS应用,要求我使用Google地图的反向地理编码功能。棘手的部分是我需要能够访问完整的地址组件列表(即从this example返回的JSON中的完整“address_components”值,包括短名称和长名称)
使用Google Maps iOS SDK时,似乎所有来自反向地理编码的结果都以GMSAddress
的形式提供,这只会暴露这些值的一小部分(而且没有短版本)。到目前为止,我还没有找到一种方法来访问我需要的东西。
有没有办法通过iOS SDK获取这些值?如果没有,是否可以尝试直接调用谷歌地图API?有人试过吗?
感谢您的时间,
Julien P。
答案 0 :(得分:1)
我正在开发一个这样的应用程序......我不知道iOS SDK。
但是,Google API将为此提供帮助。本教程在此处获取您单击的位置的地址: https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial
您将无法直接致电Google API。您需要为此添加服务器。本教程提供了详细而清晰的方法。
希望这会有所帮助。一切顺利
答案 1 :(得分:0)
我使用适用于iOS的LMGeocoder库找到了一个简单的解决方案。
在LMAddress
内,有一个lines
属性,其中包含所有信息。您可以使用以下代码轻松访问它。
func getAddressComponent(name: String, lines: [[NSObject: AnyObject?]]) -> (short: String?, long: String?)? {
let filteredLines = lines.filter { ($0["types"] as! [String]).contains(name)
guard let line = filteredLines.first else {
return nil
}
let longName = line["long_name"] as? String
let shortName = line["short_name"] as? String
return (short: shortName, long: longName)
}
这是使用Swift 2.3,但也可能适用于Swift 3。希望它能帮到任何人! :)
于连