Preenchimento automático de endereços

Sugestões para entradas parciais, otimizadas para baixa latência e tolerância a erros de digitação. Cada sugestão traz coordenadas, então a maioria das integrações nunca precisa de uma segunda chamada.

GEThttps://api.mygeocode.com/v1/autocomplete

Parâmetros

ParâmetroTipoDescrição
qobrigatóriostringO que o usuário digitou até agora. Pelo menos 2 caracteres, até 128.
limitopcionalinteiro1 a 10. Padrão 5.
countriesopcionalstringCódigos ISO 3166-1 alfa-2 separados por vírgula para restringir as sugestões.
proximityopcionalstringlat,lon. Sugestões próximas aparecem primeiro. Altamente recomendado para caixas de busca em mapas.
typesopcionalstringSubconjunto separado por vírgulas de address, street, postcode, city, region, country, poi. Padrão: todos.
langopcionalstringCódigo ISO 639-1. Padrão en.
keyopcionalstringChave de API, se não for enviada como cabeçalho.

Exemplo

$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/autocomplete?q=oxford+st&proximity=51.515,-0.141&limit=3"
const url = new URL("https://api.mygeocode.com/v1/autocomplete");
url.searchParams.set("q", "oxford st");
url.searchParams.set("proximity", "51.515,-0.141");
url.searchParams.set("limit", "3");

const { suggestions } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
suggestions.forEach((s) => console.log(s.text, s.lat, s.lon));
import requests

r = requests.get("https://api.mygeocode.com/v1/autocomplete",
                 params={"q": "oxford st", "proximity": "51.515,-0.141", "limit": 3}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5)
for s in r.json()["suggestions"]:
    print(s["text"], s["lat"], s["lon"])
Resposta
{
  "status": "ok",
  "query": "oxford st",
  "suggestions": [
    { "text": "Oxford Street, London W1, United Kingdom", "lat": 51.515419, "lon": -0.141588, "type": "street", "precision": "street", "place_id": "gb.street.0a91e2c4" },
    { "text": "Oxford Street, Southampton SO14, United Kingdom", "lat": 50.899021, "lon": -1.399537, "type": "street", "precision": "street", "place_id": "gb.street.77b4d1f0" },
    { "text": "Oxford Street Station, London W1, United Kingdom", "lat": 51.515167, "lon": -0.141251, "type": "poi", "precision": "house", "place_id": "gb.poi.3c5a8e19" }
  ]
}

Campos da resposta

CampoTipoDescrição
suggestions[].textstringTexto de exibição, em uma linha, em lang.
suggestions[].lat, lonnúmeroCoordenadas. Sempre presentes.
suggestions[].type, precisionstringComo na geocodificação direta.
suggestions[].place_idstringPasse para /v1/forward?place_id=... para obter os componentes completos e os limites. Essa chamada conta como uma requisição.

Observações

A mesma consulta nos formatos de outros provedores

Se você já tem código escrito para um desses provedores, mantenha-o: o host compatível aceita o mesmo caminho e os mesmos parâmetros e responde no formato de resposta desse provedor, com este endpoint por trás. Veja como funcionam os hosts compatíveis.

ProvedorHostCaminho
Google Maps Platformgapi.mygeocode.com/maps/api/place/autocomplete/json?input=...
Bing Maps REST Servicesbing.mygeocode.com/REST/v1/Autosuggest?query=...
HERE Geocoding and Searchhere.mygeocode.com/v1/autosuggest?q=...&at=lat,lng
/v1/autocomplete?q=...
Mapbox Geocodingmapbox.mygeocode.com/search/searchbox/v1/suggest?q=...
LocationIQlocationiq.mygeocode.com/v1/autocomplete?q=...
Geoapifygeoapify.mygeocode.com/v1/geocode/autocomplete?text=...
TomTom Searchtomtom.mygeocode.com/search/2/search/{query}.json?typeahead=true

Erros

400 invalid_request quando q tem menos de 2 caracteres, ou quando types contém um valor desconhecido.