O serviço Autocomplete (novo) é uma API do iOS que retorna sugestões de lugares em resposta a uma solicitação. Na solicitação, especifique uma string de pesquisa de texto e limites geográficos que controlam a área de pesquisa.
O serviço de preenchimento automático (novo) pode corresponder a palavras completas e substrings da entrada, resolvendo nomes de lugares, endereços e Plus Codes. À medida que a pessoa digita, os aplicativos enviam consultas e sugerem lugares instantaneamente.
As sugestões de lugar são locais, como empresas, endereços e pontos de interesse, com base na string de texto de entrada especificada e na área de pesquisa.
Por exemplo, você chama a API usando como entrada uma string que contém uma entrada parcial do usuário, "Spagh", com a área de pesquisa limitada a Nova York. A resposta contém uma lista de sugestões de lugar que correspondem à string de pesquisa e à área de pesquisa, como o restaurante "Cafe Spaghetti", além de detalhes sobre o local.
As sugestões de lugar retornadas são projetadas para serem apresentadas ao usuário para que ele possa selecionar o lugar desejado. Você pode fazer uma solicitação de Place Details (New) para receber mais informações sobre qualquer uma das sugestões de lugar retornadas.
É possível integrar a funcionalidade de preenchimento automático (novo) ao app de duas maneiras principais:
- Receber previsões de lugares de forma programática: chame a API diretamente para extrair previsões e exibi-las em uma interface de usuário personalizada.
- Adicionar o widget do Place Autocomplete: oferece uma experiência de preenchimento automático de pesquisa pronta para uso que mostra previsões conforme o usuário digita.
Receber previsões de lugares de forma programática
Solicitações de preenchimento automático (novas)
Crie uma solicitação de preenchimento automático chamando um método no
GMSPlacesClient
.
É possível transmitir parâmetros no
objeto
GMSAutocompleteRequest
. A resposta fornece sugestões de preenchimento automático em um objeto
GMSAutocompletePlaceSuggestion
.
A chave de API e os parâmetros query
são obrigatórios. Também é possível incluir
GMSAutocompleteSessionToken
para associar solicitações a uma sessão de faturamento e
GMSAutocompleteFilter
para aplicar aos resultados.
Versão do SDK do Swift para Places
Crie uma solicitação de preenchimento automático chamando um método no
PlacesClient
.
É possível transmitir parâmetros no
objeto
AutocompleteRequest
. A resposta fornece sugestões de preenchimento automático em um objeto
AutocompletePlaceSuggestion
.
A chave de API e os parâmetros query
são obrigatórios. Também é possível incluir
AutocompleteSessionToken
para associar solicitações a uma sessão de faturamento e
AutocompleteFilter
para aplicar aos resultados.
Para mais informações sobre parâmetros obrigatórios e opcionais, consulte a seção de parâmetros deste documento.
SDK do Places para 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. } } }];
Respostas de preenchimento automático (novo)
O preenchimento automático retorna uma matriz de até cinco
instâncias de GMSAutocompleteSuggestion
. A matriz contém:
placeID
types
: tipos que se aplicam a esse lugar.distanceMeters
: distância da origem.attributedFullText
: texto completo legível por humanos de uma sugestão.attributedPrimaryText
: texto principal legível por humanos de uma sugestão.attributedSecondaryText
: texto secundário legível por humanos de uma sugestão.structuredFormat
: o nome específico e o texto que elimina a ambiguidade, como cidade ou região.
Parâmetros obrigatórios
consulta
A string de texto em que pesquisar. Especifique palavras e substrings completas, nomes de lugares, endereços e Plus Codes. O serviço "Autocomplete (New)" retorna as correspondências possíveis com base nessa string e ordena os resultados com base na relevância.
Parâmetros opcionais
sessionToken
Os tokens de sessão são strings geradas pelo usuário que rastreiam chamadas de preenchimento automático (Novas), feitas pelo widget e chamadas programáticas, como "sessões". O preenchimento automático (novo) usa tokens de sessão para agrupar as fases de consulta e seleção de uma pesquisa de preenchimento automático do usuário em uma sessão discreta para fins de faturamento. Para mais informações, consulte Tokens de sessão.
Parâmetros opcionais do AutocompleteFilter
tipos
Um lugar só pode ter um tipo principal de tabela
A ou tabela
B associado a ele.
Por exemplo, o tipo principal pode ser mexican_restaurant
ou steak_house
.
Por padrão, a API retorna todos os lugares com base no parâmetro input
,
independente do valor do tipo principal associado ao lugar. Restringir os resultados
a um determinado tipo principal ou tipos principais transmitindo o parâmetro types
.
Use esse parâmetro para especificar até cinco valores de tipo da Tabela A ou da Tabela B. Um lugar precisa corresponder a um dos valores de tipo principal especificados para ser incluído na resposta.
A solicitação é rejeitada com um erro INVALID_REQUEST
se:
- Mais de cinco tipos foram especificados.
- Todos os tipos não reconhecidos são especificados.
Por exemplo, para limitar os resultados a lojas de artigos esportivos, especifique esse tipo no
AutocompleteFilter
:
SDK do Places para 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" ];
países
Inclui apenas os resultados da lista de regiões especificadas, especificados como uma matriz de até 15 valores de dois caracteres de ccTLD ("domínio de nível superior"). Se omitido, nenhuma restrição será aplicada à resposta. Por exemplo, para limitar as regiões à Alemanha e à França:
SDK do Places para 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 você especificar locationRestriction
e countries
, os resultados serão
localizados na área de interseção das duas configurações.
inputOffset
O deslocamento do caractere Unicode com base em zero que indica a posição do cursor em
input
. A posição do cursor pode influenciar quais previsões são retornadas. Se
vazio, o padrão é a duração de input
.
locationBias ou locationRestriction
É possível especificar locationBias
ou locationRestriction
, mas não ambos, para definir
a área de pesquisa. Pense em locationRestriction
como a especificação da região em que
os resultados precisam estar e em locationBias
como a especificação da região em que os
resultados precisam estar próximos, mas podem estar fora da área.
locationBias
especifica uma área para pesquisar. Esse local serve como uma viés, o que significa que os resultados em torno do local especificado podem ser retornados, incluindo resultados fora da área especificada.locationRestriction
especifica uma área para pesquisar. Os resultados fora da área especificada não são retornados.
Especifique a região locationBias
ou locationRestriction
como uma viewport
retangular ou como um círculo.
Um círculo é definido pelo ponto central e pelo raio em metros. O raio precisa estar
entre 0,0 e 500.000,0. O valor padrão é 0,0. Para
locationRestriction
, defina o raio como um valor maior que 0,0.
Caso contrário, a solicitação não vai retornar resultados.
Exemplo:
SDK do Places para 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);
Um retângulo é uma janela de visualização de latitude-longitude, representada como dois pontos low
e high
opostos diagonalmente. Uma viewport é considerada uma região fechada,
o que significa que ela inclui o limite. Os limites de latitude precisam variar entre -90 e 90 graus, e os limites de longitude precisam variar entre -180 e 180 graus:
- Se
low
=high
, a viewport consiste nesse único ponto. - Se
low.longitude
for maior quehigh.longitude
, o intervalo de longitude será invertido (a viewport cruza a linha de longitude de 180 graus). - Se
low.longitude
= -180 graus ehigh.longitude
= 180 graus, a viewport inclui todas as longitudes. - Se
low.longitude
= 180 graus ehigh.longitude
= -180 graus, o intervalo de longitude estará vazio.
low
e high
precisam ser preenchidos, e a caixa representada não pode estar
vazia. Uma viewport vazia resulta em um erro.
Por exemplo, esta viewport inclui toda a cidade de Nova York:
SDK do Places para 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);
origem
O ponto de origem a partir do qual a distância em linha reta até o destino será calculada (retornado como distanceMeters
). Se esse valor for omitido, a distância em linha reta não será retornada. Precisa ser especificado como coordenadas de latitude e longitude:
SDK do Places para 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
O código da região usado para formatar a resposta, especificado como um valor de dois caracteres de ccTLD ("domínio de nível superior"). A maioria dos códigos ccTLD é idêntica aos códigos ISO 3166-1, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), e o código ISO 3166-1 é "gb" (tecnicamente para a entidade "O Reino Unido da Grã-Bretanha e Irlanda do Norte").
Se você especificar um código de região inválido, a API vai retornar um erro INVALID_ARGUMENT
. O parâmetro pode afetar os resultados com base na legislação aplicável.
Adicionar o widget do Place Autocomplete
Para oferecer uma experiência consistente de preenchimento automático de lugares, adicione
o widget Place Autocomplete ao seu app. O widget oferece uma interface dedicada
em tela cheia que processa a entrada do usuário e mostra previsões de lugares para
o usuário, além de retornar objetos AutocompletePlaceSuggestion
ao app. Em seguida, você pode fazer uma solicitação Place Details
(New) para receber
mais informações sobre qualquer uma das previsões de lugares.
Assim como ao receber previsões de lugar de forma programática,
o widget do Place Autocomplete permite usar tokens de sessão para
agrupar solicitações de preenchimento automático em uma sessão para fins de faturamento. É possível transmitir um
token de sessão chamando
AutocompleteSessionToken()
.
Se você não fornecer um token de sessão, o widget vai criar um token de sessão
do Autocomplete, que poderá ser recebido pelo callback
onSelection
. Para mais informações sobre o uso de tokens de sessão, consulte Sobre tokens de
sessão.
Quando o valor de vinculação show
é definido como true
, o usuário é direcionado a uma
visualização em tela cheia, onde pode selecionar um lugar. À medida que o usuário digita, o widget
retorna sugestões de lugares, como empresas, endereços e pontos de
interesse. Quando o usuário
seleciona um lugar, o widget chama o gerenciador onSelection
com o lugar
selecionado e fecha a visualização em tela cheia.
Parâmetros do widget do Place Autocomplete
Além dos parâmetros disponíveis programaticamente, o widget do Place Autocomplete também oferece os parâmetros a seguir.
mostrar
show
especifica se o widget será mostrado.
AutocompleteUICustomization
Os parâmetros
AutocompleteUICustomization
especificam as personalizações da interface a serem aplicadas ao widget. As
opções de personalização são:
AutocompleteListDensity
. Esse parâmetro permite escolher a densidade da lista de sugestões,multiLine
outwoLine
.AutocompleteUIIcon
. Esse parâmetro permite escolher se o ícone padrão será mostrado para cada item da lista.
onSelection
O fechamento a ser executado quando um lugar for selecionado.
onError
A operação a ser executada quando ocorrer um erro. Um
PlacesError
será transmitido se ocorrer um erro.
Confira um exemplo de código completo.
Exemplos de preenchimento automático (novo)
Usar locationRestriction e locationBias
O preenchimento automático (novo) usa a distorção de IP por padrão para
controlar a área de pesquisa. Com a polarização de IP, a API usa o endereço IP do
dispositivo para polarizar os resultados. Você pode usar locationRestriction
ou
locationBias
, mas não ambos, para especificar
uma área a ser pesquisada.
A restrição de local especifica a área a ser pesquisada. Os resultados fora da área especificada não são retornados. O exemplo a seguir usa a restrição de local para limitar a solicitação a uma restrição de local circular com um raio de 5.000 metros centrado em São Francisco:
SDK do Places para 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. } } }];
Com a ênfase no local, o local serve como um viés, o que significa que os resultados em torno do local especificado podem ser retornados, incluindo resultados fora da área especificada. O próximo exemplo muda a solicitação anterior para usar a preferência de localização:
SDK do Places para 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. } } }];
Tipos de uso
Use o parâmetro types para restringir os resultados de uma solicitação a um determinado tipo, conforme listado na Tabela A e na Tabela B. É possível especificar uma matriz de até cinco valores. Se omitido, todos os tipos serão retornados.
O exemplo a seguir especifica uma string de consulta "Soccer" e usa o parâmetro
types para restringir os resultados a estabelecimentos do tipo
"sporting_goods_store"
:
SDK do Places para 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. } } }];
Usar origem
Quando você inclui o parâmetro origin
na solicitação, especificado como coordenadas de latitude e longitude, a API inclui a distância em linha reta da origem até o destino na resposta. A resposta retorna a
distância como distanceMeters
.
Neste exemplo, a origem é definida como o centro de São Francisco:
SDK do Places para 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. } } }];
Adicionar um widget do Places Autocomplete
SDK do Places para 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 } ) } } }
Atribuições
Você pode usar o Autocomplete (Novo) mesmo sem um mapa. Se você mostrar um mapa, ele terá que ser do Google. Quando você mostra sugestões do serviço de preenchimento automático (novo) sem um mapa, é necessário incluir o logotipo do Google exibido inline com o campo de pesquisa/resultados. Para mais informações, consulte Como exibir o logotipo e as atribuições do Google.