Nominatim, une API de reverse geocoding gratuite et sans identification

Aujourd’hui, pas de grand billet mais juste une petite astuce pour ceux qui, comme moi, chercheraient une API pour obtenir une adresse à partir de coordonnées plus ou moins précises (ce que nos amis anglophones appellent « reverse geocoding »). Pour ce faire, nous allons utiliser l’API nominatim d’Open Street Map. Cette API est entièrement gratuite et ne nécessite pas d’identification. Les seules limites résident dans l’utilisation de la base de données d’Open Street Map (qui, je vous le rappelle, est basée sur la communauté et n’est donc pas toujours très complète) et dans le nombre de requêtes autorisées (voyez cette page pour plus d’infos).

Utilisation de l’API

Adresse de l’API

L’API doit être appelée à partir de cette adresse:

https://nominatim.openstreetmap.org/reverse

Paramètres utiles

L’API prend les paramètres suivant (à passer en GET):

ParamètreValeurDescription
formathtml, xml, jsonLe format de sortie. Json peut être utilisé avec le paramètre json_callback
latVotre latitude
lonVotre longitude
zoomUn nombre compris entre 0 et 18Le niveau de détail : 0 pour le pays, 18 pour le batiment
addressdetails0 ou 1Permet d’obtenir plus de détails

Exemple d’utilisation

Imaginons que votre application, dédiée à la visite de lieux touristiques, localise un utilisateur à la latitude 48.858502 et à la longitude 2.293932. Pour récupérer le lieu où la personne se trouve au format XML, il vous suffira de récupérer la page https://nominatim.openstreetmap.org/reverse?format=xml&lat=48.858502&lon=2.293932&zoom=18&addressdetails=. Et hop, vous savez maintenant que votre utilisateur se trouve à Paris, au pied de la Tour Eiffel !

Et voilà, enjoy!