Le service Autocomplete (nouveau) est une API iOS qui renvoie des suggestions de lieux en réponse à une requête. Dans la requête, spécifiez chaîne de recherche de texte et les limites géographiques qui contrôlent la zone de recherche.
Le service de saisie semi-automatique (nouveau) peut correspondre mots et sous-chaînes de l'entrée, permettant de trouver des noms de lieux, des adresses et plus codes. Les applications peuvent donc envoyer des requêtes pour vous suggérer des lieux en temps réel.
Les suggestions de lieux sont des lieux (établissements, adresses et points de en fonction de la chaîne de texte d'entrée spécifiée et de la zone de recherche.
Par exemple, vous appelez l'API en utilisant comme entrée une chaîne contenant une chaîne partielle l'entrée utilisateur "Spagh", avec la zone de recherche limitée à New York. La réponse contient ensuite une liste de suggestions de lieux correspondant à la recherche chaîne et zone de recherche, par exemple le restaurant intitulé "Cafe Spaghetti", ainsi que des détails sur le lieu.
Les suggestions de lieux renvoyées sont conçues pour être présentées à l'utilisateur afin qu'il puisse sélectionner le lieu souhaité. Vous pouvez créer un Place Details (Nouveau) demandez-en plus des informations sur les suggestions de lieux affichées.
Requêtes Autocomplete (nouveau)
Créez une requête de saisie semi-automatique en appelant une méthode au niveau de la méthode
GMSPlaceClient
Vous pouvez transmettre des paramètres
GMSAutocompleteRequest
. La réponse fournit des suggestions de saisie semi-automatique dans un
GMSAutocompletePlaceSuggestion
.
La clé API et les paramètres query
sont obligatoires. Vous pouvez également inclure
GMSAutocompleteSessionToken
d'associer les requêtes à une session de facturation
GMSAutocompleteFilter
à appliquer aux résultats.
Pour en savoir plus sur les paramètres obligatoires et facultatifs, consultez la section Paramètres de ce document.
Swift
let token = GMSAutocompleteSessionToken() let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051) let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.types = [kGMSPlaceTypeRestaurant] filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds) let request = GMSAutocompleteRequest(query:"Spagh") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137); CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023); 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. } } }];
SDK Places Swift pour iOS (preview)
let center = (37.3913916, -122.0879074) let northEast = (37.388162, -122.088137) let southWest = (37.395804, -122.077023) let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest) let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias) let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): // Handle suggestions. case .failure(let placesError): // Handle error. }
Réponses de la saisie semi-automatique (nouvelle version)
La saisie semi-automatique renvoie jusqu'à cinq tableaux
GMSAutocompleteSuggestion
instances. Le tableau contient:
placeID
types
: types qui s'appliquent à ce lieu.distanceMeters
: distance de l'origine.attributedFullText
: texte complet d'une suggestion, lisible par l'humain.attributedPrimaryText
: texte principal d'une suggestion, lisible par l'humain.attributedSecondaryText
: texte secondaire lisible d'une suggestion.structuredFormat
: nom spécifique et texte clarifiant, comme "ville" ou dans la même région.
Paramètres obligatoires
requête
Chaîne de texte dans laquelle effectuer la recherche. Spécifiez des mots complets et des sous-chaînes, placez noms, adresses et plus codes. La Le service de saisie semi-automatique (nouveau) renvoie les correspondances de candidats basée sur cette chaîne et trie les résultats en fonction de leur pertinence estimée.
Paramètres facultatifs
Types
Un lieu ne peut avoir qu'un seul type principal de types Tableau
A ou Tableau
B qui lui est associée.
Par exemple, le type principal peut être mexican_restaurant
ou steak_house
.
Par défaut, l'API renvoie tous les lieux en fonction du paramètre input
, quelle que soit la valeur de type principal associée au lieu. Limiter les résultats
d'un certain type principal en transmettant
Paramètre types
.
Utilisez ce paramètre pour spécifier jusqu'à cinq valeurs de type issues du Tableau A ou Tableau B. Un lieu doit correspondre l'une des valeurs de type principal spécifiées à inclure dans la réponse.
La requête est rejetée avec une erreur INVALID_REQUEST
dans les cas suivants:
- Plus de cinq types sont spécifiés.
- Tous les types non reconnus sont spécifiés.
pays
Inclure uniquement les résultats de la liste des régions spécifiées, sous la forme d'un tableau jusqu'à 15 ccTLD ("premier niveau domaine") à deux caractères. Si elle est omise, aucune restriction n'est appliquée à la réponse. Par exemple, pour limiter les régions à l'Allemagne et à la France:
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
SDK Places Swift pour iOS (preview)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Si vous spécifiez à la fois locationRestriction
et countries
, les résultats sont
située dans la zone d'intersection des deux paramètres.
inputOffset
Décalage du caractère Unicode de base zéro indiquant la position du curseur dans
input
La position du curseur peut avoir une influence sur les prédictions renvoyées. Si
vide, la longueur par défaut est input
.
locationBias ou locationRestriction
Vous pouvez spécifier locationBias
ou locationRestriction
, mais pas les deux, pour définir
la zone de recherche. Considérez locationRestriction
comme spécifiant la région dans laquelle les résultats doivent se trouver, et locationBias
comme spécifiant la région à proximité de laquelle les résultats doivent se trouver, mais qui peut être en dehors de la zone.
locationBias
spécifie une zone à rechercher. Cet emplacement sert de biais, ce qui signifie que des résultats situés à proximité du lieu spécifié peuvent être renvoyés, y compris en dehors de la zone spécifiée.locationRestriction
spécifie une zone à rechercher. Les résultats en dehors de la zone spécifiée ne sont pas renvoyés.
Spécifiez la région locationBias
ou locationRestriction
sous forme de rectangle
dans la fenêtre d'affichage
ou sous forme de cercle.
Un cercle est défini par le point central et le rayon en mètres. Le rayon doit être
compris entre 0.0 et 50000.0, inclus. La valeur par défaut est 0.0. Pour
locationRestriction
, vous devez définir le rayon sur une valeur supérieure à 0,0.
Sinon, la requête ne renvoie aucun résultat.
Exemple :
Swift
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
SDK Places Swift pour iOS (preview)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Un rectangle est une fenêtre d'affichage de latitude-longitude représentée par deux
en face des points low
et high
. Une fenêtre d'affichage est considérée comme une région fermée.
ce qui signifie qu'elle
inclut ses limites. La latitude doit être comprise entre -90 et
90 degrés inclus, et la longitude doit être comprise entre -180 et 180
degrés inclus:
- Si
low
=high
, la fenêtre d'affichage est constituée de ce seul point. - Si
low.longitude
>high.longitude
, la plage de longitudes est inversée traverse la ligne de longitude à 180 degrés). - Si
low.longitude
= -180 degrés ethigh.longitude
= 180 degrés, la la fenêtre d'affichage inclut toutes les longitudes. - Si
low.longitude
= 180 degrés ethigh.longitude
= -180 degrés, la la plage de longitudes est vide.
Les champs low
et high
doivent tous les deux être renseignés, et la zone représentée ne peut pas l'être
vide. Une fenêtre d'affichage vide entraîne une erreur.
Par exemple, cette fenêtre d'affichage englobe entièrement New York:
Swift
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Objective-C
CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087); CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceRectangularLocationOption(high, low);
SDK Places Swift pour iOS (preview)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
origine
Point de départ à partir duquel calculer la distance en ligne droite par rapport à la
destination (renvoyée sous la forme distanceMeters
). Si cette valeur est omise,
la distance en ligne droite n'est pas renvoyée. Doit être spécifié en tant que latitude et
longitude:
Swift
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
SDK Places Swift pour iOS (preview)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
regionCode
Le code régional utilisé pour mettre en forme la réponse, spécifié en tant que ccTLD ("premier niveau domaine") à deux caractères. La plupart des codes ccTLD sont identiques aux codes ISO 3166-1, avec quelques exceptions notables. Par exemple, le ccTLD du Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb" (techniquement pour l'entité "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord").
Si vous spécifiez un code de région non valide, l'API renvoie un INVALID_ARGUMENT
. Ce paramètre peut avoir un impact sur les résultats en fonction de la législation applicable.
sessionToken
Les jetons de session sont des chaînes générées par l'utilisateur qui suivent La saisie semi-automatique (nouvelle version) appelle les "sessions". La saisie semi-automatique (nouvelle) utilise des jetons de session pour regrouper les phases de requête et de sélection d'une recherche de saisie semi-automatique d'un utilisateur dans une session distincte à des fins de facturation. Pour en savoir plus, consultez la page Session les jetons.
Exemples de saisie semi-automatique (nouveau)
Utiliser locationRestriction et locationBias
La saisie semi-automatique (nouvelle version) utilise par défaut la pondération de l'adresse IP pour
contrôler la zone de recherche. Avec la pondération des adresses IP, l'API utilise l'adresse IP du
appareil pour fausser les résultats. Vous pouvez éventuellement utiliser locationRestriction
ou
locationBias
, mais pas les deux, pour spécifier
une zone à rechercher.
Une restriction géographique permet de spécifier la zone dans laquelle effectuer la recherche. Résultats en dehors de la plage de dates spécifiée ne sont pas renvoyées. L'exemple suivant utilise une restriction d'emplacement pour limiter Requête d'une restriction d'emplacement circulaire avec un rayon de 5 000 mètres centré à San Francisco:
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius); 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. } } }];
SDK Places Swift pour iOS (bêta)
let center = (37.775061, -122.419400) let radius = 5000.0 let restriction = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionRestriction: restriction) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Avec le biais de localisation, l'emplacement sert de biais, ce qui signifie que des résultats autour de l'emplacement spécifié peuvent être renvoyés, y compris en dehors de la zone spécifiée. L'exemple suivant modifie la requête précédente pour utiliser un biais de localisation:
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius); 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. } } }];
SDK Places Swift pour iOS (bêta)
let center = (37.775061, -122.419400) let radius = 5000.0 let bias = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionBias: bias) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Types d'utilisation
Utilisez le paramètre types pour limiter les résultats d'une demande à un certain type comme indiqué dans le Tableau A et Tableau B. Vous pouvez spécifier comportant jusqu'à cinq valeurs. Si cette valeur est omise, tous les types sont renvoyés.
L'exemple suivant spécifie une chaîne de requête de "Soccer" et utilise les types
pour limiter les résultats aux établissements de type
"sporting_goods_store"
:
Swift
let token = GMSAutocompleteSessionToken() let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"] let request = GMSAutocompleteRequest(query:"Soccer") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"]; 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. } } }];
SDK Places Swift pour iOS (bêta)
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ]) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Utiliser l'origine
Lorsque vous incluez le paramètre origin
dans la requête, spécifié en tant que
de latitude et de longitude, l'API inclut la distance en ligne droite
de l'origine à la destination dans la réponse. La réponse renvoie
la distance est de distanceMeters
.
Dans l'exemple ci-dessous, le point de départ est défini sur le centre de San Francisco:
Swift
let token = GMSAutocompleteSessionToken() let origin = CLLocation(latitude: 37.7749, longitude: -122.4194) let filter = GMSAutocompleteFilter() filter.origin = origin let request = GMSAutocompleteRequest(query:"Amoeba") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"]; 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. } } }];
SDK Places Swift pour iOS (preview)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194)) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Attributions
Vous pouvez utiliser la saisie semi-automatique (nouvelle) même sans carte. Si vous affichez une carte, il doit s'agir d'une carte Google. Lorsque vous affichez Suggestions du service Autocomplete (Nouveau) sans carte, vous devez inclure le logo Google affiché dans la barre de recherche field/results. Pour en savoir plus, consultez la section Afficher le logo Google et attributions.