从Google Places API获取附近地点列表(Swift 3)

j__*_*__j 6 ios google-places-api swift3

我知道已经有类似的威胁,但是,我正在寻找的确切主题似乎没有被触及.

我是一个新编程,然而,我实现了一个应用程序运行,它获取当前位置,将坐标转换为地址,并能够将您的位置数据存储在tableView中.

现在,我正在寻找一种方法,在Google Places API的帮助下如何获取附近商店的列表,并将其显示在表格视图中.我只能在地图视图中找到有关如何显示POI的大量帮助,但是,我只想在列表中显示这些(例如"Walmart,1st Avenue,1234 Waltown").

一些友善的陌生人能帮助我吗?

非常感谢提前!

来自德国的最好的乔纳斯

pha*_*mot 13

这是一个示例网址,它返回您所在位置附近的星巴克列表.

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=(yourlatitude),(yourlongitude)&radius=5000&keyword=starbucks&key=(yourkey)

您可以从谷歌控制台获取密钥


dre*_*gin 3

轻量级解决方案!

我创建了一个谷歌包装器来通过 api 调用附近的谷歌:Google Api Helper

var input = GInput()
input.keyword = "Restaurants"
input.radius = 20000
var location = GLocation()
location.latitude = 26.273178
location.longitude = 73.009545
input.destinationCoordinate = location
GoogleApi.shared.callApi(.nearBy, input: input) { (response) in
    if let data = response.data as? [GApiResponse.NearBy], response.isValidFor(.nearBy){
        // all nearby places
    }
}
Run Code Online (Sandbox Code Playgroud)

有趣的是,我添加了一个额外的 api 来获取所有 60 个附近的地点,这样用户就不必担心下一页令牌并调用 api 直到最终结果出现。这是一个获取所有结果的示例。

var input = GInput()
input.keyword = "Restaurants"
input.radius = 20000
var location = GLocation()
location.latitude = 26.273178
location.longitude = 73.009545
input.destinationCoordinate = location
NearbyExtension.shared.completion = { response in
    if let data = response.data as? [GApiResponse.NearBy], response.isValidFor(.nearBy){
        // all nearby places
    }
}
NearbyExtension.shared.getAllNearBy(input: input)
Run Code Online (Sandbox Code Playgroud)