Place Autocomplete (legado)

Desenvolvedores do Espaço Econômico Europeu (EEE)

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)
  • xml indica 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:fr restringe os resultados a lugares na França. Para transmitir vários países, é preciso usar vários filtros country:XX, com o caractere de barra vertical | como separador. Por exemplo: components=country:us|country:pr|country:vi|country:gu|country:mp restringiria 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 language não for fornecido, a API tentará usar o idioma preferido, conforme especificado no cabeçalho Accept-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âmetro radius também precisa ser fornecido ao especificar um local. Se radius não for fornecido, o parâmetro location será 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.
  • 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.
  • 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 Google e o deslocamento for 3, o serviço vai corresponder a Goo. A string determinada pelo ajuste é comparada apenas com a primeira palavra do termo de entrada. Por exemplo, se o termo de entrada for Google abc e o deslocamento for 3, o serviço tentará fazer a correspondência com Goo 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 como latitude,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 location e radius. 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 keyword ou name: 50.000 metros
      • sem keyword ou name
        • 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 um INVALID_REQUEST.
    • 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 sessiontoken for 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 location e radius. 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=lodging e não com types=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_REQUEST se:

    • Mais de cinco tipos foram especificados.
    • Há tipos não reconhecidos.
    • Qualquer tipo da Tabela 1 ou da Tabela 2 é misturado com qualquer um dos filtros da Tabela 3.

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 OK<, pode haver um campo error_message adicional no objeto de resposta. Esse campo contém informações mais detalhadas sobre os motivos por trás do código de status fornecido. Esse campo nem sempre é retornado, e o conteúdo dele está sujeito a mudanças.

opcional Matriz<string>

Quando o serviço retorna mais informações sobre a especificação da solicitação, pode haver um campo info_messages extra no objeto de resposta. Esse campo só é retornado para solicitações bem-sucedidas. Ele nem sempre é retornado, e o conteúdo está sujeito a mudanças.

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_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 malformada, geralmente devido à ausência do parâmetro input.
  • OVER_QUERY_LIMIT indicando 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).
    Consulte as Perguntas frequentes do Maps para mais informações sobre como resolver esse erro.
  • REQUEST_DENIED indicando 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 establishment, geralmente é o nome da empresa. O conteúdo precisa ser lido no estado em que se encontra. Não analise o endereço formatado de maneira programática.

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 value, que contém o texto do termo, e um campo offset, que define a posição inicial desse termo na descrição, medida em caracteres Unicode.

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 origin.

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: [ "political", "locality" ] ou [ "establishment", "geocode", "beauty_salon" ]. A matriz pode conter vários valores. Saiba mais sobre tipos de lugar.

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 offset e length. Eles descrevem a localização do termo inserido no texto do resultado da previsão, para que o termo possa ser destacado se for escolhido.

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 offset e length. Eles descrevem a localização do termo inserido no texto do resultado da previsão, para que o termo possa ser destacado se for escolhido.

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.
Se quiser ajuda para escolher a implementação do Place Autocomplete (legado) de acordo com o que você precisa, selecione a guia correspondente à resposta à pergunta abaixo.

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:

  1. O ID de lugar da resposta do Place Autocomplete (legado)
  2. O token de sessão usado na solicitação do Place Autocomplete (legado)
  3. O parâmetro fields especificando 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:

  1. O ID de lugar da resposta do Place Autocomplete (legado)
  2. O token de sessão usado na solicitação do Place Autocomplete (legado)
  3. O parâmetro fields que 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.


  1. 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.
    Outros cenários em que é melhor voltar para a API Geocoding são:
    • 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.