Aller au contenu
AI Agent
QGIS
Tutorial

Géocoder des adresses dans QGIS : 5 méthodes gratuites comparées

Publié le

Vue aérienne du lycée Glenwood à Chatham, dans l'Illinois. Un anneau noir marque le point officiel sur le bâtiment, un point orange Nominatim est à 17 m, et un point rose du Census est à 184 m au sud, sur Plummer Boulevard.

Géocoder, c'est transformer une liste d'adresses en points sur une carte. Pour des adresses françaises, la meilleure source gratuite est la Base Adresse Nationale (BAN), servie par la Géoplateforme de l'IGN : sur nos 100 écoles, elle les a toutes placées en une demi-seconde, à 8 m près en médiane. Dans QGIS, l'outil intégré est le Géocodeur Nominatim par lot de la boîte à outils de traitements, qui interroge OpenStreetMap partout dans le monde. Vous pouvez aussi décrire la tâche en une phrase à AI Agent.

Nous avons géocodé 100 écoles françaises et 100 écoles américaines dont les coordonnées officielles sont publiques, puis mesuré l'écart de chaque réponse :

MéthodeAdressesTrouvéesErreur médiane90 % à moins deTemps pour 100
BAN, CSV de la GéoplateformeFrance seulement1008 m77 m0,5 s
AI Agent, avec la BAN demandéeFrance seulement997 m70 menviron 8 min
AI Agent, une phraseMonde entier100 FR, 93 US45 m FR, 184 m US283 m FR, 2 880 m USenviron 1 min
Géocodeur Nominatim par lot (intégré)Monde entier92 FR, 81 US46 m FR, 95 m US264 m FR, 465 m US148 s
Géocodeur du Census américainÉtats-Unis seulement87128 m342 m1,9 s

Le test : 200 écoles aux coordonnées officielles

Un guide de géocodage sans mesure reste une supposition. Tous les chiffres de cet article viennent de nos essais du 19 octobre 2026 :

  • 100 écoles publiques françaises tirées au hasard dans l'annuaire de l'Éducation nationale, toutes localisées au numéro de rue.
  • 100 écoles publiques américaines tirées au hasard dans le fichier de localisation des écoles du NCES (2023-2024), dont chaque point est estimé à partir de l'adresse puis vérifié à la main.

Nous n'avons gardé que l'adresse, le code postal et la commune, jamais le nom de l'école : aucun géocodeur ne pouvait la retrouver comme un lieu nommé. L'erreur est la distance en ligne droite entre le point renvoyé et le point publié.

Une réserve pour la France. 44 des 100 points de la BAN tombent à moins d'un mètre du point du ministère : le ministère place donc ses écoles sur les points adresse de la BAN. Pour la France, lisez les chiffres de la BAN comme « vous obtenez le point officiel », pas comme un test de précision indépendant.

Méthode 1 : la BAN et la Géoplateforme

La Base Adresse Nationale est la base officielle des adresses en France. Son service de géocodage tourne désormais sur la Géoplateforme de l'IGN, à l'adresse https://data.geopf.fr/geocodage/, sans clé.

  • Une adresse à la fois : l'extension French Locator Filter, maintenue par Oslandia, l'ajoute à la barre de recherche de QGIS.
  • Un fichier entier : envoyez votre CSV au point d'accès /geocodage/search/csv. Le fichier doit être en UTF-8 et faire moins de 50 Mo ou 200 000 lignes, et le service accepte 50 requêtes par seconde par adresse IP.

Elle a placé nos 100 écoles en 0,46 seconde. L'erreur médiane est de 8 m et 94 des 100 réponses tombent sur un numéro, pas seulement sur une rue.

Lisez la colonne result_score. Notre seule catastrophe, une école envoyée à 200 km, à Clamart, avait un score de 0,54 : son code postal était un code CEDEX, qui ne correspond à aucune commune. C'était le seul score sous 0,6. Filtrez les scores bas et vérifiez-les à la main.

À utiliser quand : vos adresses sont en France. Rien d'autre dans notre test n'en approche.

Méthode 2 : demander à AI Agent en une phrase

AI Agent est notre extension QGIS qui exécute une tâche écrite, dans le projet ouvert. Elle lit vos couches et leurs champs, choisit les outils et montre ce qu'elle a modifié.

Nous avons chargé les 100 adresses françaises, sans coordonnées, et écrit :

Géocode les adresses de la couche ecoles avec la Base Adresse Nationale (BAN) et enregistre les points dans un GeoPackage. Dis-moi combien d'adresses n'ont pas été trouvées.

