Géocodage inverse
Des coordonnées en entrée, l'adresse la plus proche en sortie, ou la localité, la région ou le pays si c'est tout ce qu'il vous faut.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
latobligatoire | nombre | De -90 à 90. |
lonobligatoire | nombre | De -180 à 180. |
levelfacultatif | chaîne | Le niveau le plus précis à renvoyer : address (par défaut), street, postcode, city, region, country. Les niveaux moins précis sont plus rapides et ne descendent jamais en dessous du niveau demandé. |
radiusfacultatif | entier | Rayon de recherche des adresses en mètres, de 1 à 5000. Par défaut 5000. Choisissez une petite valeur pour obtenir null plutôt qu'une adresse éloignée. |
langfacultatif | chaîne | Code ISO 639-1 pour les noms. Par défaut en. |
keyfacultatif | chaîne | Clé d'API, si elle n'est pas envoyée dans un en-tête. |
Exemple
$ 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"){
"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"
}
}
}Champs de la réponse
| Champ | Type | Description |
|---|---|---|
lat, lon | nombre | Le point que vous avez envoyé, renvoyé tel quel. |
result | objet ou null | null lorsque rien ne se trouve dans le rayon radius au niveau demandé. |
result.formatted | chaîne | L'adresse, ou le nom de la localité pour les niveaux moins précis. |
result.lat, result.lon | nombre | La position de l'élément renvoyé, pas celle de votre point. |
result.distance_m | entier | Distance en mètres entre votre point et l'élément. 0 lorsque le point se trouve à l'intérieur. |
result.type, result.precision, result.place_id, result.components | Comme pour le géocodage direct. |
Remarques
- Une valeur élevée de
distance_mest un signal. Un point situé dans un parc peut se trouver à 300 m de l'adresse la plus proche ; dans ce cas, il vaut généralement mieux afficher le quartier que l'adresse. level=countryrépond en une milliseconde environ et c'est le moyen le moins coûteux de répondre à la question « dans quel pays se trouve ce point ».- Les points en mer renvoient
nullau niveauaddresset, dans les eaux territoriales, le pays au niveaucountry.
La même recherche aux formats d'autres fournisseurs
Si vous avez déjà du code écrit pour l'un de ces fournisseurs, gardez-le : l'hôte compatible accepte le même chemin et les mêmes paramètres et répond dans le format de réponse de ce fournisseur, avec cet endpoint derrière. Voir le fonctionnement des hôtes compatibles.
| Fournisseur | Hôte | Chemin |
|---|---|---|
| Google Maps Platform | gapi.mygeocode.com | /maps/api/geocode/json?latlng=lat,lng |
| Bing Maps REST Services | bing.mygeocode.com | /REST/v1/Locations/{lat},{lon} |
| HERE Geocoding and Search | here.mygeocode.com | /v1/revgeocode?at=lat,lng |
| Mapbox Geocoding | mapbox.mygeocode.com | /geocoding/v5/mapbox.places/{lon},{lat}.json/search/geocode/v6/reverse?longitude=...&latitude=... |
| Geocode.Farm | farm.mygeocode.com | /reverse/?lat=...&lon=.../v3/json/reverse/?lat=...&lon=... |
| OpenStreetMap Nominatim | osm.mygeocode.com | /reverse?lat=...&lon=...&format=json |
| OpenCage | opencage.mygeocode.com | /geocode/v1/json?q=lat,lng |
| LocationIQ | locationiq.mygeocode.com | /v1/reverse?lat=...&lon=...&format=json |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/reverse?lat=...&lon=... |
| TomTom Search | tomtom.mygeocode.com | /search/2/reverseGeocode/{lat},{lon}.json |
| MapQuest Geocoding | mapquest.mygeocode.com | /geocoding/v1/reverse?location=lat,lng |
| Geocodio | geocodio.mygeocode.com | /v1.7/reverse?q=lat,lng |
| PositionStack | positionstack.mygeocode.com | /v1/reverse?query=lat,lng |
Recherches en masse
Envoyez en POST au même chemin un corps JSON avec coords, un tableau de jusqu'à 100 paires [lat, lon], et la réponse contient un tableau results avec une entrée par paire, dans l'ordre d'envoi. Chaque entrée compte comme une requête, et un lot plus grand que ce qui reste du quota est refusé en entier.
$ curl -X POST "https://api.mygeocode.com/v1/reverse" -H "Content-Type: application/json" -d '{"coords": [[52.5163, 13.3777], [47.3769, 8.5417]]}'Erreurs
400 invalid_request lorsque lat ou lon est absent ou hors limites, ou que level ne fait pas partie des valeurs listées.