如何使用 Google Maps iOS SDK 获取地址组件的完整列表

How to get full list of address components with Google Maps iOS SDK

早上好!

我目前正在开发一个 iOS 应用程序,它要求我使用 Google 地图的反向地理编码功能。棘手的部分是我需要能够访问地址组件的完整列表(即 this example 返回的 JSON 的完整 "address_components" 值,包括短名称和长名称)

当使用 Google Maps iOS SDK 时,似乎所有反向地理编码的结果都以 GMSAddress 的形式给出,它只公开了这些值的一小部分(并且没有短版本)。到目前为止,我还没有找到一种方法来访问我需要的内容。

有什么方法可以通过iOS SDK获取这些值吗?如果不行,可以尝试直接调用 google 映射 API 吗?有人试过吗?

感谢您的宝贵时间,

朱利安·P.

我使用 iOS 的 LMGeocoder 库找到了一个简单的解决方案。

LMAddress里面,有一个lines属性,里面会包含所有的信息。您可以使用以下代码轻松访问它。

func getAddressComponent(name: String, lines: [[NSObject: AnyObject?]]) -> (short: String?, long: String?)? {

    let filteredLines = lines.filter { ([=10=]["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。希望它能帮助任何人! :)

朱利安

我正在开发一款这样的应用程序...我不知道 iOS SDK。

但是,Google API 会对此有所帮助。本教程在这里获取您单击的位置的地址: https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial

您将无法直接调用 Google API。您将需要为此添加一个服务器。本教程提供了详细而清晰的方法来执行此操作。

希望这对您有所帮助。祝一切顺利