Elle a d'abord demandé s'il fallait interroger la BAN adresse par adresse ou utiliser son géocodeur par lot, plus rapide. Nous avons choisi la BAN. Environ 8 minutes plus tard, 99 écoles étaient placées, avec une erreur médiane de 7 m et aucun point à plus de 170 m. Elle a écarté elle-même une réponse, parce que la BAN renvoyait une autre voie dans une autre commune : l'adresse de Watten qui avait envoyé le CSV brut de la BAN à 2,4 km. Elle a aussi évité l'erreur de 200 km du code CEDEX.

QGIS avec le Plan IGN de la France et des points violets pour les écoles, et le panneau AI Agent à droite. L'agent indique que les 100 recherches BAN sont terminées, qu'un résultat correspondait à une autre commune et une autre voie et a été exclu, que 99 points sont enregistrés dans ecoles_geocodees_BAN.gpkg, que six autres résultats sont au niveau de la voie, et cite la Base Adresse Nationale sous Licence Ouverte 2.0.
Avec la BAN demandée, AI Agent a placé 99 écoles à 7 m près en médiane et retiré lui-même la seule mauvaise correspondance.

Sans préciser la BAN, la même demande a trouvé les 100 adresses en moins d'une minute, avec une erreur médiane de 45 m : le niveau de Nominatim, pas celui de la BAN. Nommez donc la BAN dans votre phrase.

Sur les 100 adresses américaines, une phrase en anglais a suffi : AI Agent a vu que la rue, la ville, l'État et le code postal étaient dans des champs séparés, a construit l'adresse complète dans une copie de travail et a enregistré le GeoPackage en une minute environ. Il a trouvé 93 adresses, le meilleur taux du test américain, mais 17 points tombent à plus d'1 km, souvent sur un lieu à l'adresse voisine : un hôpital, une caserne de pompiers, une église.

QGIS avec le panneau AI Agent à droite, en anglais. L'agent indique que la source a 100 lignes avec la rue, la ville, l'État et le code postal séparés, construit une adresse complète dans une table de travail, puis annonce 93 points trouvés et 7 adresses non trouvées, enregistrés dans US schools geocoded.gpkg. La carte montre les points sur les États-Unis.
Le même travail sur les adresses américaines : 93 points en une minute environ, les 7 adresses manquantes mises à part.

Nous lui avons ensuite demandé de signaler les points douteux. En 3 minutes, il a comparé le code postal de chaque point avec la source et en a marqué 6 en rouge, en précisant qu'il s'agissait d'un contrôle d'étiquette, pas de limites postales. 3 des 6 étaient bien à plus d'1 km, mais 14 points lointains restaient non signalés.

À utiliser quand : vos adresses sont à nettoyer ou à découper d'abord, ou quand le géocodage n'est qu'une étape d'une tâche plus longue.

À éviter quand : vous géocodez le même fichier chaque semaine. Enregistrez un modèle une fois pour toutes.

Méthode 3 : le Géocodeur Nominatim par lot intégré à QGIS

QGIS intègre un géocodeur par lot depuis la version 3.20. Il utilise Nominatim, le géocodeur gratuit d'OpenStreetMap, et respecte sa limite d'une requête par seconde.

Charger les adresses

Couche > Ajouter une couche > Ajouter une couche de texte délimité…, choisissez votre CSV et réglez Définition de la géométrie sur Pas de géométrie (juste la table).

Construire un seul champ d'adresse

L'outil lit un seul champ. Ouvrez la Calculatrice de champ et créez un champ texte adresse_complete avec une expression comme "adresse" || ', ' || "code_postal" || ' ' || "commune".

Lancer le géocodeur

Ouvrez la Boîte à outils de traitements (Ctrl+Alt+T), cherchez Géocodeur Nominatim par lot, choisissez la table dans Couche en entrée et adresse_complete dans Champ d'adresse, puis exécutez.

Vérifier les adresses manquées

La sortie garde toutes les lignes et ajoute les champs renvoyés par Nominatim, comme display_name, class, type et postcode. Les lignes sans correspondance n'ont pas de géométrie. Filtrez-les et corrigez les adresses.

La fenêtre du Géocodeur Nominatim par lot de QGIS, en anglais. Couche en entrée : us_schools_addresses. Champ d'adresse : full_address. Sortie : couche temporaire. L'aide indique que l'algorithme géocode par lot avec le service Nominatim à partir d'un champ texte.
L'outil intégré sur nos 100 adresses américaines : 81 trouvées en 148 secondes.

Nominatim a trouvé 92 des 100 adresses françaises, avec une erreur médiane de 46 m, et 81 des 100 adresses américaines, avec 95 m. La durée est fixée par la limite de débit : 1 600 adresses prennent environ 40 minutes.

À utiliser quand : vous avez quelques centaines d'adresses n'importe où dans le monde et voulez rester dans QGIS.

