Как получить результат для конкретной страны с помощью автозаполнения Google api ios sdk?
Я использую метод ниже, чтобы получить результат автозаполнения для входной строки класса GMSPlacesClient:
- (void)autocompleteQuery:(NSString *)query
bounds:(GMSCoordinateBounds * GMS_NULLABLE_PTR)bounds
filter:(GMSAutocompleteFilter * GMS_NULLABLE_PTR)filter
callback:(GMSAutocompletePredictionsCallback)callback
Я пытался реализовать границы несколькими способами, но ни один из них не сработал. Интересно, есть ли какой-нибудь стандартный способ получения результатов по конкретной стране с помощью GMSCoordinateBounds?
6 ответов
Вы можете получить результаты для конкретной страны с помощью Google SDK для автозаполнения. Просто перейдите по этой ссылке
let filter = GMSAutocompleteFilter()
filter.type = .Establishment
filter.country = "UK"
установите фильтр страны на любой код страны, который вы хотите. Затем вы получите результаты только для конкретной страны.
Вы можете получить коды стран по этой ссылке
Надеюсь это поможет.
Эта работа для меня
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
}
}
}
}
В вашем URL мест Google API, просто добавьте
&components=country:sg
here sg = country code for singapore. Append country code as per your requirement.
Страна должна быть передана в виде двухсимвольного кода страны, совместимого с ISO 3166-1 Alpha-2. Вы можете сослаться Код страны разных стран
в Swift 5 и более поздних версиях
вы можете настроить свой поиск, настроив
GMSAutocompleteFilter
, и укажите страну из его атрибута
country
пример :
let filter = GMSAutocompleteFilter()
filter.country = "MA"
autocompleteController.autocompleteFilter = filter
страна должна быть кодом страны ISO 3166-1 Alpha-2 (без учета регистра).
Вы можете найти эти коды здесь: ISO-коды стран .
Похоже, Google Автозаполнение Places API для iOS не поддерживает фильтрацию по странам. GMSCoordinateBounds
использует северо-восточную и юго-западную границы, соответствующие прямоугольной области, определенной двумя углами.
Возможно, будет проще использовать веб-службу API Google Адресов и выполнять фильтрацию с components=country:
Вы можете указать, какую страну вы хотите после country:
Полный список кодов стран можно найти здесь:
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
Используйте это с:
let filter = GMSAutocompleteFilter()
filter.country = "YOURCountryCode"