如何获得国家特定的结果与谷歌自动完成的地方api ios sdk



我使用下面的方法来获得GMSPlacesClient类输入字符串的自动完成结果:

- (void)autocompleteQuery:(NSString *)query
               bounds:(GMSCoordinateBounds * GMS_NULLABLE_PTR)bounds
               filter:(GMSAutocompleteFilter * GMS_NULLABLE_PTR)filter
             callback:(GMSAutocompletePredictionsCallback)callback

我试图通过多种方式实现边界,但没有一个工作,我想知道是否有任何标准的方法来获得国家特定的结果与GMSCoordinateBounds?

您可以使用Google autocomplete place api iOS SDK获得特定国家/地区的结果。直接到这个链接

let filter = GMSAutocompleteFilter()
filter.type = .Establishment
filter.country = "UK"

将过滤器国家设置为您想要的任何国家代码。这将只为您获取特定国家/地区的结果。

您可以从这个链接获得国家代码

希望这对你有帮助。

在你的google places API url中,只需添加

 &components=country:sg 
here sg = country code for singapore. Append country code as per your requirement.

国家必须以两个字符的方式传递,ISO 3166-1 Alpha-2兼容的国家代码。您可以参考不同国家的国家代码

这个适合我

let placesClient = GMSPlacesClient()
    let filter = GMSAutocompleteFilter()
    filter.type = .Establishment
    filter.country = "SG"
    placesClient.autocompleteQuery(searchString, bounds: nil, filter: filter) { (results, error:NSError?) -> Void in
      self.resultsArray.removeAll()
      if let _ = results {
        for result in results!{
          if let res: GMSAutocompletePrediction = result {
           // your code
          }
        }
      }
    }

Swift 5及后续

您可以通过配置GMSAutocompleteFilter自定义搜索,并从其属性country指定国家

的例子:

let filter = GMSAutocompleteFilter()
filter.country = "MA"
autocompleteController.autocompleteFilter = filter

国家应该是ISO 3166-1 Alpha-2国家代码(不区分大小写)。

你可以从这里找到这些代码:国家ISO代码

看起来谷歌iOS的自动补全位置API不支持按国家过滤。GMSCoordinateBounds使用两个角所定义的矩形区域对应的东北和西南边界。

它可能更容易使用谷歌的地方API网络服务和过滤器与components=country:你可以指定你想要的country:后的国家

完整的国家代码列表可以在这里找到:
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

与:

连用
let filter = GMSAutocompleteFilter()
filter.country = "YOURCountryCode"

相关内容

  • 没有找到相关文章

最新更新