À éviter quand : vous avez des dizaines de milliers de lignes. Les règles de Nominatim découragent le géocodage de masse et demandent de garder les résultats en cache. En France, la BAN fait mieux et plus vite.

Méthode 4 : MMQGIS et son outil de géocodage de CSV

MMQGIS est une extension communautaire ancienne. Son outil Geocode CSV with Web Service lit directement un CSV, avec jusqu'à quatre colonnes d'adresse (adresse, ville, État, pays) : pas besoin de la Calculatrice de champ.

Il propose plusieurs services : OpenStreetMap / Nominatim et le Census américain sont gratuits, Google demande une clé d'API. Il écrit aussi un CSV Not Found avec chaque ligne non placée, le fichier sur lequel vous travaillerez ensuite.

À utiliser quand : vos adresses sont réparties en colonnes séparées.

À éviter quand : vous n'avez que quelques adresses. La barre de recherche, plus bas, va plus vite.

Méthode 5 : le géocodeur du Census pour les adresses américaines

Pour des adresses aux États-Unis, le Census Bureau propose un géocodeur gratuit qui accepte jusqu'à 10 000 adresses par fichier.

  1. Enregistrez un CSV sans en-tête, avec cinq colonnes : identifiant, rue, ville, État, code postal.
  2. Envoyez-le sur https://geocoding.geo.census.gov/geocoder/ dans Address Batch, avec le référentiel Public_AR_Current.
  3. Chargez le résultat dans QGIS comme couche de texte délimité. Les coordonnées sont dans une seule colonne « longitude,latitude » : séparez-les d'abord avec la Calculatrice de champ.

Il a répondu en 1,9 seconde et trouvé 87 adresses sur 100. Les 13 autres sont revenues en « No_Match » ou « Tie » : des adresses de routes rurales comme « 140 Highway 142 », une adresse en quadrillage de l'Utah (« 17845 N 54000 W ») et des rues d'école récentes comme « 501 Middle School Drive ».

Il est moins précis qu'il n'en a l'air. Le Census place chaque point par interpolation le long de la plage de numéros de la rue, pas sur le bâtiment. L'erreur médiane est de 128 m, et seuls 29 des 87 points tombent à moins de 100 m de l'école. Sur un grand terrain scolaire, le point atterrit sur la rue, devant l'école.

À utiliser quand : vos adresses sont aux États-Unis et vous en avez beaucoup.

Une adresse à la fois : la barre de recherche

Pour une seule adresse, inutile de lancer un outil. Cliquez dans la barre de recherche en bas à gauche de QGIS (Ctrl+K), tapez >, une espace, puis l'adresse. QGIS interroge Nominatim et zoome sur le résultat. Il ne cherche pas pendant la frappe, volontairement, pour respecter les règles de Nominatim.

Pour des adresses françaises, l'extension French Locator Filter fait la même chose avec la BAN.

Quelle précision attendre d'un géocodage gratuit ?

« Trouvée » ne veut pas dire « juste ». Voici où les réponses sont tombées, sur 100 adresses à chaque fois :

MéthodeÀ moins de 50 mÀ moins de 100 mÀ plus d'1 km
BAN, France82942
AI Agent avec la BAN, France83950
Nominatim, France50652
Géocodeur Nominatim par lot, États-Unis27424
AI Agent, États-Unis284417
Census, États-Unis6292

Une adresse non trouvée ne compte ni comme proche ni comme lointaine.

Orthophoto IGN d'un boulevard du 8e arrondissement de Lyon. Un anneau noir marque le point officiel de l'école, avec le point bleu de la BAN posé dessus, étiqueté BAN, 0 m. Un point orange étiqueté Nominatim, 475 m se trouve plus haut sur le même boulevard, relié par un trait pointillé.
194 bis boulevard Pinel, Lyon. Anneau noir : le point officiel. La BAN tombe dessus. Nominatim ne connaissait que la rue et a renvoyé un point 475 m plus haut sur le boulevard.

Les erreurs suivent quelques schémas :

  • Le repli sur la rue. Quand Nominatim ne connaît pas le numéro, il renvoie un point sur la rue. C'est arrivé pour 34 des 100 adresses françaises. Sur une longue avenue, ce point peut être loin de la porte.
  • L'interpolation. Le Census suppose des numéros régulièrement espacés le long d'un îlot. Les écoles occupent de grands terrains, donc le point tombe sur la rue, devant la mauvaise partie du terrain.
  • La même adresse dans la mauvaise commune. Nominatim a placé « 51 rue Jean Jaurès, Angers » à Trélazé, la commune voisine, à 2,9 km. Gardez toujours la commune dans l'adresse.
  • Les formats inhabituels. Nominatim n'a rien renvoyé pour 8 adresses françaises. Plusieurs contenaient une double espace, « DR » pour « Docteur », un numéro « 3 bis » ou un nom de hameau dans la ligne de la rue. La BAN les a toutes lues.
  • L'adresse est fausse, pas le géocodeur. Le Census et Nominatim s'accordent à 51 m près sur une école de Mesa, en Arizona, alors que le point officiel est à 10 km. L'adresse enregistrée n'était tout simplement plus celle de l'école.

