如何使用Google Maps iOS SDK

时间:2017-02-28 19:21:04

标签: ios google-maps google-maps-sdk-ios reverse-geocoding

早上好!!

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

使用Google Maps iOS SDK时,似乎所有来自反向地理编码的结果都以GMSAddress的形式提供,这只会暴露这些值的一小部分(而且没有短版本)。到目前为止,我还没有找到一种方法来访问我需要的东西。

有没有办法通过iOS SDK获取这些值?如果没有,是否可以尝试直接调用谷歌地图API?有人试过吗?

感谢您的时间,

Julien P。

2 个答案:

答案 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。希望它能帮到任何人! :)

于连