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âmetro | Tipo | Descrição |
|---|---|---|
qobrigatório | string | O que o usuário digitou até agora. Pelo menos 2 caracteres, até 128. |
limitopcional | inteiro | 1 a 10. Padrão 5. |
countriesopcional | string | Códigos ISO 3166-1 alfa-2 separados por vírgula para restringir as sugestões. |
proximityopcional | string | lat,lon. Sugestões próximas aparecem primeiro. Altamente recomendado para caixas de busca em mapas. |
typesopcional | string | Subconjunto separado por vírgulas de address, street, postcode, city, region, country, poi. Padrão: todos. |
langopcional | string | Código ISO 639-1. Padrão en. |
keyopcional | string | Chave 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
| Campo | Tipo | Descrição |
|---|---|---|
suggestions[].text | string | Texto de exibição, em uma linha, em lang. |
suggestions[].lat, lon | número | Coordenadas. Sempre presentes. |
suggestions[].type, precision | string | Como na geocodificação direta. |
suggestions[].place_id | string | Passe para /v1/forward?place_id=... para obter os componentes completos e os limites. Essa chamada conta como uma requisição. |
Observações
- Aplique debounce na entrada de cerca de 150 ms e cancele as requisições em andamento quando o usuário continuar digitando. As respostas trazem a
queryque respondem, para que você possa descartar as desatualizadas. - Não há tokens de sessão. Cada chamada é uma requisição. Escolher um endereço típico leva de 4 a 6 chamadas.
- Chamar a partir do navegador no nível gratuito é o uso previsto para sites públicos. O IP do visitante é contado, não o seu.
- Os formatos do widget
places.Autocompletedo Google, do Mapbox Search Box, do HERE Autosuggest e do Bing Autosuggest estão disponíveis nos hosts compatíveis (drop-in).
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.
| Provedor | Host | Caminho |
|---|---|---|
| Google Maps Platform | gapi.mygeocode.com | /maps/api/place/autocomplete/json?input=... |
| Bing Maps REST Services | bing.mygeocode.com | /REST/v1/Autosuggest?query=... |
| HERE Geocoding and Search | here.mygeocode.com | /v1/autosuggest?q=...&at=lat,lng/v1/autocomplete?q=... |
| Mapbox Geocoding | mapbox.mygeocode.com | /search/searchbox/v1/suggest?q=... |
| LocationIQ | locationiq.mygeocode.com | /v1/autocomplete?q=... |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/autocomplete?text=... |
| TomTom Search | tomtom.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.