O Place Autocomplete (legado) é um serviço da Web que retorna previsões de lugares em resposta a uma solicitação HTTP. A solicitação especifica uma string de pesquisa textual e limites geográficos opcionais. O serviço pode ser usado para fornecer funcionalidade de preenchimento automático para pesquisas geográficas baseadas em texto, retornando lugares como empresas, endereços e pontos de interesse à medida que um usuário digita.
Solicitações do Place Autocomplete (legado)
O Place Autocomplete (legado) faz parte da API Places e compartilha uma chave de API e cotas com a API Places.
O Place Autocomplete (legado) pode trazer palavras completas e substrings, sugerindo nomes e endereços de lugares, além de Plus Codes. À medida que a pessoa digita, os aplicativos enviam consultas e sugerem previsões de local instantaneamente.
Você precisa formatar os códigos corretamente. Isso significa que você precisa usar o escape de URL para o sinal de adição, que é %2B, e para os espaços, que é %20.
- O código global é um código de área com quatro caracteres e um código local com, pelo menos, seis caracteres. Por exemplo, o código global de escape de URL
849VCWC8+R9é849VCWC8%2BR9. - O código composto é um código local com seis caracteres (ou mais) e um local explícito. Por exemplo, o código composto com escape de URL
CWC8+R9 Mountain View, CA, USAéCWC8%2BR9%20Mountain%20View%20CA%20USA.
As previsões retornadas são projetadas para serem apresentadas ao usuário e ajudá-lo a selecionar o lugar desejado. É possível enviar uma solicitação de Place Details (legado) para mais informações sobre qualquer um dos lugares retornados.
Uma solicitação do Place Autocomplete (legado) é um URL HTTP do seguinte formato:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
em que output pode ser um dos seguintes valores:
json(recomendado) indica a saída em JavaScript Object Notation (JSON)xmlindica saída como XML
Alguns parâmetros são necessários para iniciar uma solicitação do Place Autocomplete (legado).
Como é padrão em URLs, todos os parâmetros são separados usando o caractere E comercial (&). A lista de parâmetros e os valores possíveis estão enumerados abaixo.
Parâmetros obrigatórios
-
entrada
A string de texto em que a pesquisa será feita. O serviço Place Autocomplete retorna as correspondências possíveis de acordo com essa string e ordena os resultados com base na relevância.
Parâmetros opcionais
-
do Cloud
Um agrupamento de lugares a que você quer restringir seus resultados. É possível usar componentes para filtrar até cinco países. Os países precisam ser transmitidos como um código de país de dois caracteres compatível com ISO 3166-1 Alfa-2. Por exemplo,
components=country:frrestringe os resultados a lugares na França. Para transmitir vários países, é preciso usar vários filtroscountry:XX, com o caractere de barra vertical|como separador. Por exemplo:components=country:us|country:pr|country:vi|country:gu|country:mprestringiria seus resultados a lugares nos Estados Unidos e nos territórios organizados não incorporados.Observação:se você receber resultados inesperados com um código de país, verifique se o código usado inclui os países, territórios dependentes e áreas especiais de interesse geográfico que você pretende. Para mais detalhes sobre códigos, acesse Wikipédia: Lista de códigos de país ISO 3166 ou a Plataforma de navegação on-line ISO (links em inglês). -
language
O idioma em que os resultados serão retornados.
- Consulte a lista de idiomas disponíveis. O Google atualiza os idiomas aceitos com frequência, então esta lista pode não estar completa.
-
Se
languagenão for fornecido, a API tentará usar o idioma preferido, conforme especificado no cabeçalhoAccept-Language. - A API faz o possível para fornecer um endereço legível para o usuário e os moradores locais. Para isso, ele retorna endereços em português, transliterados para um script legível pelo usuário, se necessário, observando o idioma preferido. Todos os outros endereços são retornados no idioma preferido. Todos os componentes de endereço são retornados no mesmo idioma, que é escolhido no primeiro componente.
- Se um nome não estiver disponível no idioma preferido, a API usará a correspondência mais próxima.
- O idioma preferido tem uma pequena influência no conjunto de resultados que a API escolhe retornar e na ordem em que eles são retornados. O geocodificador interpreta abreviações de maneira diferente dependendo do idioma, como as abreviações de tipos de rua ou sinônimos que podem ser válidos em um idioma, mas não em outro. Por exemplo, utca e tér são sinônimos de rua em húngaro.
-
local
O ponto em torno do qual as informações do lugar serão recuperadas. Ele precisa ser especificado como
latitude,longitude. O parâmetroradiustambém precisa ser fornecido ao especificar um local. Seradiusnão for fornecido, o parâmetrolocationserá ignorado.Ao usar a API Text Search, o parâmetro "location" pode ser substituído se a "query" contiver um local explícito, como "Mercado em Barcelona". -
locationbias
Prefira resultados em uma área especificada, informando um raio mais latitude/longitude ou dois pares de latitude/longitude que representam os pontos de um retângulo. Se esse parâmetro não for especificado, a API usará a tendência de endereço IP por padrão.
-
Viés de IP: instrui a API a usar a tendência de endereço IP. Transmita a string
ipbias(essa opção não tem parâmetros adicionais). -
Circular: uma string que especifica o raio em metros, além de latitude/longitude em graus decimais. Use o seguinte formato:
circle:radius@lat,lng. -
Retangular: uma string que especifica dois pares de latitude/longitude em graus decimais, representando os pontos sul/oeste e norte/leste de um retângulo. Use
o seguinte formato:
rectangle:south,west|north,east. Os valores leste/oeste são ajustados ao intervalo -180, 180, e os valores norte/sul são ajustados ao intervalo -90, 90.
-
Viés de IP: instrui a API a usar a tendência de endereço IP. Transmita a string
-
locationrestriction
Restrinja os resultados a uma área especificada, informando um raio mais latitude/longitude ou dois pares de latitude/longitude que representam os pontos de um retângulo.
-
Circular: uma string que especifica o raio em metros, além de latitude/longitude em graus decimais. Use o seguinte formato:
circle:radius@lat,lng. -
Retangular: uma string que especifica dois pares de latitude/longitude em graus decimais, representando os pontos sul/oeste e norte/leste de um retângulo. Use
o seguinte formato:
rectangle:south,west|north,east. Os valores leste/oeste são ajustados ao intervalo -180, 180, e os valores norte/sul são ajustados ao intervalo -90, 90.
-
Circular: uma string que especifica o raio em metros, além de latitude/longitude em graus decimais. Use o seguinte formato:
-
offset
A posição, no termo de entrada, do último caractere que o serviço usa para corresponder a previsões. Por exemplo, se a entrada for
Googlee o deslocamento for 3, o serviço vai corresponder aGoo. A string determinada pelo ajuste é comparada apenas com a primeira palavra do termo de entrada. Por exemplo, se o termo de entrada forGoogle abce o deslocamento for 3, o serviço tentará fazer a correspondência comGoo abc. Se nenhum valor for fornecido, o serviço usará todo o termo. O deslocamento geralmente precisa ser definido como a posição do cursor de texto. -
origem
O ponto de origem de onde calcular a distância em linha reta até o destino (retornado como
distance_meters). Se esse valor for omitido, a distância em linha reta não será retornada. Precisa ser especificado comolatitude,longitude. -
raio
Define a distância (em metros) dentro da qual os resultados de lugares serão retornados. Você pode influenciar os resultados de um círculo especificado ao transmitir um parâmetro
locationeradius. Isso instrui o serviço Places a preferir mostrar resultados dentro desse círculo. Os resultados fora da área definida ainda podem ser exibidos.O raio será automaticamente limitado a um valor máximo, dependendo do tipo de pesquisa e de outros parâmetros.
- Preenchimento automático: 50.000 metros
-
Nearby Search:
- com
keywordouname: 50.000 metros -
sem
keywordouname-
Até 50.000 metros, ajustados dinamicamente com base na densidade da área, independente do parâmetro
rankby. -
Ao usar
rankby=distance, o parâmetro de raio não será aceito e resultará em umINVALID_REQUEST.
-
Até 50.000 metros, ajustados dinamicamente com base na densidade da área, independente do parâmetro
- com
- Query Autocomplete: 50.000 metros
- Text Search: 50.000 metros
-
região
O código da região, especificado como um valor de dois caracteres ccTLD ("domínio de nível superior"). A maioria dos códigos de 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), enquanto o código ISO 3166-1 é "gb" (tecnicamente para a entidade "Reino Unido da Grã-Bretanha e Irlanda do Norte").
-
sessiontoken
Uma string aleatória que identifica uma sessão de preenchimento automático para fins de faturamento.
A sessão começa quando o usuário começa a digitar uma consulta e termina quando ele seleciona um lugar e uma chamada para Place Details é feita. Cada sessão pode ter várias consultas, seguidas por uma seleção de lugar. As chaves de API usadas em cada solicitação de uma sessão precisam pertencer ao mesmo projeto do console do Google Cloud. Após a conclusão de uma sessão, o token perde a validade. Seu app precisa gerar um novo token para cada sessão. Se o parâmetro
sessiontokenfor omitido ou você reutilizar um token de sessão, a sessão será cobrada como se nenhum token tivesse sido fornecido, e cada solicitação será faturada separadamente.Recomendamos as seguintes diretrizes:
- Use tokens de sessão em todas as sessões de preenchimento automático.
- Gere um novo token para cada sessão. Recomendamos usar um UUID da versão 4.
- Verifique se as chaves de API usadas em todas as solicitações de Place Autocomplete e Place Details em uma sessão pertencem ao mesmo projeto do console do Cloud.
- Transmita um token de sessão exclusivo para cada sessão nova. Se você usar o mesmo token para mais de uma sessão, cada solicitação vai ser faturada individualmente.
-
strictbounds
Retorna apenas os lugares que estão na região definida por
locationeradius. Essa é uma restrição, e não um viés. Isso significa que os resultados fora dessa região não serão retornados, mesmo que correspondam à entrada do usuário. -
tipos
É possível restringir os resultados de uma solicitação do Place Autocomplete a um determinado tipo transmitindo o parâmetro
types. Esse parâmetro especifica um tipo ou uma coleção de tipos, conforme listado em Tipos de lugares. Se nada for especificado, todos os tipos serão retornados.Um lugar só pode ter um único tipo principal entre os tipos listados na Tabela 1 ou na Tabela 2. Por exemplo, um hotel que serve comida pode ser retornado apenas com
types=lodginge não comtypes=restaurant.Para o valor do parâmetro
types, é possível especificar:-
Até cinco valores da Tabela 1 ou da Tabela 2. Para vários valores, separe cada um com uma
|(barra vertical). Exemplo:types=book_store|cafe -
Qualquer filtro único compatível na Tabela 3. Não é possível misturar coleções de tipos.
A solicitação será rejeitada com um erro
INVALID_REQUESTse: -
Exemplos do Place Autocomplete (legado)
Uma solicitação de estabelecimentos que contenham a string "Amoeba" em uma área centrada em São Francisco, CA:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696 &radius=500 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'A mesma solicitação, restrita a resultados em um raio de 500 metros da Rua Ashbury e da Rua Haight, São Francisco:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696&radius=500 &strictbounds=true &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'Uma solicitação de endereços contendo "Vict" com resultados em francês:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=geocode &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'Uma solicitação de cidades que contêm "Vict" com resultados em português do Brasil:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=(cities) &language=pt_BR&key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'Substitua a chave de API nesses exemplos pela sua.
Resposta do Place Autocomplete (legado)
As respostas do Place Autocomplete (legado) são retornadas no formato indicado pela flag output no caminho do URL da solicitação. Os resultados abaixo são indicativos do que pode ser retornado para uma consulta com os seguintes parâmetros:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Paris &types=geocode &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "France", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "France" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TX, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck", "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TX, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TX" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TN, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TN, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TN" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, Brant, ON, Canada", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0", "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "Brant, ON, Canada", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "Brant" }, { "offset": 14, "value": "ON" }, { "offset": 18, "value": "Canada" }, ], "types": ["neighborhood", "political", "geocode"], }, { "description": "Paris, KY, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "KY, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "KY" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, ], "status": "OK", }
XML
<?xml version="1.0" encoding="UTF-8"?> <AutocompletionResponse> <status>OK</status> <prediction> <description>Paris, France</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>France</value> <offset>7</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TX, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TX</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id> <structured_formatting> <description>Paris</description> <subdescription>TX, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TN, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TN</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id> <structured_formatting> <description>Paris</description> <subdescription>TN, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, Brant, ON, Canada</description> <type>neighborhood</type> <type>political</type> <type>geocode</type> <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>Brant</value> <offset>7</offset> </term> <term> <value>ON</value> <offset>14</offset> </term> <term> <value>Canada</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id> <structured_formatting> <description>Paris</description> <subdescription>Brant, ON, Canada</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, KY, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>KY</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>KY, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
PlacesAutocompleteResponse
| Campo | Obrigatório | Tipo | Descrição |
|---|---|---|---|
|
required | Array<PlaceAutocompletePrediction> |
Contém uma matriz de previsões. Consulte PlaceAutocompletePrediction para mais informações. |
|
required | PlacesAutocompleteStatus |
Contém o status da solicitação e pode conter informações de depuração para ajudar a rastrear o motivo da falha. Consulte PlacesAutocompleteStatus para mais informações. |
|
opcional | string |
Quando o serviço retorna um código de status diferente de
|
|
opcional | Matriz<string> |
Quando o serviço retorna mais informações sobre a especificação da solicitação, pode haver um campo |
De especial interesse nos resultados estão os elementos place_id, que podem ser usados para solicitar detalhes mais específicos sobre o lugar usando uma consulta separada. Consulte as
solicitações do Place Details (legado).
Uma resposta XML consiste em um único elemento <AutocompletionResponse> com dois tipos de elementos filhos:
- Um único elemento
<status>contém metadados sobre a solicitação. Consulte Códigos de status abaixo. - Zero ou mais elementos
<prediction>, cada um contendo informações sobre um único lugar. Consulte Resultados do Place Autocomplete (legado) para mais informações. A API Places retorna até cinco resultados.
Recomendamos usar json como a flag de saída preferida, a menos que seu aplicativo exija xml por algum motivo.
O processamento de árvores XML exige cuidado para que você referencie os nós e elementos corretos. Consulte Processamento de XML com XPath para receber ajuda.
PlacesAutocompleteStatus
Códigos de status retornados pelo serviço.
OK: indicando que a solicitação de API foi concluída.-
ZERO_RESULTSindicando que a pesquisa foi bem-sucedida, mas não retornou resultados. Isso pode ocorrer se a pesquisa recebeu limites em um local remoto. -
INVALID_REQUESTindicando que a solicitação de API estava malformada, geralmente devido à ausência do parâmetroinput. -
OVER_QUERY_LIMITindicando uma das seguintes opções:- Você excedeu os limites de QPS.
- O faturamento não foi ativado na sua conta.
- O crédito mensal de US $200 ou um limite de uso definido pelo próprio usuário foi excedido.
- A forma de pagamento fornecida não é mais válida (por exemplo, o cartão de crédito expirou).
-
REQUEST_DENIEDindicando que o pedido foi recusado, geralmente porque:- Está faltando uma chave de API na solicitação.
- O parâmetro
keyé inválido.
UNKNOWN_ERROR: indicando um erro desconhecido.
Quando o serviço Places retorna resultados JSON de uma pesquisa, ele os coloca em uma matriz predictions. Mesmo que o serviço não retorne resultados (como se o location fosse remoto), ele ainda retorna uma matriz predictions vazia. As respostas XML consistem em zero ou mais elementos <prediction>.
PlaceAutocompletePrediction
| Campo | Obrigatório | Tipo | Descrição |
|---|---|---|---|
|
required | string |
Contém o nome legível do resultado retornado. Para resultados de |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
Uma lista de substrings que descrevem a localização do termo inserido no texto do resultado da previsão, para que o termo possa ser destacado se escolhido. Consulte PlaceAutocompleteMatchedSubstring para mais informações. |
|
required | PlaceAutocompleteStructuredFormat |
Fornece texto pré-formatado que pode ser mostrado nos resultados do preenchimento automático. O conteúdo precisa ser lido no estado em que se encontra. Não analise o endereço formatado de maneira programática. Consulte PlaceAutocompleteStructuredFormat para mais informações. |
|
required | Array<PlaceAutocompleteTerm> |
Contém uma matriz de termos que identificam cada seção da descrição retornada. Uma seção da descrição geralmente termina com uma vírgula. Cada entrada na matriz tem um campo Consulte PlaceAutocompleteTerm para mais informações. |
|
opcional | número inteiro |
A distância em linha reta em metros da origem. Esse campo só é retornado para solicitações feitas com um |
|
opcional | string |
um identificador textual que identifica um local de forma exclusiva. Para recuperar informações sobre o lugar, transmita esse identificador no campo placeId de uma solicitação de API do Places. Para mais informações sobre IDs de lugar, consulte a visão geral de IDs de lugar. |
|
opcional | string |
Consulte place_id. |
|
opcional | Matriz<string> |
Contém uma matriz de tipos aplicáveis a este lugar. Por exemplo:
|
PlaceAutocompleteMatchedSubstring
| Campo | Obrigatório | Tipo | Descrição |
|---|---|---|---|
|
required | número |
Comprimento da substring correspondente no texto do resultado da previsão. |
|
required | número |
Localização inicial da substring correspondente no texto do resultado da previsão. |
PlaceAutocompleteStructuredFormat
| Campo | Obrigatório | Tipo | Descrição |
|---|---|---|---|
|
required | string |
Contém o texto principal de uma previsão, geralmente o nome do lugar. |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
Contém uma matriz com o valor Consulte PlaceAutocompleteMatchedSubstring para mais informações. |
|
opcional | string |
Contém o texto secundário de uma previsão, geralmente o local do lugar. |
|
opcional | Array<PlaceAutocompleteMatchedSubstring> |
Contém uma matriz com o valor Consulte PlaceAutocompleteMatchedSubstring para mais informações. |
PlaceAutocompleteTerm
| Campo | Obrigatório | Tipo | Descrição |
|---|---|---|---|
|
required | número |
Define a posição inicial do termo na descrição, medida em caracteres Unicode. |
|
required | string |
O texto do termo. |
Otimização do Place Autocomplete (legado)
Esta seção descreve as práticas recomendadas para você aproveitar ao máximo o serviço Place Autocomplete (legado).
Aqui estão algumas diretrizes gerais:
- A maneira mais rápida de desenvolver uma interface do usuário funcional é usar o widget Place Autocomplete (legado) da API Maps JavaScript, o widget Place Autocomplete (legado) do SDK do Places para Android ou o controle de interface Place Autocomplete (legado) do SDK do Places para iOS.
- Entender os campos de dados essenciais do Place Autocomplete (legado) desde o início.
- Os campos de direcionamento de local e restrição de local são opcionais, mas podem afetar bastante a performance do preenchimento automático.
- Use o tratamento de erros para garantir que o aplicativo faça uma degradação simples se a API retornar um erro.
- Verifique se o app continua funcionando quando não há seleção e que oferece às pessoas uma maneira de continuar.
Práticas recomendadas de otimização de custos
Otimização básica de custos
Para otimizar o custo do uso do serviço Place Autocomplete (legado), use máscaras de campo nos widgets Place Details (legado) e Place Autocomplete (legado) para retornar apenas os campos de dados do Place Autocomplete (legado) necessários.
Otimização avançada de custos
Faça a implementação programática do Place Autocomplete (legado) para acessar SKU: Autocomplete - preços por solicitação e peça resultados da API Geocoding sobre o lugar selecionado em vez do Place Details (legado). O preço por solicitação combinado com a API Geocoding vai ser mais econômico que o preço por sessão se as duas condições a seguir forem atendidas:
- Se você só precisa da latitude/longitude ou do endereço do local selecionado pela pessoa, a API Geocoding fornece essas informações por menos do que uma chamada do Place Details (legado).
- Se os usuários selecionarem uma previsão de preenchimento automático em média com quatro solicitações de previsão do Place Autocomplete (legado) ou menos, o preço por solicitação poderá ser mais econômico que o preço por sessão.
Seu aplicativo requer outras informações além do endereço e da latitude/longitude da previsão selecionada?
Sim, mais detalhes são necessários
Use o Place Autocomplete com base em sessões (legado) com o Place Details (legado).
Como seu aplicativo exige o Place Details (legado), como nome do lugar, status da empresa ou horário de funcionamento, sua implementação do Place Autocomplete (legado) precisa usar um token de sessão programaticamente ou integrado aos widgets JavaScript, Android ou iOS por sessão, além das SKUs de dados de lugares aplicáveis, dependendo dos campos de dados de lugares que você solicita.1
Implementação do widget
O gerenciamento de sessões é integrado automaticamente aos widgets do
JavaScript,
Android,
ou iOS. Isso inclui as solicitações do Place Autocomplete (legado) e do Place Details (legado) na previsão selecionada. Especifique o parâmetro fields para garantir que você está pedindo apenas os campos de dados do Place Autocomplete (legado) necessários.
Implementação programática
Use um
token de sessão
com suas solicitações do Place Autocomplete (legado). Ao solicitar Place Details (legado) sobre a previsão selecionada, inclua os seguintes parâmetros:
- O ID de lugar da resposta do Place Autocomplete (legado)
- O token de sessão usado na solicitação do Place Autocomplete (legado)
- O parâmetro
fieldsespecificando os campos de dados do Place Autocomplete (legado) necessários.
Não, apenas o endereço e o local são necessários
A API Geocoding pode ser uma opção mais econômica que o Place Details (legado) para seu aplicativo, dependendo da performance do Place Autocomplete (legado). A eficiência do Place Autocomplete (legado) de cada aplicativo varia de acordo com o que as pessoas inserem, onde o aplicativo está sendo usado e se as práticas recomendadas de otimização de performance foram seguidas.
Para responder à pergunta a seguir, analise quantos caracteres a pessoa digita em média antes de selecionar uma previsão do Place Autocomplete (legado) no seu aplicativo.
As pessoas selecionam, em média, uma previsão do Place Autocomplete (legado) em até quatro solicitações?
Sim
Implementar o Place Autocomplete (legado) de forma programática sem tokens de sessão e chamar a API Geocoding na previsão de lugar selecionada.
A API Geocoding oferece endereços e coordenadas de latitude/longitude.
Fazer quatro solicitações de preenchimento automático: por solicitação, além de uma chamada da API Geocoding sobre a previsão de lugar selecionada, custa menos do que o preço por sessão do Place Autocomplete (legado).1
Convém usar as práticas recomendadas de performance para ajudar as pessoas a conseguir a previsão que querem usando ainda menos caracteres.
Não
Use o Place Autocomplete com base em sessões (legado) com o Place Details (legado).
Como o número médio de solicitações que você espera fazer antes que um usuário selecione uma
previsão do Place Autocomplete (legado) excede o custo da precificação por sessão, sua implementação
do Place Autocomplete (legado) deve usar um token de sessão para as solicitações do Place Autocomplete (legado)
e a solicitação associada do Place Details (legado)
por sessão.
1
Implementação do widget
O gerenciamento de sessões é integrado automaticamente aos widgets do
JavaScript,
Android
ou iOS. Isso inclui as solicitações do Place Autocomplete (legado) e do Place Details (legado) na previsão selecionada. Especifique o parâmetro fields para garantir que você está pedindo apenas os campos necessários.
Implementação programática
Use um
token de sessão
com suas solicitações do Place Autocomplete (legado).
Ao solicitar Place Details (legado) sobre a previsão selecionada, inclua os seguintes parâmetros:
- O ID de lugar da resposta do Place Autocomplete (legado)
- O token de sessão usado na solicitação do Place Autocomplete (legado)
- O parâmetro
fieldsque especifica campos de dados básicos, como endereço e geometria
Considere atrasar as solicitações do Place Autocomplete (legado)
É possível adiar uma solicitação do Place Autocomplete (legado) até que a pessoa digite os três ou quatro primeiros caracteres, fazendo com que o aplicativo gere menos solicitações. Por exemplo, fazer solicitações do Place Autocomplete (legado) para cada caractere depois que o usuário digita o terceiro caractere significa que, se o usuário digitar sete caracteres e selecionar uma previsão para a qual você faz uma solicitação de API da API Geocoding, o custo total será de quatro solicitações do Place Autocomplete (legado) por solicitação + Geocoding.1
Se for possível usar o atraso de solicitações para deixar sua solicitação programática média abaixo de quatro, siga as orientações para ter uma performance eficiente no Place Autocomplete (legado) com a API Geocoding. Atrasar solicitações pode ser percebido como latência pelo usuário, que talvez queira ver previsões a cada vez que pressionar uma nova tecla.
Convém usar as práticas recomendadas de performance para ajudar as pessoas a conseguir a previsão que querem usando ainda menos caracteres.
-
Para saber os custos, consulte as listas de preços da Plataforma Google Maps.
Práticas recomendadas de desempenho
As diretrizes a seguir descrevem como otimizar a performance do Place Autocomplete (legado):
- Adicione restrições de país, direcionamento de local e preferência de idioma (para implementações programáticas) à implementação do Place Autocomplete (legado). A preferência de idioma não é necessária com widgets porque eles usam o que está definido no navegador ou no dispositivo móvel do usuário.
- Se o Place Autocomplete (legado) estiver acompanhado por um mapa, é possível direcionar o local por janela de visualização do mapa.
- Quando a pessoa não escolhe uma das previsões do Place Autocomplete (legado), geralmente porque nenhuma delas é o endereço que ela quer, você pode reutilizar a entrada do usuário original para tentar receber resultados mais relevantes:
- Se quiser que o usuário insira apenas informações de endereço, reutilize a entrada do usuário original em uma chamada para a API Geocoding.
- Se quiser que o usuário insira consultas para um lugar específico por nome ou endereço, use uma solicitação de Place Details (legado). Se os resultados forem esperados apenas em uma região específica, use o direcionamento de local.
- Usuários que inserem endereços de subunidades, como endereços de unidades ou apartamentos específicos em um prédio. Por exemplo, o endereço tcheco "Stroupežnického 3191/17, Praha" gera uma previsão parcial no Place Autocomplete (legado).
- Usuários que digitam endereços com prefixos de trechos de via, como "23-30 29th St, Queens", na cidade de Nova York, ou "47-380 Kamehameha Hwy, Kaneohe", na ilha de Kauai, no Havaí.
Polarização de local
Influencie os resultados para uma área especificada transmitindo um parâmetro location e um parâmetro radius. Isso instrui o Place Autocomplete (legado) a preferir mostrar resultados dentro da área definida. Os resultados fora da área definida ainda podem ser exibidos. Use o parâmetro includedRegionCodes para filtrar os resultados e mostrar apenas os lugares em um país específico.
Restrição de local
Restrinja os resultados a uma área especificada transmitindo um parâmetro locationRestriction.
Você também pode restringir os resultados à região definida por location
e um parâmetro radius, adicionando o parâmetro
strictbounds. Isso instrui o Place Autocomplete (legado) a retornar apenas resultados dentro dessa região.