Places SDK for iOS supports Place Autocomplete (Legacy). If you are familiar with Place Autocomplete (Legacy), Place Autocomplete (New) makes the following changes:
Uses a new pricing model. For pricing information for all APIs, see Pricing for the Places SDK for iOS (New).
To make a request, call the new
GMSPlacesClient fetchAutocompleteSuggestionsFromRequest:method.Pass to the request:
An instance of the new
GMSAutocompleteRequestclass that defines all request parameters, such as the query and session token.A callback of type
GMSAutocompleteSuggestionsCallbackto handle the response.
The
GMSAutocompleteFilterclass now lets you:- Set the region code used to determine formatting of the results.
- Set the prediction offset, a zero-based Unicode character offset of the query.
The response is defined by the new
GMSAutocompleteSuggestionclass. This class contains an array of instances of the new typeGMSAutocompletePlaceSuggestionrepresenting the suggestions.The session now concludes with a call to either Place Details (New) or Address Validation. For more information, see Autocomplete (New) and session pricing.
Example request
With Place Autocomplete (New), you make a request and
pass all parameters in the GMSAutocompleteRequest instance:
Swift
let token = GMSAutocompleteSessionToken()
let northEastBounds = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874)
let southWestBounds = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572)
let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northEastBounds, southWestBounds)
let request = GMSAutocompleteRequest(query:"Sicilian piz")
request.filter = filter
request.sessionToken = token
GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { results, error in
// Handle response
})
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874);
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572);
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ kGMSPlaceTypeRestaurant ];
filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;
[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
// Handle response
for (GMSAutocompleteSuggestion *suggestion in results) {
if (suggestion.placeSuggestion) {
// Show place suggestion data.
}
}
}];