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 conforme o 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 corretamente os Plus Codes. Isso significa que você precisa usar o escape de URL para o sinal de adição como %2B e para os espaços como %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, pelo menos, seis caracteres 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 para ajudá-lo a selecionar o lugar que ele quer. É 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:mprestringe os 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. 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 compatíveis 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. Para isso, ele retorna endereços em português, transliterados para um script legível pelo usuário, se necessário, respeitando o idioma de preferência. Todos os outros endereços são retornados no idioma preferencial. 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 vai usar a correspondência mais próxima.
- O idioma preferencial 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. 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" poderá ser substituído se a consulta contiver um local explícito, como "Mercado em Barcelona". -
locationbias
Prioriza resultados em uma área específica, especificando um raio mais lat/lng ou dois pares de lat/lng que representam os pontos de um retângulo. Se esse parâmetro não for especificado, a API vai usar a polarização 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 fixados no 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 fixados no 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 deslocamento é comparada apenas com a primeira palavra no termo de entrada. Por exemplo, se o termo de entrada forGoogle abce o deslocamento for 3, o serviço vai tentar corresponder aGoo abc. Se nenhum deslocamento for fornecido, o serviço vai usar o termo inteiro. O deslocamento geralmente precisa ser definido como a posição do cursor de texto. -
origem
O ponto de origem para 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 lugar 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, ajustado dinamicamente com base na densidade da área,
independentemente 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, ajustado dinamicamente com base na densidade da área,
independentemente 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 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), 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 o 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 aplicativo 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 para todas as solicitações do Place Autocomplete e do 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 estritamente dentro da região definida por
locationeradius. Essa é uma restrição, não uma tendência, o que significa que os resultados fora dessa região não serão retornados, mesmo que correspondam à entrada do usuário. -
tipos
Você pode 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 Tabela 2. Por exemplo, um hotel que serve comida pode ser retornado apenas com
types=lodging, e 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 contêm a string "Amoeba" em uma área centralizada 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 de Ashbury St & Haight St, 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 (Legacy) 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 incluir 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 | Array<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 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 (Legacy) para mais informações sobre esses resultados. A API Places retorna até cinco resultados.
Recomendamos que você use 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ê faça referência aos 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_RESULTS, indicando que a pesquisa foi bem-sucedida, mas não retornou resultados. Isso pode ocorrer se a pesquisa recebeu limites em um local remoto. -
INVALID_REQUEST: indicando que a solicitação de API estava corrompida, geralmente devido à ausência do parâmetroinput. -
OVER_QUERY_LIMITindicando qualquer 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_DENIEDindica que o pedido foi recusado, geralmente porque:- A solicitação não tem uma chave de API.
- 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 (por exemplo, se o location for remoto), ele ainda vai retornar 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 por humanos do resultado retornado. Para
resultados de |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
Uma lista de substrings que descrevem o local 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 de 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 é
retornado apenas 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 | Array<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 desse 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 do Place Autocomplete (Legacy) da API Maps JavaScript, o widget do Place Autocomplete (Legacy) do SDK do Places para Android ou o controle de interface do Place Autocomplete (Legacy) 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 é 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 e longitude ou do endereço do local selecionado pelo usuário, 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 Place Autocomplete (Legacy) ou menos, o preço por solicitação poderá ser mais econômico que o custo 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 (legado) com base em sessões com o Place Details (legado).
Como seu aplicativo requer o Place Details (Legacy), como o nome do lugar, o status da empresa ou o horário de funcionamento, sua implementação do Place Autocomplete (Legacy) deve usar um token de sessão (programaticamente ou integrado aos widgets do JavaScript, Android ou iOS) por sessão, além das SKUs de dados do Places aplicáveis, dependendo dos campos de dados de lugar que você solicitar.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 (Legacy) 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
Implemente o Place Autocomplete (legado) de forma programática sem tokens de sessão e chame 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
mais uma chamada da API Geocoding
sobre a previsão de lugar selecionada é menor que o custo por sessão do Place Autocomplete (legado)
por sessão.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 do preç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 (Legacy) e do Place Details (Legacy) 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 tabelas 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 (Legacy) 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 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 subinstalações, 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í.
Tendência de local
Direcione os resultados para uma área específica 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.