Il servizio Autocomplete (nuovo) è un'API iOS che restituisce dei suggerimenti sui luoghi in risposta a una richiesta. Nella richiesta, specifica stringa di ricerca testuale e limiti geografici che controllano l'area di ricerca.
Il servizio Completamento automatico (nuovo) può trovare corrispondenze per parole complete e sottostringhe dell'input, risolvendo nomi di luoghi, indirizzi e codici plus. Le applicazioni possono quindi inviare query a nome dell'utente per fornire suggerimenti immediati sui luoghi.
I suggerimenti di luoghi sono luoghi, ad esempio attività, indirizzi e punti di l'interesse, in base alla stringa di testo di input e all'area di ricerca specificate.
Ad esempio, chiami l'API utilizzando come input una stringa che contiene un numero input utente, "Spagh", con l'area di ricerca limitata alla città di New York. La risposta contiene un elenco di suggerimenti di luoghi che corrispondono alla ricerca stringa e area di ricerca, come il ristorante "Bar Caffè", insieme ai dettagli sul luogo.
I suggerimenti di luoghi restituiti sono progettati per essere presentati all'utente di poter selezionare il luogo desiderato. Puoi creare Dettagli luogo (Novità) per visualizzarne altri informazioni su uno qualsiasi dei suggerimenti relativi ai luoghi restituiti.
Richieste di completamento automatico (nuove)
Crea una richiesta di completamento automatico chiamando un metodo sul
GMSPlaceClient
Puoi trasmettere i parametri
GMSAutocompleteRequest
. La risposta fornisce suggerimenti di completamento automatico all'interno di un
GMSAutocompletePlaceSuggestion
.
La chiave API e i parametri query
sono obbligatori. Puoi anche includere
GMSAutocompleteSessionToken
di associare le richieste a una sessione di fatturazione
GMSAutocompleteFilter
da applicare ai risultati.
Per ulteriori informazioni sui parametri obbligatori e facoltativi, consulta la sezione dedicata ai parametri di questo documento.
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 per iOS (anteprima)
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. }
Risposte di completamento automatico (nuove)
Il completamento automatico restituisce un array di massimo cinque
GMSAutocompleteSuggestion
istanza. L'array contiene:
placeID
types
: tipi applicabili a questo luogo.distanceMeters
: distanza dall'origine.attributedFullText
: testo completo leggibile di un suggerimento.attributedPrimaryText
: testo principale leggibile di un suggerimento.attributedSecondaryText
: testo secondario leggibile di un suggerimento.structuredFormat
: il nome specifico e il testo che disambigua, ad esempio città o regione.
Parametri obbligatori
query
La stringa di testo in cui eseguire la ricerca. Specifica parole e sottostringhe complete, nomi di luoghi, indirizzi e Plus Code. Il servizio Completamento automatico (nuovo) restituisce le corrispondenze candidate in base a questa stringa e ordina i risultati in base alla pertinenza percepita.
Parametri facoltativi
tipi
Un luogo può avere un solo singolo tipo principale tra i tipi Tabella
A o Tabella
B.
Ad esempio, il tipo principale potrebbe essere mexican_restaurant
o steak_house
.
Per impostazione predefinita, l'API restituisce tutte le posizioni in base al parametro input
,
a prescindere dal valore del tipo principale
associato al luogo. Limita risultati
di un certo tipo primario o di un certo tipo primario passando
Parametro types
.
Utilizza questo parametro per specificare fino a cinque valori di tipo da Tabella A o Tabella B. Un luogo deve corrispondere uno dei valori di tipo primario specificati da includere nella risposta.
La richiesta viene rifiutata con un errore INVALID_REQUEST
se:
- Sono specificati più di cinque tipi.
- Vengono specificati tipi non riconosciuti.
Paesi
Includi solo i risultati dell'elenco di regioni specificate, specificate come array di un massimo di 15 ccTLD ("ccTLD ("top-level") dominio") valori a due caratteri. Se omesso, non vengono applicate limitazioni alla risposta. Ad esempio, per limitare le regioni a Germania e Francia:
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
SDK Places Swift per iOS (anteprima)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Se specifichi sia locationRestriction
sia countries
, i risultati sono
situata nell'area di intersezione delle due impostazioni.
inputOffset
L'offset Unicode su base zero che indica la posizione del cursore in
input
. La posizione del cursore può influire sulle previsioni restituite. Se
vuoto, il valore predefinito è la lunghezza di input
.
locationBias o locationRestriction
Puoi specificare locationBias
o locationRestriction
, ma non entrambi, per definire
l'area di ricerca. Considera locationRestriction
come una specifica della regione che
i risultati devono essere all'interno e locationBias
come specifica della regione in cui
i risultati devono essere vicini, ma possono essere fuori dall'area.
locationBias
specifica un'area in cui eseguire la ricerca. Questa località funge da bias, Ciò significa che è possibile restituire risultati per la località specificata, tra cui risultati al di fuori dell'area specificata.locationRestriction
specifica un'area in cui cercare. Risultati al di fuori del nell'area specificata non vengono restituite.
Specifica la regione locationBias
o locationRestriction
come rettangolare
o come cerchio.
Un cerchio è definito dal punto centrale e dal raggio in metri. Il raggio deve essere
compreso tra 0,0 e 50000,0 inclusi. Il valore predefinito è 0,0. Per
locationRestriction
, devi impostare il raggio su un valore maggiore di 0,0.
In caso contrario, la richiesta non restituisce alcun risultato.
Ad esempio:
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 per iOS (anteprima)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Un rettangolo è un'area visibile di latitudine e longitudine, rappresentata due volte in diagonale.
di fronte a low
e high
punti. Un'area visibile è considerata
una regione chiusa
e quindi include i confini. I limiti di latitudine devono essere compresi tra -90 e
90 gradi inclusi e i limiti di longitudine devono essere compresi tra -180 e 180
gradi inclusi:
- Se
low
=high
, l'area visibile è composta da quel singolo punto. - Se
low.longitude
>high.longitude
, l'intervallo di longitudine è invertito (il l'area visibile oltrepassa la linea di longitudine di 180 gradi). - Se
low.longitude
= -180 gradi ehigh.longitude
= 180 gradi, il include tutte le longitudini. - Se
low.longitude
= 180 gradi ehigh.longitude
= -180 gradi, il l'intervallo di longitudine è vuoto.
È necessario compilare entrambi i campi low
e high
, mentre la casella rappresentata non può essere
vuoto. Un'area visibile vuota genera un errore.
Ad esempio, questa area visibile racchiude completamente New York City:
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 per iOS (anteprima)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
origine
Il punto di origine da cui calcolare la distanza retta alla
destinazione (restituita come distanceMeters
). Se questo valore viene omesso,
distanza in linea retta non verrà restituita. Devono essere specificati come latitudine e
coordinate di longitudine:
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 per iOS (anteprima)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
regionCode
Il codice regione utilizzato per formattare la risposta, specificato come ccTLD ("top-level" dominio") a due caratteri. La maggior parte dei codici ccTLD è identica ai codici ISO 3166-1, con alcune eccezioni notevoli. Ad esempio, il ccTLD del Regno Unito è "uk". (.co.uk) mentre il codice ISO 3166-1 è "gb" (tecnicamente per l'entità "The Regno Unito di Gran Bretagna e Irlanda del Nord").
Se specifichi un codice regione non valido, l'API restituisce un INVALID_ARGUMENT
. Il parametro può influire sui risultati in base alla legge vigente.
sessionToken
I token di sessione sono stringhe generate dall'utente che monitorano Chiamate di completamento automatico (nuove) come "sessioni". Il completamento automatico (novità) utilizza i token di sessione per raggruppare fasi di query e selezione di una ricerca con completamento automatico da parte di un utente in una sessione discreta ai fini della fatturazione. Per ulteriori informazioni, consulta la sezione Sessione di token.
Esempi di completamento automatico (nuovi)
Utilizza locationRestriction e locationBias
Il completamento automatico (nuova) utilizza la differenziazione IP per impostazione predefinita
controllare l'area di ricerca. Con la differenziazione per IP, l'API utilizza l'indirizzo IP del
dispositivo per differenziare i risultati. Se vuoi, puoi utilizzare locationRestriction
o
locationBias
, ma non entrambi, per specificare
un'area in cui eseguire la ricerca.
La limitazione di località specifica l'area in cui eseguire la ricerca. Risultati al di fuori dell'intervallo specificato non vengono restituite. L'esempio seguente utilizza la limitazione di località per limitare la richiesta a una limitazione di località circolare con un raggio di 5000 metri centrato a 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 per iOS (anteprima)
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. }
Con la parzialità per località, questa funge da bias, ovvero per i risultati intorno a è possibile restituire la località specificata, inclusi i risultati al di fuori del in ogni area. L'esempio successivo modifica la richiesta precedente in modo da utilizzare la differenziazione per località:
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 per iOS (anteprima)
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. }
Tipi di utilizzo
Utilizza il parametro type per limitare i risultati di una richiesta in modo che riguardino un determinato tipo come elencato in Tabella A e Tabella B. Puoi specificare un array di cinque valori. Se omesso, vengono restituiti tutti i tipi.
L'esempio seguente specifica una stringa di query "Calcio" e utilizza i tipi
per limitare i risultati a strutture di tipo
"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 per iOS (anteprima)
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. }
Usa origine
Quando includi il parametro origin
nella richiesta, specificato come
coordinate di latitudine e longitudine, l'API include la distanza in linea retta
dall'origine alla destinazione nella risposta. La risposta restituisce l'errore
distanza pari a distanceMeters
.
Questo esempio imposta l'origine in base al centro di 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 per iOS (anteprima)
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. }
Attribuzioni
Puoi utilizzare il completamento automatico (novità) anche senza una mappa. Se mostri una mappa, deve essere una mappa di Google. Quando visualizzi suggerimenti dal servizio Autocomplete (New) senza una mappa, devi includere il logo Google visualizzato in linea con la ricerca field/results. Per ulteriori informazioni, consulta la sezione Visualizzazione del logo Google e attribuzioni.