Deux contrôles simples rattrapent l'essentiel :

  • Combiner deux services. Aux États-Unis, le Census puis Nominatim pour ses échecs ont trouvé 96 adresses sur 100.
  • Les comparer. Signalez chaque ligne où deux géocodeurs s'écartent de plus de 500 m. Cela a signalé 5 lignes américaines et 4 françaises, et chacune cachait une vraie erreur.

Le géocodage inverse dans QGIS

Le géocodage inverse va dans l'autre sens : d'un point vers l'adresse la plus proche. QGIS n'a pas d'outil intégré pour le faire par lot, mais vous avez trois solutions gratuites :

  • Le point d'accès /geocodage/reverse/csv de la BAN prend un CSV avec des colonnes de latitude et de longitude. Faites un clic droit sur votre couche de points, Exporter > Sauvegarder les entités sous…, choisissez le format CSV et réglez GEOMETRY sur AS_XY.
  • MMQGIS > Reverse Geocode envoie chaque point à Nominatim (ou à Google avec une clé) et ajoute les champs d'adresse.
  • AI Agent dispose aussi d'un outil de géocodage inverse : une phrase comme « ajoute l'adresse la plus proche à chaque point » suffit.

Nous avons renvoyé les 100 points officiels des écoles dans deux services. La BAN a répondu en 0,59 seconde : la bonne commune pour 97 points, la bonne rue pour 88, le numéro et la rue exacts pour 58. Nominatim a mis 111 secondes pour les points américains et, pour 58 d'entre eux, a renvoyé l'école elle-même, car les écoles sont cartographiées dans OpenStreetMap. Seuls 34 sont revenus avec le numéro et la rue exacts.

La leçon : le géocodage inverse renvoie l'adresse la plus proche, pas « l'adresse ». Une école à l'angle de deux rues reçoit la rue perpendiculaire. Servez-vous-en pour étiqueter des points, pas pour reconstruire un fichier d'adresses.

Ce qu'il faut retenir

Pour des adresses françaises, utilisez la BAN : un CSV envoyé à la Géoplateforme, ou AI Agent en nommant la BAN dans votre phrase.

Pour quelques centaines d'adresses ailleurs dans le monde, le Géocodeur Nominatim par lot suffit, avec une erreur médiane proche de 100 m.

Vérifiez toujours les adresses manquées, les scores bas et les lignes où deux services ne sont pas d'accord.

Si les adresses demandent d'abord un nettoyage, décrivez le résultat voulu à AI Agent, nommez le géocodeur en qui vous avez confiance, et vérifiez ce qu'il a produit.

Questions fréquentes

Comment géocoder des adresses dans QGIS ?

Pour des adresses françaises, envoyez votre CSV au service de géocodage de la Géoplateforme (BAN), puis chargez le résultat comme couche de texte délimité. Ailleurs, chargez votre CSV comme table, construisez un champ d'adresse complète avec la Calculatrice de champ et lancez le Géocodeur Nominatim par lot depuis la Boîte à outils de traitements, intégré depuis QGIS 3.20.

Le géocodage dans QGIS est-il gratuit ?

Oui. La BAN, Nominatim et le géocodeur du Census américain sont gratuits et sans clé d'API. Nominatim limite à une requête par seconde et décourage les gros traitements de masse. Le géocodage Google dans MMQGIS demande une clé payante.

Quelle est la précision de la BAN par rapport à Nominatim ?

Sur nos 100 écoles françaises, la BAN les a toutes trouvées avec une erreur médiane de 8 m. Nominatim en a trouvé 92, avec 46 m de médiane, et pour un tiers d'entre elles il ne connaissait que la rue, pas le numéro.

Comment faire du géocodage inverse dans QGIS ?

Pour des points en France, envoyez un CSV de coordonnées au point d'accès /geocodage/reverse/csv de la BAN. Ailleurs, utilisez MMQGIS > Reverse Geocode avec Nominatim. Attendez-vous à l'adresse la plus proche, souvent la rue perpendiculaire pour un bâtiment à l'angle.

Une IA peut-elle géocoder des adresses dans QGIS ?

Oui. Avec la BAN demandée, AI Agent a placé 99 de nos 100 écoles françaises à 7 m près en médiane, en environ 8 minutes, et a écarté lui-même la seule mauvaise réponse. Sans préciser la BAN, il les a toutes trouvées en moins d'une minute, avec 45 m de médiane.