Geocodificação direta

Transforme texto em coordenadas. Aceita endereços completos, endereços parciais, códigos postais, nomes de lugares e pontos de interesse, em qualquer idioma.

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

Parâmetros

ParâmetroTipoDescrição
qobrigatório*stringTexto livre a geocodificar. Até 256 caracteres.
street, city, state, postcode, countrystring*Alternativa estruturada a q. Use quando você já tem o endereço em campos. Pelo menos um é obrigatório se q estiver ausente. country aqui é um código ISO 3166-1 alfa-2.
place_idstring*Um place_id do preenchimento automático. Retorna esse lugar com os componentes completos e os limites. Tem prioridade sobre q.
limitopcionalinteiroMáximo de resultados, de 1 a 10. Padrão 5.
countriesopcionalstringCódigos ISO 3166-1 alfa-2 separados por vírgula. Só são retornados resultados nesses países. Exemplo: gb,ie.
boundsopcionalstringsouth,west,north,east em graus decimais. Resultados dentro da caixa aparecem primeiro. Adicione strict=1 para excluir resultados fora dela.
proximityopcionalstringlat,lon. Resultados perto deste ponto aparecem primeiro.
langopcionalstringCódigo ISO 639-1 para os nomes na resposta. Padrão en.
keyopcionalstringChave de API, se não for enviada no cabeçalho X-API-Key.

Exemplo

$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/forward?q=Dam+1,+Amsterdam&countries=nl&limit=1"
const url = new URL("https://api.mygeocode.com/v1/forward");
url.searchParams.set("q", "Dam 1, Amsterdam");
url.searchParams.set("countries", "nl");
url.searchParams.set("limit", "1");

const data = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(data.results[0]);
import requests

r = requests.get("https://api.mygeocode.com/v1/forward",
                 params={"q": "Dam 1, Amsterdam", "countries": "nl", "limit": 1}, headers={"X-API-Key": "YOUR_KEY"}, timeout=10)
print(r.json()["results"][0])
Resposta
{
  "status": "ok",
  "query": "Dam 1, Amsterdam",
  "results": [
    {
      "formatted": "Dam 1, 1012 JS Amsterdam, Netherlands",
      "lat": 52.373119,
      "lon": 4.893604,
      "type": "address",
      "precision": "house",
      "confidence": 0.98,
      "place_id": "nl.addr.c21d40e8",
      "components": {
        "house_number": "1",
        "road": "Dam",
        "neighbourhood": "Centrum",
        "city": "Amsterdam",
        "state": "North Holland",
        "state_code": "NH",
        "postcode": "1012 JS",
        "country": "Netherlands",
        "country_code": "nl"
      },
      "bounds": { "north": 52.373519, "south": 52.372719, "east": 4.894204, "west": 4.893004 }
    }
  ]
}

Campos da resposta

CampoTipoDescrição
querystringO texto que interpretamos, depois de remover os espaços extras.
resultsarrayCorrespondências, da melhor para a pior. Vazio quando nada correspondeu.
results[].formattedstringEndereço completo no formato convencional do país.
results[].lat, lonnúmeroGraus decimais WGS 84.
results[].typestringaddress, street, postcode, city, region, country, poi.
results[].precisionstringhouse, street, postcode, admin. O que o ponto representa. Veja cobertura.
results[].confidencenúmeroDe 0 a 1. O quanto o resultado corresponde à consulta. Abaixo de 0.5 significa que estimamos.
results[].place_idstringIdentificador estável deste lugar.
results[].componentsobjetoPartes do endereço. Veja abaixo.
results[].boundsobjetonorth, south, east, west do elemento encontrado.

Chaves dos componentes

Só aparecem as chaves que se aplicam. As mesmas chaves são usadas em todos os países.

ChaveSignificado
nameNome de um ponto de interesse ou edifício, quando a correspondência é um deles.
house_numberIncluindo letras e intervalos: 221B, 12-14.
roadNome da rua com o seu tipo: Baker Street, Avenue Anatole France.
neighbourhood, suburbÁreas dentro da cidade, onde o país as usa.
cityCidade, vila ou povoado.
countyCondado ou distrito.
state, state_codeEstado, província ou região, e o seu sufixo ISO 3166-2 quando existe.
postcodeCódigo postal, formatado como a autoridade postal o formata.
country, country_codeNome do país e código ISO 3166-1 alfa-2 em minúsculas.

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?address=...
Bing Maps REST Servicesbing.mygeocode.com/REST/v1/Locations?q=...
/REST/v1/Locations?countryRegion=...&locality=...&addressLine=...
HERE Geocoding and Searchhere.mygeocode.com/v1/geocode?q=...
/v1/geocode?qq=street=...;city=...
Mapbox Geocodingmapbox.mygeocode.com/geocoding/v5/mapbox.places/{query}.json
/search/geocode/v6/forward?q=...
Geocode.Farmfarm.mygeocode.com/forward/?addr=...
/v3/json/forward/?addr=...
OpenStreetMap Nominatimosm.mygeocode.com/search?q=...&format=json
/search?street=...&city=...&country=...&format=json
OpenCageopencage.mygeocode.com/geocode/v1/json?q=...
/geocode/v1/geojson?q=...
LocationIQlocationiq.mygeocode.com/v1/search?q=...&format=json
Geoapifygeoapify.mygeocode.com/v1/geocode/search?text=...
TomTom Searchtomtom.mygeocode.com/search/2/geocode/{query}.json
/search/2/structuredGeocode.json?countryCode=...&streetName=...
MapQuest Geocodingmapquest.mygeocode.com/geocoding/v1/address?location=...
/geocoding/v1/batch?location=...&location=...
Geocodiogeocodio.mygeocode.com/v1.7/geocode?q=...
/v1.7/geocode (POST, JSON array)
PositionStackpositionstack.mygeocode.com/v1/forward?query=...

Consultas em lote

Envie um corpo JSON por POST para o mesmo caminho com queries, um array de até 100 endereços, e a resposta traz um array results com uma entrada por consulta, 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/forward" -H "Content-Type: application/json" -d '{"queries": ["Brandenburg Gate, Berlin", "Bahnhofstrasse 1, Zurich"]}'

Erros

400 invalid_request quando não há nem q, nem um campo estruturado, nem place_id, quando limit está fora do intervalo de 1 a 10, ou quando bounds ou proximity está malformado. Veja erros para o resto.