Geocodificação reversa

Entram coordenadas, sai o endereço mais próximo, ou a localidade, a região ou o país, se for só isso que você quer.

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

Parâmetros

ParâmetroTipoDescrição
latobrigatórionúmeroDe -90 a 90.
lonobrigatórionúmeroDe -180 a 180.
levelopcionalstringO nível mais específico a retornar: address (padrão), street, postcode, city, region, country. Níveis mais amplos são mais rápidos e nunca descem abaixo do nível solicitado.
radiusopcionalinteiroRaio de busca de endereços em metros, de 1 a 5000. Padrão 5000. Defina um valor pequeno para receber null em vez de um endereço distante.
langopcionalstringCódigo ISO 639-1 para os nomes. 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/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")
Resposta
{
  "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 da resposta

CampoTipoDescrição
lat, lonnúmeroO ponto que você enviou, repetido.
resultobjeto ou nullnull quando não há nada dentro de radius no nível solicitado.
result.formattedstringO endereço, ou o nome da localidade nos níveis mais amplos.
result.lat, result.lonnúmeroA posição do elemento retornado, não do seu ponto.
result.distance_minteiroMetros do seu ponto até o elemento. 0 quando o ponto está dentro dele.
result.type, result.precision, result.place_id, result.componentsComo na geocodificação direta.

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/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 em lote

Envie um corpo JSON por POST para o mesmo caminho com coords, um array de até 100 pares [lat, lon], e a resposta traz um array results com uma entrada por par, na ordem enviada. Cada entrada conta como uma requisição, e um lote maior do que o que resta da cota é recusado por inteiro.

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

Erros

400 invalid_request quando lat ou lon está ausente ou fora do intervalo, ou quando level não é um dos valores listados.