Nous allons aujourd'hui regarder de plus près une fonctionnalité de OpenStreetMap, et on appelle généralement du geocoding ou Geodecoding.

Le principe est simple, à partir d'une adresse postale, le Geocoding convertit cette adresse postale en coordonnées GPS. Le Geodecoding fait l'opération inverse.

Travaillant depuis très longtemps avec les API de Google Maps, j'ai abandonné ce système lorsque celle-ci sont devenues payantes. Je suis désormais passé sur OpenStreetMap, un site collaboratif de cartographie
Nous allons voir ici comment, à partir de coordonnées géographiques, latitude et longitude, l'API d'OpenStreetMaps nous retourne les informations sur l'adresse que nous avons spécifiée sous la forme longitude latitude.
Pour effectuer cette opération, OpenStreetMap a mis en place Nominatim, du latin, signifiant "par le nom".
Le principe est très simple, dans les paramètres de l'URL, nous plaçons l'adresse postale depuis laquelle nous recherchons des coordonnées géographiques, et nous lançons et la requête http sur le serveur. En retour, le serveur nous renvoie des données dans le format spécifié dans l'URL. Ce format peut-être XML ou JSON, selon le type que vous souhitez avoir. Ces données retournées spécifient l'adresse postale complète c'est-à-dire avec les coordonnées GPS ainsi que quelques autres données concernant le contributeur, la référence du lieu, ainsi que quelques autres informations moins indispensables pour notre action.
Comme à notre habitude, une fois les résultats obtenus, il suffit de parser cette grande chaîne retournée par le serveur, en l'occurrence un format JSON ou XML, afin d'en extraire les informations que vous souhaitez d'exploiter.

Nous allons prendre colle exemple, la rue Jean Jaurès de Nancy. L'URL est de la forme :

https://nominatim.openstreetmap.org/search?street=rue+jean+jaures&city=nancy&format=json

Le resultat obtenu sera :