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.
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
qobrigatório* | string | Texto livre a geocodificar. Até 256 caracteres. |
street, city, state, postcode, country | string | *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_id | string | *Um place_id do preenchimento automático. Retorna esse lugar com os componentes completos e os limites. Tem prioridade sobre q. |
limitopcional | inteiro | Máximo de resultados, de 1 a 10. Padrão 5. |
countriesopcional | string | Códigos ISO 3166-1 alfa-2 separados por vírgula. Só são retornados resultados nesses países. Exemplo: gb,ie. |
boundsopcional | string | south,west,north,east em graus decimais. Resultados dentro da caixa aparecem primeiro. Adicione strict=1 para excluir resultados fora dela. |
proximityopcional | string | lat,lon. Resultados perto deste ponto aparecem primeiro. |
langopcional | string | Código ISO 639-1 para os nomes na resposta. Padrão en. |
keyopcional | string | Chave 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]){
"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
| Campo | Tipo | Descrição |
|---|---|---|
query | string | O texto que interpretamos, depois de remover os espaços extras. |
results | array | Correspondências, da melhor para a pior. Vazio quando nada correspondeu. |
results[].formatted | string | Endereço completo no formato convencional do país. |
results[].lat, lon | número | Graus decimais WGS 84. |
results[].type | string | address, street, postcode, city, region, country, poi. |
results[].precision | string | house, street, postcode, admin. O que o ponto representa. Veja cobertura. |
results[].confidence | número | De 0 a 1. O quanto o resultado corresponde à consulta. Abaixo de 0.5 significa que estimamos. |
results[].place_id | string | Identificador estável deste lugar. |
results[].components | objeto | Partes do endereço. Veja abaixo. |
results[].bounds | objeto | north, 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.
| Chave | Significado |
|---|---|
name | Nome de um ponto de interesse ou edifício, quando a correspondência é um deles. |
house_number | Incluindo letras e intervalos: 221B, 12-14. |
road | Nome da rua com o seu tipo: Baker Street, Avenue Anatole France. |
neighbourhood, suburb | Áreas dentro da cidade, onde o país as usa. |
city | Cidade, vila ou povoado. |
county | Condado ou distrito. |
state, state_code | Estado, província ou região, e o seu sufixo ISO 3166-2 quando existe. |
postcode | Código postal, formatado como a autoridade postal o formata. |
country, country_code | Nome do país e código ISO 3166-1 alfa-2 em minúsculas. |
Observações
- Os resultados são ordenados por uma combinação de confiança, precisão e proximidade. O primeiro resultado é o que você deve usar, a menos que esteja mostrando um seletor.
- Quando um número de casa não é encontrado numa rua conhecida, o resultado tem
type: streeteprecision: street, com o número interpolado onde os dados permitem. Verifiqueprecisionse isso for importante para você. - Códigos postais sozinhos funcionam bem como
q. Para cargas de trabalho só com códigos postais, o endpoint de código postal é mais rápido e retorna o nome de lugar da autoridade postal. - Uma consulta num sistema de escrita para um lugar que usa outro (cirílico para um endereço japonês, por exemplo) funciona, mas
langdecide o sistema de escrita da resposta.
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.
| Provedor | Host | Caminho |
|---|---|---|
| Google Maps Platform | gapi.mygeocode.com | /maps/api/geocode/json?address=... |
| Bing Maps REST Services | bing.mygeocode.com | /REST/v1/Locations?q=.../REST/v1/Locations?countryRegion=...&locality=...&addressLine=... |
| HERE Geocoding and Search | here.mygeocode.com | /v1/geocode?q=.../v1/geocode?qq=street=...;city=... |
| Mapbox Geocoding | mapbox.mygeocode.com | /geocoding/v5/mapbox.places/{query}.json/search/geocode/v6/forward?q=... |
| Geocode.Farm | farm.mygeocode.com | /forward/?addr=.../v3/json/forward/?addr=... |
| OpenStreetMap Nominatim | osm.mygeocode.com | /search?q=...&format=json/search?street=...&city=...&country=...&format=json |
| OpenCage | opencage.mygeocode.com | /geocode/v1/json?q=.../geocode/v1/geojson?q=... |
| LocationIQ | locationiq.mygeocode.com | /v1/search?q=...&format=json |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/search?text=... |
| TomTom Search | tomtom.mygeocode.com | /search/2/geocode/{query}.json/search/2/structuredGeocode.json?countryCode=...&streetName=... |
| MapQuest Geocoding | mapquest.mygeocode.com | /geocoding/v1/address?location=.../geocoding/v1/batch?location=...&location=... |
| Geocodio | geocodio.mygeocode.com | /v1.7/geocode?q=.../v1.7/geocode (POST, JSON array) |
| PositionStack | positionstack.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.