如何使用Google Maps iOS SDK获取地址组件的完整列表
问题描述:
早上好!如何使用Google Maps iOS SDK获取地址组件的完整列表
我目前正在研究一个需要我使用Google地图反向地理编码功能的iOS应用程序。棘手的部分是我需要能够访问完整的地址组件列表(即从this example返回的JSON的全部“address_components”值,包括长名称和短名称)
当使用Google Maps iOS SDK ,似乎所有来自反向地理编码的结果都是以GMSAddress
的形式给出的,它只显示这些值的一小部分(并且没有短版本)。到目前为止,我还没有找到一种方法来访问我需要的东西。
有没有办法通过iOS SDK获取这些值?如果不是,可以尝试直接调用Google地图API吗?有人试过吗?
谢谢您的时间,
朱利安P.
答
我发现使用LMGeocoder库的iOS简单的解决办法。
在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)
}
这是使用雨燕2.3,但可能会为雨燕3正常工作。希望它能帮助任何人! :)
朱利安
答
我的工作在一个这样的应用程序......我不知道iOS版SDK。
但是,Google API将为此提供帮助。本教程将获取您点击的位置的地址: https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial
您将无法直接调用Google API。你需要为此添加一个服务器。本教程提供了一个详细和清晰的方法来做到这一点。
希望这会有所帮助。一切顺利