Geocodificación inversa

Entran coordenadas y sale la dirección más cercana, o la localidad, la región o el país si es todo lo que quieres.

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

Parámetros

ParámetroTipoDescripción
latobligatorionumberDe -90 a 90.
lonobligatorionumberDe -180 a 180.
levelopcionalstringEl nivel más específico que se devuelve: address (por defecto), street, postcode, city, region, country. Los niveles más generales son más rápidos y nunca bajan del nivel solicitado.
radiusopcionalintegerRadio de búsqueda de direcciones en metros, de 1 a 5000. Por defecto 5000. Ponlo pequeño para obtener null en lugar de una dirección lejana.
langopcionalstringCódigo ISO 639-1 para los nombres. 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/reverse?lat=41.8902&lon=12.4922&lang=it"
const url = new URL("https://api.mygeocode.com/v1/reverse");
url.searchParams.set("lat", 41.8902);
url.searchParams.set("lon", 12.4922);
url.searchParams.set("lang", "it");

const { result } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(result ? result.formatted : "nothing nearby");
import requests

r = requests.get("https://api.mygeocode.com/v1/reverse",
                 params={"lat": 41.8902, "lon": 12.4922, "lang": "it"}, headers={"X-API-Key": "YOUR_KEY"}, timeout=10)
result = r.json()["result"]
print(result["formatted"] if result else "nothing nearby")
Respuesta
{
  "status": "ok",
  "lat": 41.8902,
  "lon": 12.4922,
  "result": {
    "formatted": "Piazza del Colosseo 1, 00184 Roma RM, Italia",
    "lat": 41.890251,
    "lon": 12.492373,
    "distance_m": 9,
    "type": "address",
    "precision": "house",
    "place_id": "it.addr.5d09aa31",
    "components": {
      "house_number": "1",
      "road": "Piazza del Colosseo",
      "suburb": "Municipio Roma I",
      "city": "Roma",
      "county": "Roma",
      "state": "Lazio",
      "postcode": "00184",
      "country": "Italia",
      "country_code": "it"
    }
  }
}

Campos de la respuesta

CampoTipoDescripción
lat, lonnumberEl punto que enviaste, devuelto tal cual.
resultobject o nullnull cuando no hay nada dentro de radius en el nivel solicitado.
result.formattedstringLa dirección, o el nombre de la localidad en los niveles más generales.
result.lat, result.lonnumberLa posición del elemento devuelto, no la de tu punto.
result.distance_mintegerMetros desde tu punto hasta el elemento. 0 cuando el punto está dentro de él.
result.type, result.precision, result.place_id, result.componentsComo en la geocodificación directa.

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/geocode/json?latlng=lat,lng
Bing Maps REST Servicesbing.mygeocode.com/REST/v1/Locations/{lat},{lon}
HERE Geocoding and Searchhere.mygeocode.com/v1/revgeocode?at=lat,lng
Mapbox Geocodingmapbox.mygeocode.com/geocoding/v5/mapbox.places/{lon},{lat}.json
/search/geocode/v6/reverse?longitude=...&latitude=...
Geocode.Farmfarm.mygeocode.com/reverse/?lat=...&lon=...
/v3/json/reverse/?lat=...&lon=...
OpenStreetMap Nominatimosm.mygeocode.com/reverse?lat=...&lon=...&format=json
OpenCageopencage.mygeocode.com/geocode/v1/json?q=lat,lng
LocationIQlocationiq.mygeocode.com/v1/reverse?lat=...&lon=...&format=json
Geoapifygeoapify.mygeocode.com/v1/geocode/reverse?lat=...&lon=...
TomTom Searchtomtom.mygeocode.com/search/2/reverseGeocode/{lat},{lon}.json
MapQuest Geocodingmapquest.mygeocode.com/geocoding/v1/reverse?location=lat,lng
Geocodiogeocodio.mygeocode.com/v1.7/reverse?q=lat,lng
PositionStackpositionstack.mygeocode.com/v1/reverse?query=lat,lng

Consultas masivas

Envía por POST un cuerpo JSON a la misma ruta con coords, un array de hasta 100 pares [lat, lon], y la respuesta incluye un array results con una entrada por par en el orden enviado. Cada entrada cuenta como una solicitud, y un lote mayor que lo que queda de la cuota se rechaza entero.

$ curl -X POST "https://api.mygeocode.com/v1/reverse" -H "Content-Type: application/json" -d '{"coords": [[52.5163, 13.3777], [47.3769, 8.5417]]}'

Errores

400 invalid_request cuando falta lat o lon o están fuera de rango, o level no es uno de los valores indicados.