【问题标题】:Get list of nearby places from Google Places API (Swift 3)从 Google Places API (Swift 3) 获取附近地点的列表
【发布时间】:2017-11-04 03:18:33
【问题描述】:

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

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

现在我正在寻找一种方法,了解如何在 Google Places API 的帮助下获取附近商店的列表并在表格视图中显示它们。我只能找到很多关于如何在地图视图上显示 POI 的帮助,但是,我只想在列表中显示它们(例如“Walmart, 1st Avenue, 1234 Waltown)。

有没有友好的陌生人可以帮助我?

提前非常感谢!

来自德国的一切, 乔纳斯

【问题讨论】:

  • 所以您只想要给定用户附近的商店或所有兴趣点?
  • 你说在列表视图中显示它们是什么意思
  • 我只想要商店。我希望它们位于表格视图中(请原谅我在原始问题中的措辞错误),每个单元格有 2 个标签(名称和地址)。
  • 我正试图缩小您到底想要什么,因为您已经问了两个问题。第一个是寻找地点,另一个是在表格视图中显示它们。你已经完成了这两个中的哪一个?
  • github.com/…,你可以查看这个 repo 中的任何一个,你肯定会在那里得到很好的例子

标签: ios swift3 google-places-api


【解决方案1】:

看看这个 -->> https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial

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

【讨论】:

  • 但是又一次,东西显示在 MapView... :/
  • @Janninho Dude,该教程将帮助您了解如何集成 Google Places 以及如何接收包含附近地点的结果。从那里开始,您可以继续学习如何将内容显示到 tableview。你不能指望一个教程能完全满足你的需要。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    轻量级解决方案!

    我在这里创建了一个 google 包装器来调用 google 附近的 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
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      相关资源
      最近更新 更多