Autocompletado de direcciones
Sugerencias para entradas parciales, optimizadas para la latencia y la tolerancia a errores tipográficos. Cada sugerencia incluye coordenadas, así que la mayoría de las integraciones nunca necesitan una segunda llamada.
GEThttps://api.mygeocode.com/v1/autocomplete
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
qobligatorio | string | Lo que el usuario ha escrito hasta ahora. Al menos 2 caracteres, hasta 128. |
limitopcional | integer | De 1 a 10. Por defecto 5. |
countriesopcional | string | Códigos ISO 3166-1 alfa-2 separados por comas a los que restringir las sugerencias. |
proximityopcional | string | lat,lon. Las sugerencias cercanas aparecen primero. Muy recomendable para los cuadros de búsqueda de mapas. |
typesopcional | string | Subconjunto separado por comas de address, street, postcode, city, region, country, poi. Por defecto, todos. |
langopcional | string | Código ISO 639-1. Por defecto en. |
keyopcional | string | Clave de API, si no se envía como cabecera. |
Ejemplo
$ 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"])Respuesta
{
"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 de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
suggestions[].text | string | Texto para mostrar, en una línea, en lang. |
suggestions[].lat, lon | number | Coordenadas. Siempre presentes. |
suggestions[].type, precision | string | Como en la geocodificación directa. |
suggestions[].place_id | string | Pásalo a /v1/forward?place_id=... para obtener los componentes completos y los límites. Esa llamada cuenta como una solicitud. |
Notas
- Aplica un debounce a la entrada de unos 150 ms y cancela las solicitudes en curso cuando el usuario siga escribiendo. Las respuestas incluyen la
querya la que responden, así que puedes descartar las obsoletas. - No hay tokens de sesión. Cada llamada es una solicitud. Elegir una dirección típica lleva de 4 a 6 llamadas.
- Llamar desde el navegador en el nivel gratuito es el uso previsto para sitios públicos. Se cuenta la IP del visitante, no la tuya.
- Los formatos del widget
places.Autocompletede Google, Mapbox Search Box, HERE Autosuggest y Bing Autosuggest están disponibles en los hosts compatibles (drop-in).
La misma consulta en los formatos de otros proveedores
Si ya tienes código escrito para uno de estos proveedores, consérvalo: el host compatible acepta la misma ruta y los mismos parámetros y responde con la estructura de respuesta de ese proveedor, con este endpoint detrás. Consulta cómo funcionan los hosts compatibles.
| Proveedor | Host | Ruta |
|---|---|---|
| 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 |
Errores
400 invalid_request cuando q tiene menos de 2 caracteres, o types contiene un valor desconocido.