Il servizio Autocompletamento (nuovo) è un'API per iOS che restituisce suggerimenti di luoghi in risposta a una richiesta. Nella richiesta, specifica una stringa di ricerca di testo 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 i nomi di luoghi, indirizzi e codici plus. Le applicazioni possono quindi inviare query man mano che l'utente digita per fornire suggerimenti sui luoghi in tempo reale.
I suggerimenti di luoghi sono luoghi, come attività, indirizzi e punti d'interesse, in base alla stringa di testo inserita e all'area di ricerca specificata.
Ad esempio, chiami l'API utilizzando come input una stringa contenente un input parziale dell'utente, "Spagh", con l'area di ricerca limitata a New York. La risposta contiene quindi un elenco di suggerimenti di luoghi corrispondenti alla stringa di ricerca e all'area di ricerca, ad esempio il ristorante denominato "Cafe Spaghetti", insieme ai dettagli del luogo.
I suggerimenti di luoghi restituiti sono progettati per essere presentati all'utente in modo che possa selezionare il luogo desiderato. Puoi effettuare una richiesta Place Details (Nuova) per avere ulteriori informazioni su uno dei suggerimenti di luoghi restituiti.
Puoi integrare la funzionalità di completamento automatico (nuova) nella tua app in due modi principali:
- Ottieni le previsioni dei luoghi in modo programmatico: chiama direttamente l'API per recuperare le previsioni e visualizzarle in un'interfaccia utente personalizzata.
- Aggiungi il widget di completamento automatico dei luoghi: offre un'esperienza di completamento automatico della ricerca pronta all'uso che mostra le previsioni man mano che l'utente digita.
Ottenere le previsioni dei luoghi in modo programmatico
Richieste di completamento automatico (nuove)
Crea una richiesta di completamento automatico chiamando un metodo su
GMSPlacesClient
.
Puoi passare i parametri nell'oggetto
GMSAutocompleteRequest
. La risposta fornisce suggerimenti di completamento automatico all'interno di un
oggetto GMSAutocompletePlaceSuggestion
.
La chiave API e i parametri
query
sono obbligatori. Puoi anche includere
GMSAutocompleteSessionToken
per associare le richieste a una sessione di fatturazione e
GMSAutocompleteFilter
da applicare ai risultati.
Versione dell'SDK Places Swift
Crea una richiesta di completamento automatico chiamando un metodo su
PlacesClient
.
Puoi passare i parametri nell'oggetto
AutocompleteRequest
. La risposta fornisce suggerimenti di completamento automatico all'interno di un
oggetto AutocompletePlaceSuggestion
.
La chiave API e i parametri query
sono obbligatori. Puoi anche includere
AutocompleteSessionToken
per associare le richieste a una sessione di fatturazione e
AutocompleteFilter
da applicare ai risultati.
Per ulteriori informazioni sui parametri obbligatori e facoltativi, consulta la sezione Parametri di questo documento.
SDK Places per Swift
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. }
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. } } }];
Risposte con completamento automatico (novità)
Il completamento automatico restituisce un array di massimo cinque
GMSAutocompleteSuggestion
istanze. L'array contiene:
placeID
types
: i tipi che si applicano a questo luogo.distanceMeters
: distanza dall'origine.attributedFullText
: testo completo di un suggerimento leggibile da una persona.attributedPrimaryText
: testo principale di un suggerimento leggibile da una persona.attributedSecondaryText
: testo secondario di un suggerimento leggibile da una persona.structuredFormat
: il nome specifico e il testo per eliminare le ambiguità, ad esempio città o regione.
Parametri obbligatori
query
La stringa di testo in cui cercare. 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
sessionToken
I token di sessione sono stringhe generate dagli utenti che monitorano le chiamate di completamento automatico (Nuova), sia quelle effettuate tramite il widget sia quelle programmatiche, come "sessioni". La funzionalità di completamento automatico (nuova) utilizza i token di sessione per raggruppare le fasi di query e selezione di una ricerca di completamento automatico dell'utente in una sessione distinta ai fini della fatturazione. Per ulteriori informazioni, consulta Token di sessione.
Parametri facoltativi di AutocompleteFilter
tipi
A un luogo può essere associato un solo tipo principale dei tipi Tabella A o Tabella B.
Ad esempio, il tipo principale potrebbe essere mexican_restaurant
o steak_house
.
Per impostazione predefinita, l'API restituisce tutti i luoghi in base al parametro input
,
indipendentemente dal valore del tipo principale associato al luogo. Limita i risultati
a essere di un determinato tipo principale o di tipi principali passando il parametro types
.
Utilizza questo parametro per specificare fino a cinque valori di tipo della Tabella A o della Tabella B. Un luogo deve corrispondere a uno dei valori di tipo principale specificati per essere incluso nella risposta.
La richiesta viene rifiutata con un errore INVALID_REQUEST
se:
- Sono stati specificati più di cinque tipi.
- Eventuali tipi non riconosciuti vengono specificati.
Ad esempio, per limitare i risultati ai negozi di articoli sportivi, specifica questo tipo nel AutocompleteFilter
:
SDK Places per Swift
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
Swift
let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ];
Paesi
Includi solo i risultati dell'elenco delle regioni specificate, specificato come un array di massimo 15 valori di due caratteri di ccTLD ("top-level domain"). Se omesso, non vengono applicate limitazioni alla risposta. Ad esempio, per limitare le regioni a Germania e Francia:
SDK Places per Swift
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Se specifichi sia locationRestriction
che countries
, i risultati si trovano
nella zona di intersezione delle due impostazioni.
inputOffset
Lo scarto del carattere Unicode a partire da 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 la regione in cui devono trovarsi i risultati e locationBias
come la regione in cui devono trovarsi i risultati, ma che può essere al di fuori dell'area.
locationBias
specifica un'area in cui cercare. Questa posizione funge da bias, il che significa che possono essere restituiti risultati relativi alla posizione specificata, inclusi risultati al di fuori dell'area specificata.locationRestriction
specifica un'area in cui cercare. I risultati al di fuori dell'area specificata non vengono restituiti.
Specifica la regione locationBias
o locationRestriction
come area visibile 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 risultati.
Ad esempio:
SDK Places per Swift
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
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);
Un rettangolo è un'area visibile di latitudine e longitudine, rappresentata da due punti low
e high
diagonalmente opposti. Un viewport è considerato una regione chiusa,
ovvero include il suo confine. I limiti di latitudine devono essere compresi tra -90 e 90 gradi inclusi e i limiti di longitudine tra -180 e 180 gradi inclusi:
- Se
low
=high
, l'area visibile è costituita da quel singolo punto. - Se
low.longitude
>high.longitude
, l'intervallo di longitudine è invertito (il viewport attraversa la linea di longitudine di 180 gradi). - Se
low.longitude
= -180 gradi ehigh.longitude
= 180 gradi, il visualizzatore include tutte le longitudini. - Se
low.longitude
= 180 gradi ehigh.longitude
= -180 gradi, l'intervallo di longitudine è vuoto.
Sia low
che high
devono essere compilati e la casella rappresentata non può essere vuota. Un viewport vuoto genera un errore.
Ad esempio, questo viewport racchiude completamente New York:
SDK Places per Swift
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
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);
origine
Il punto di partenza da cui calcolare la distanza in linea retta fino alla destinazione (restituito come distanceMeters
). Se questo valore viene omesso, la distanza in linea retta non verrà restituita. Deve essere specificato come coordinate di latitudine e longitudine:
SDK Places per Swift
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
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];
regionCode
Il codice regione utilizzato per formattare la risposta, specificato come valore di due caratteri del dominio di primo livello nazionale ("top-level domain"). La maggior parte dei codici ccTLD è identica ai codici ISO 3166-1, con alcune eccezioni notevoli. Ad esempio, il TLD di primo livello del Regno Unito è "uk " (.co.uk), mentre il codice ISO 3166-1 è"gb " (tecnicamente per l'entità "Il Regno Unito di Gran Bretagna e Irlanda del Nord").
Se specifichi un codice regione non valido, l'API restituisce un errore INVALID_ARGUMENT
. Il parametro può influire sui risultati in base alla legge vigente.
Aggiungere il widget Place Autocomplete
Per offrire più facilmente un'esperienza di completamento automatico dei luoghi coerente, puoi aggiungere il widget corrispondente alla tua app. Il widget fornisce un'interfaccia a schermo intero dedicata che gestisce l'input dell'utente e mostra le previsioni sui luoghi, restituendo al contempo oggetti AutocompletePlaceSuggestion
all'app. Puoi quindi effettuare una richiesta Place Details (New) per ottenere ulteriori informazioni su qualsiasi previsione sui luoghi.
Come quando ricevi le previsioni dei luoghi in modo programmatico, il widget Place Autocomplete ti consente di utilizzare i token di sessione per raggruppare le richieste di completamento automatico in una sessione a fini di fatturazione. Puoi passare un
token di sessione chiamando
AutocompleteSessionToken()
.
Se non fornisci un token di sessione, il widget ne creerà uno per il completamento automatico, che potrai poi ottenere dal callback onSelection
. Per ulteriori informazioni sull'utilizzo dei token di sessione, consulta Informazioni sui token di sessione.
Quando il valore di associazione show
è impostato su true
, l'utente viene indirizzato a una visualizzazione a schermo intero in cui può selezionare un luogo. Mentre l'utente digita, il widget
restituisce suggerimenti per luoghi come attività, indirizzi e punti d'interesse. Quando l'utente seleziona un luogo, il widget chiama l'handler onSelection
con il luogo selezionato e chiude la visualizzazione a schermo intero.
Parametri del widget Place Autocomplete
Oltre ai parametri disponibili tramite programmazione, il widget Place Autocomplete offre anche i seguenti parametri.
mostra
show
specifica se il widget viene visualizzato.
AutocompleteUICustomization
I parametri
AutocompleteUICustomization
specificano le personalizzazioni dell'interfaccia utente da applicare al widget. Le opzioni di personalizzazione sono:
AutocompleteListDensity
. Questo parametro ti consente di scegliere la densità dell'elenco di suggerimenti,multiLine
otwoLine
.AutocompleteUIIcon
. Questo parametro ti consente di scegliere se mostrare o meno l'icona predefinita per ogni voce dell'elenco.
onSelection
La chiusura da eseguire quando viene selezionato un luogo.
onError
La chiusura da eseguire quando si verifica un errore. Se si verifica un errore, verrà passato un valore PlacesError
.
Guarda un esempio di codice completo.
Esempi di completamento automatico (nuovo)
Utilizzare locationRestriction e locationBias
Per impostazione predefinita, la funzionalità di completamento automatico (nuova) utilizza la predisposizione IP per controllare l'area di ricerca. Con la predisposizione IP, l'API utilizza l'indirizzo IP del
dispositivo per orientare i risultati. Se vuoi, puoi utilizzare locationRestriction
o
locationBias
, ma non entrambi, per specificare
un'area di ricerca.
La restrizione della località specifica l'area in cui cercare. I risultati al di fuori dell'area specificata non vengono restituiti. L'esempio seguente utilizza la restrizione della località per limitare la richiesta a una restrizione della località circolare con un raggio di 5000 metri centrato su San Francisco:
SDK Places per Swift
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. }
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. } } }];
Con la distorsione della posizione, la posizione funge da bias, il che significa che possono essere restituiti risultati relativi alla località specificata, inclusi quelli al di fuori dell'area specificata. L'esempio seguente modifica la richiesta precedente in modo da utilizzare il bias di geolocalizzazione:
SDK Places per Swift
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. }
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. } } }];
Tipi di utilizzo
Utilizza il parametro types per limitare i risultati di una richiesta a un determinato tipo come indicato nella Tabella A e nella Tabella B. Puoi specificare un array di massimo cinque valori. Se omesso, vengono restituiti tutti i tipi.
L'esempio seguente specifica una stringa di query "Calcio" e utilizza il parametro types per limitare i risultati agli stabilimenti di tipo "sporting_goods_store"
:
SDK Places per Swift
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. }
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. } } }];
Utilizza l'origine
Quando includi il parametro origin
nella richiesta, specificato come coordinate di latitudine e longitudine, l'API include la distanza in linea retta dalla stazione di partenza alla stazione di destinazione nella risposta. La risposta restituisce la distanza come distanceMeters
.
Questo esempio imposta l'origine sul centro di San Francisco:
SDK Places per Swift
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. }
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. } } }];
Aggiungere un widget di completamento automatico di Luoghi
SDK Places per Swift
struct PlaceAutocompleteDemoView: View { @State private var fetchedPlace: Place? @State private var placesError: PlacesError? @State private var showWidget = false public var body: some View { VStack { Button("Search for a place") { showWidget.toggle() } .placeAutocomplete( show: $showWidget, onSelection: { (autocompletePlaceSuggestion, autocompleteSessionToken) in Task { let placesClient = await PlacesClient.shared let fetchPlaceRequest = FetchPlaceRequest( placeID: autocompletePlaceSuggestion.placeID, placeProperties: [.displayName, .formattedAddress], sessionToken: autocompleteSessionToken ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("Fetched place: \(place)") self.fetchedPlace = place case .failure(let placesError): print("Failed to fetch place: \(placesError)") self.placesError = placesError } } }, onError: { placesError in self.placesError = placesError } ) } } }
Attribuzioni
Puoi utilizzare la funzionalità di completamento automatico (nuova) anche senza una mappa. Se mostri una mappa, deve essere una mappa di Google. Quando mostri i suggerimenti del servizio Autocompletamento (nuovo) senza una mappa, devi includere il logo di Google visualizzato in linea con il campo di ricerca/i risultati. Per maggiori informazioni, consulta la sezione Mostrare il logo di Google e le attribuzioni.