2017-02-28 59 views
0

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

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

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

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

谢谢您的时间,

朱利安P.

回答

0

我发现使用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正常工作。希望它能帮助任何人! :)

朱利安

0

我的工作在一个这样的应用程序......我不知道iOS版SDK。

但是,Google API将为此提供帮助。本教程将获取您点击的位置的地址: https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial

您将无法直接调用Google API。你需要为此添加一个服务器。本教程提供了一个详细和清晰的方法来做到这一点。

希望这会有所帮助。一切顺利

相关问题