Reputation: 478
I'm using below method to get autocomplete result for input string of GMSPlacesClient class:
- (void)autocompleteQuery:(NSString *)query
bounds:(GMSCoordinateBounds * GMS_NULLABLE_PTR)bounds
filter:(GMSAutocompleteFilter * GMS_NULLABLE_PTR)filter
callback:(GMSAutocompletePredictionsCallback)callback
I tried to implement bounds by multiple ways but none of them worked, I wonder if there is any standard way to get country specific results with GMSCoordinateBounds?
Upvotes: 12
Views: 19174
Reputation: 165
in Swift 5 and later
you can custom your search by configuring the GMSAutocompleteFilter
, and specify the country from its attribute country
example :
let filter = GMSAutocompleteFilter()
filter.country = "MA"
autocompleteController.autocompleteFilter = filter
the country should be a ISO 3166-1 Alpha-2 country code (case insensitive).
you can find those codes from here: Countries ISO Codes
Upvotes: 1
Reputation: 109
The full list of country codes can be found here:
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
Use it with:
let filter = GMSAutocompleteFilter()
filter.country = "YOURCountryCode"
Upvotes: 0
Reputation: 380
This one work for me
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
}
}
}
}
Upvotes: 4
Reputation: 2934
You can get the country specific results with the Google autocomplete place api iOS SDK. Just go to this link
let filter = GMSAutocompleteFilter()
filter.type = .Establishment
filter.country = "UK"
set the filter country to what ever the country code you want. This will then fetch only country specific results for you.
You can obtain the country codes from this link
Hope this helps.
Upvotes: 34
Reputation: 2354
In your google places API url, just append
&components=country:sg
here sg = country code for singapore. Append country code as per your requirement.
The country must be passed as a two character, ISO 3166-1 Alpha-2 compatible country code. you can refer Country code Of different countries
Upvotes: 4
Reputation: 8459
Looks like Google autocomplete Places API for iOS doesn't support filtering by country. GMSCoordinateBounds
uses the northEast and southWest bounds corresponding to the rectangular region defined by the two corners.
It might be easier to use Google Places API Web Service and filter with components=country:
You can specify what country you want after country:
Upvotes: 0