Vous travaillez sur la mise en place d’une interface de WebMapping avec la possibilité de localiser une adresse? Ce module est relativement facile à développer avec les API de Géocodage de Google Maps et de Bing par exemple.
A l’échelle de la France, on est ravi de pouvoir utiliser l’API de la Base Adresse Nationale (BAN) mise à disposition par l’ETALAB qui a pour mission de coordonner l’ouverture et la réutilisation des données publiques (Open Data) depuis 2011, notamment à travers la plateforme de data.gouv. La BAN est comme son nom l’indique le référentiel géographique de l’ensemble des adresses françaises issu d’un travail collaboratif de nombreux acteurs comme la DGFiP, La Poste, l’IGN, OpenStreetMap et encadré par l’Administrateur Général des Données et le Conseil National de l’Information Géographique.
Ici, on utilise l’API BAN pour localiser une adresse française sur une carte dynamique grâce à OpenLayers (v4) et jQuery. La documentation de l’API BAN indique que la réponse retournée par l’interrogation du lien : https://api-adresse.data.gouv.fr/search/?q=+adresse est un objet GeoJSON contenant plusieurs entités géographiques (features). Le nombre de ces dernières peut être limité en ajoutant le paramètre limit dans l’URL.
Avec OpenLayers, deux solutions JavaScript s’offrent à nous pour afficher le vecteur sur la carte :
- La première consiste à prendre en charge le GeoJSON retourné dans la source du vecteur grâce à la méthode loader.
- On peut aussi obtenir les coordonnées géographiques de chaque entité retournée et s’en servir pour créer des entités ponctuelles.
Voici la première méthode (1) :
Veuillez vous Connecter pour consulter ce contenu. S'Inscrire Gratuitement
En conclusion, on s’est servi des APIs BAN, OpenLayers et jQuery pour géocoder les adresses françaises sur une carte. Les résultats retournés par l’API sont relativement rapides et grâce à cette performance, on peut noter son large succès. De plus, contrairement à Google Maps, l’appel à l’API n’est pas limité par un nombre de requêtes et aucune création de compte n’est nécessaire.
D’autres utilisations de l’API sont possibles comme le géocodage inversé si les coordonnées géographiques sont connues ou le géocodage de masse depuis un fichier de format csv.
Bonjour,
Merci pour ce tutoriel qui donne quelque chose de très efficace !
J’aurais aimé savoir si il était possible de supprimer le point localisé précédent pour qu’il n’en persiste qu’un sur la carte. Je me souviens que vous m’aviez conseillé d’utiliser sourceVecteur.clear(), mais pour être honnête je ne sais pas à quelle niveau l’insérer dans le code. Et je n’arrive pas bien à savoir si il faut modifier une partie du code pour cela.
Je vous remercie par avance.
Bien à vous.
Romain
J’ai pu inséré sourceVecteur.clear() et cela semble fonctionner. J’ai posé ma question un peu vite. Mon commentaire précédent devient donc inutile. Merci pour votre temps !
Merci pour votre retour Romain. N’hésitez pas si besoin. FD