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

时间:2017-06-02 16:28:33

标签: ios swift3 google-places-api

我知道已经存在类似的威胁,但是,我正在寻找的完全主题似乎没有被触及。

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

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

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

提前多多感谢!

来自德国的一切, 纳斯

3 个答案:

答案 0 :(得分:12)

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

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

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

答案 1 :(得分:2)

检查出来 - >> https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial

“寻找吃的东西”部分有你需要的东西。

答案 2 :(得分:2)

轻量级解决方案!

我创建了一个Google包装器,以在此处通过api呼叫Google附近: 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
    }
}

有趣的是,我添加了一个奖励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)