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ámetroTipoDescripción
qobligatoriostringLo que el usuario ha escrito hasta ahora. Al menos 2 caracteres, hasta 128.
limitopcionalintegerDe 1 a 10. Por defecto 5.
countriesopcionalstringCódigos ISO 3166-1 alfa-2 separados por comas a los que restringir las sugerencias.
proximityopcionalstringlat,lon. Las sugerencias cercanas aparecen primero. Muy recomendable para los cuadros de búsqueda de mapas.
typesopcionalstringSubconjunto separado por comas de address, street, postcode, city, region, country, poi. Por defecto, todos.
langopcionalstringCódigo ISO 639-1. Por defecto en.
keyopcionalstringClave 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

CampoTipoDescripción
suggestions[].textstringTexto para mostrar, en una línea, en lang.
suggestions[].lat, lonnumberCoordenadas. Siempre presentes.
suggestions[].type, precisionstringComo en la geocodificación directa.
suggestions[].place_idstringPásalo a /v1/forward?place_id=... para obtener los componentes completos y los límites. Esa llamada cuenta como una solicitud.

Notas

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.

ProveedorHostRuta
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

Errores

400 invalid_request cuando q tiene menos de 2 caracteres, o types contiene un valor desconocido.