﻿{"id":14256,"date":"2025-07-31T10:00:00","date_gmt":"2025-07-31T08:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=14256"},"modified":"2025-08-06T10:24:45","modified_gmt":"2025-08-06T08:24:45","slug":"geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/","title":{"rendered":"G\u00e9ocoder une liste d\u2019adresses sans coder avec QGIS et le plugin MMQGIS"},"content":{"rendered":"\n<p>Le g\u00e9ocodage consiste \u00e0 convertir des <strong>adresses postales<\/strong> (ou des noms de lieux) en <strong>coordonn\u00e9es g\u00e9ographiques<\/strong>. Avec le plugin <strong>MMQGIS<\/strong>, cette op\u00e9ration devient accessible \u00e0 tous, sans \u00e9crire une seule ligne de code. Voici comment proc\u00e9der.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Ce_quil_vous_faut\" >Ce qu\u2019il vous faut<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Preparer_vos_donnees\" >Pr\u00e9parer vos donn\u00e9es<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Exemple\" >Exemple :<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Geocoder_avec_MMQGIS\" >G\u00e9ocoder avec MMQGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Resultat\" >R\u00e9sultat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Bonnes_pratiques\" >Bonnes pratiques<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Astuce\" >Astuce<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#%E2%9A%A0%EF%B8%8F_Limites_de_Nominatim_et_precautions_a_prendre\" >\u26a0\ufe0f Limites de Nominatim et pr\u00e9cautions \u00e0 prendre<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Limite_importante\" >Limite importante :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Le_probleme_avec_MMQGIS\" >Le probl\u00e8me avec MMQGIS<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Solutions_si_vous_avez_beaucoup_dadresses\" >Solutions si vous avez beaucoup d\u2019adresses<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Script_Python\" >Script Python<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Objectif\" >Objectif :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Fichier_source_exemple\" >Fichier source (exemple)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Script_a_coller_dans_la_console_Python_de_QGIS\" >Script \u00e0 coller dans la console Python de QGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#A_noter\" >\u00c0 noter :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#A_adapter_avant_dexecuter\" >\u00c0 adapter avant d\u2019ex\u00e9cuter :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Resultat-2\" >R\u00e9sultat :<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/#Et_ensuite\" >Et ensuite ?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ce_quil_vous_faut\"><\/span>Ce qu\u2019il vous faut<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/importer-csv-qgis\/\">fichier CSV<\/a> contenant une <strong>liste d\u2019adresses<\/strong> (ou noms de lieux).<\/li>\n\n\n\n<li>QGIS avec le plugin <strong>MMQGIS<\/strong> install\u00e9.<\/li>\n\n\n\n<li>Une <strong>connexion internet<\/strong> active (le g\u00e9ocodage utilise des services en ligne).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Preparer_vos_donnees\"><\/span>Pr\u00e9parer vos donn\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Votre fichier CSV doit contenir :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une colonne avec l\u2019adresse compl\u00e8te (ou ville + pays),<\/li>\n\n\n\n<li>des en-t\u00eates simples (ex. : <code>adresse<\/code>),<\/li>\n\n\n\n<li>un encodage UTF-8.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exemple\"><\/span>Exemple :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>id,adresse\n1,\"Rue de la R\u00e9publique, 75003 Paris, France\"\n2,\"10 Downing Street, London, UK\"\n3,\"Port Mathurin, Rodrigues, Maurice\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Geocoder_avec_MMQGIS\"><\/span>G\u00e9ocoder avec MMQGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"212\" data-attachment-id=\"14772\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/mmqgis_geocode\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?fit=512%2C212&amp;ssl=1\" data-orig-size=\"512,212\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"mmqgis_geocode\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?fit=512%2C212&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?resize=512%2C212&#038;ssl=1\" alt=\"\" class=\"wp-image-14772\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?w=512&amp;ssl=1 512w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode.jpg?resize=300%2C124&amp;ssl=1 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ouvrez QGIS<\/strong> et assurez-vous que MMQGIS est activ\u00e9.<\/li>\n\n\n\n<li>Allez dans le menu :<br><code>MMQGIS \u2192 Geocode \u2192 Geocode CSV with Web Service<\/code>.<\/li>\n\n\n\n<li>Dans la fen\u00eatre qui s\u2019ouvre :\n<ul class=\"wp-block-list\">\n<li>S\u00e9lectionnez votre fichier CSV.<\/li>\n\n\n\n<li>Indiquez la <strong>colonne contenant les adresses<\/strong>.<\/li>\n\n\n\n<li>Choisissez le <strong>service de g\u00e9ocodage<\/strong> :<br>    <strong>OpenStreetMap\/Nominatim<\/strong> est gratuit, mais limit\u00e9 en volume.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Choisissez un <strong>fichier de sortie<\/strong> pour les r\u00e9sultats (CSV ou <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/frshapefile-vs-geopackage-quel-format-choisir\/\">shapefile<\/a>).<\/li>\n\n\n\n<li>Cliquez sur <strong>OK<\/strong> pour lancer le traitement.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"557\" height=\"487\" data-attachment-id=\"14770\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/mmqgis_geocode_window\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?fit=557%2C487&amp;ssl=1\" data-orig-size=\"557,487\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"mmqgis_geocode_window\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?fit=557%2C487&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?resize=557%2C487&#038;ssl=1\" alt=\"\" class=\"wp-image-14770\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?w=557&amp;ssl=1 557w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_window.jpg?resize=300%2C262&amp;ssl=1 300w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/a><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resultat\"><\/span>R\u00e9sultat<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le plugin cr\u00e9e un fichier avec les <strong>coordonn\u00e9es latitude\/longitude<\/strong> ajout\u00e9es.<\/li>\n\n\n\n<li>Une <strong>couche de points<\/strong> est automatiquement charg\u00e9e dans QGIS.<\/li>\n\n\n\n<li>Chaque point est li\u00e9 \u00e0 l\u2019adresse d\u2019origine.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"319\" data-attachment-id=\"14768\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/geocoder-une-liste-dadresses-sans-coder-avec-qgis-et-le-plugin-mmqgis\/mmqgis_geocode_resultat\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?fit=1516%2C757&amp;ssl=1\" data-orig-size=\"1516,757\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"mmqgis_geocode_resultat\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?fit=640%2C319&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?resize=640%2C319&#038;ssl=1\" alt=\"\" class=\"wp-image-14768\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?resize=1024%2C511&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?resize=300%2C150&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?resize=768%2C383&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?w=1516&amp;ssl=1 1516w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/mmqgis_geocode_resultat.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bonnes_pratiques\"><\/span>Bonnes pratiques<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour \u00e9viter d\u2019\u00eatre bloqu\u00e9 par Nominatim, <strong>limitez le nombre de requ\u00eates<\/strong> et ajoutez un d\u00e9lai si vous utilisez beaucoup d\u2019adresses.<\/li>\n\n\n\n<li>Si vous avez un volume important ou des exigences de pr\u00e9cision, envisagez un <strong>service professionnel<\/strong> (Google Maps, HERE, etc.).<\/li>\n\n\n\n<li>V\u00e9rifiez la <strong>qualit\u00e9 des adresses<\/strong> : une adresse mal format\u00e9e sera mal g\u00e9ocod\u00e9e.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Astuce\"><\/span>Astuce<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vous pouvez ensuite utiliser la couche obtenue pour :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cartographier des points d\u2019int\u00e9r\u00eat,<\/li>\n\n\n\n<li>calculer des distances,<\/li>\n\n\n\n<li>enrichir vos analyses spatiales, etc.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E2%9A%A0%EF%B8%8F_Limites_de_Nominatim_et_precautions_a_prendre\"><\/span>\u26a0\ufe0f Limites de Nominatim et pr\u00e9cautions \u00e0 prendre<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Le service Nominatim utilis\u00e9 par le plugin MMQGIS repose sur les serveurs d\u2019OpenStreetMap, qui imposent des r\u00e8gles strictes d\u2019usage pour \u00e9viter la surcharge de leurs infrastructures.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Limite_importante\"><\/span>Limite importante :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Une requ\u00eate par seconde maximum est autoris\u00e9e<\/strong>. Si vous envoyez trop de requ\u00eates trop rapidement, vous risquez :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>de recevoir des erreurs,<\/li>\n\n\n\n<li>de vous faire temporairement bloquer par le serveur.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_probleme_avec_MMQGIS\"><\/span>Le probl\u00e8me avec MMQGIS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Le plugin <strong>ne permet pas d\u2019ajouter un d\u00e9lai entre les requ\u00eates<\/strong>, ce qui rend son usage risqu\u00e9 pour les grandes listes d\u2019adresses (plus de 50 \u00e0 100).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Solutions_si_vous_avez_beaucoup_dadresses\"><\/span>Solutions si vous avez beaucoup d\u2019adresses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>D\u00e9coupez votre fichier CSV en petits lots<\/strong> (ex. 50 ou 100 adresses) et lancez le g\u00e9ocodage manuellement pour chaque lot, en espa\u00e7ant les op\u00e9rations.<\/li>\n\n\n\n<li><strong>Utilisez un autre service de g\u00e9ocodage<\/strong>, comme :\n<ul class=\"wp-block-list\">\n<li><strong>Google Maps API<\/strong> (n\u00e9cessite une cl\u00e9 API et a ses propres quotas).<\/li>\n\n\n\n<li><strong>BAN (Base Adresse Nationale)<\/strong> si vos donn\u00e9es concernent la France.<\/li>\n\n\n\n<li><strong>Photon<\/strong> (bas\u00e9 aussi sur OpenStreetMap, mais avec d&rsquo;autres conditions).<\/li>\n\n\n\n<li><strong>ArcGIS Online<\/strong> si vous avez acc\u00e8s \u00e0 ce service.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Utilisez un script Python<\/strong> avec une boucle lente :<br>Un script personnalis\u00e9 avec <code>time.sleep(1)<\/code> entre chaque requ\u00eate vous permet de respecter les conditions d\u2019utilisation.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Script_Python\"><\/span>Script Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Voici un <strong>script Python simple<\/strong> pour <strong>g\u00e9ocoder une liste d\u2019adresses<\/strong> avec <strong>Nominatim<\/strong> en respectant un <strong>d\u00e9lai minimum d\u2019une seconde<\/strong> entre chaque requ\u00eate, comme recommand\u00e9.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Objectif\"><\/span>Objectif :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lire un fichier CSV contenant des adresses.<\/li>\n\n\n\n<li>Utiliser l\u2019API Nominatim (OpenStreetMap).<\/li>\n\n\n\n<li>Attendre 1 seconde entre chaque requ\u00eate pour respecter les conditions d\u2019utilisation.<\/li>\n\n\n\n<li>\u00c9crire un fichier CSV en sortie avec les coordonn\u00e9es lat\/lon.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Fichier_source_exemple\"><\/span>Fichier source (exemple)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Un fichier CSV nomm\u00e9 <code>adresses.csv<\/code> avec une colonne <code>adresse<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id,adresse\n1,10 rue de Paris, Lyon, France\n2,5 avenue Victor Hugo, Marseille, France\n3,place Bellecour, Lyon, France\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Script_a_coller_dans_la_console_Python_de_QGIS\"><\/span>Script \u00e0 coller dans la console Python de QGIS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class='stb-container stb-style-download stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAADcFJREFUeNrsmnmQXNV1xn\/3Lf1eb9OzdM+qGe2DFgZFIGQIizFGBpRAgQUhmDUOqQI7qYIirtguAgHbyBUbO3FsEpcTIixMICKgsDgskYyNWGwEaLEQoA1mn+np6Z6ZXt9288d9o8E2IhKSUymXXtWrN931+vX97vnOOd93eoSUkt+FQ+N35DgO5DiQ39JhfNCbQojfeC+ia0RtC8\/zKdUclvUspVQus3hJD\/nxMfoGhwkqU3zi\/NV2NF7X+OSjD2WSDem6IJAWgKGJ2kR+fPLiNX+UrZaL45ue+XHViCbo7GijpaWVHdu3kYhH2frGTmzTQAiB5\/u4fvAba\/mgAmUczS4IIfA9j+pUIbpo4bwerLozS1b6FLtjwfJP\/sU3WnNTtVix7JgEAUnLcNPJSAlqw6X+\/W\/0nHrGa8ItbRkZHNjpNjVVP2jzjjoih3VIKE5MGF2zu1bH5yy9WrZ0n5N1zMzOgTFGXxrAK1XA80FK8APwPAuBZdrRxpbGhiWL5i6+qi0psk0L9m1u0ksP\/PzFF5+ORdu8j7ypHxSmD6eWR6nmsmJZz6KTV11y+z6v8Q\/2lURd\/0gOr1gEASBACAUiEBAEClQQQAB4EnyJmUgxb14ny+emJhdEhp7a9Oj6r7z82vbdlqGjadoRUeuIgFimQaXqcO6qVZfPP++P7970zviCvXv2EggDYgkQEiRhFMK\/gzAivgShhfVFqKsPeGDE6jj1lKV8+pTY3lf+\/e9v+4+NTz1sGTpSSpxjDUQHIgL90muuvTl65pV3\/dvz22Pl0QHwqmqBdh1omtp1yftASBUFCUgdhD4DBB00AzQbtCQdJ53IFy9bUHln\/V\/f\/t17f\/BtobbgsIAcdvnVBNql11x7q7HqhrXrt\/bFyq4Ltg1GBHwPnKpa7K9uSUgzDTQLTAuMXzvNOMQbobmTgckodzyvRRfe9J27P3\/TDV8QR7K+w71x1YWrr01ccMOdD768z3Q8D+oaIJoEwwRdA68CgaeiIlA5IoR6rZkKsG6BFlGgtBBErAHqZ0FmNjS3MZ6rcMcjA+aCq+6647I1l15\/TIEsnNu1fPEVf\/61B7b2216tBpapAMTqwIqCpgMBuI56pBAc5JcIgei2AqJH1GnGQhDt0NQJdRnFX1Ekv38\/X3\/kHfvsz962dkn33BXHBIita6k1N976lScOVNvL+TxYEbU4ISBiQaIhBKNB4IAMFO\/F+2hlRn6VVmZ0BkS6E1Jp0CRUJ6A4BrLE8N5e1m+tNt\/wl3d+LaJRd9RAzr\/o4iv3pntW7enPqcV6rtps3QijkoREWi2QAHxXRUDTFRjdACMKhq0iEYlCvAEa2iHTCXXNoAmoFmBqFKbyUKtCRPCL7ft5W19yzqcvv\/yqowLSEDXTs89aff2W\/ZMRKXTQTdUXPE+BMUy104l6RQ3DVGCmaRcJIxCJQTSuSnS8HhrboLkTUs1qBZVxmByFYgGcmqp8AgLf55lt2Uj32Zdc15CwMkcMZLr4nnb2OasGY3NOGslOQuCD1ELa6ApMEIBpQiwO9RlIpsE01FlzYXAA+nphYBgGRqEqoKkDWmere5FQzYcg8uBUQPozC9AE\/UN5ekVHz2lnnPVJAP0QUsY4hPpAB635hGXn7iiaUemEVPJDBaELRR3fn8kBTVfn2ADs3UU608Q5n+gJfq+7q2hEkuweLie39DliXxHIpBSdSuMwOQKlvIoE8mDFRqrK51Wr7B4OYiuWnf4p45n\/3uBJ6R+R1upsb+5KdC1ZPjRUUHmhh7yXngLkS1V28VUuWLb68vwEl328x7vzxst3z25t3O041UKlUsZz\/fqi0Jf+8w5v0Xef7dXdhAVuXtHJdZQqQMxEIwjRiIDBbJFgVueSlkx9+0C20HdEQKxEalb\/hN+RHehXOy+tsGfoICKqZ7ieAumbIAX09XLN6tO9H9y8ZrOpadt937ftaMw2IlHGstmRYGL8vS+ubBwW1eCcbz28UyedVJ9HqggRyhv5vqjogqHcBOX5mXnp1vZ5hwKiHQpdqr5pbtUVLf5oPxRzMDEGk+NQmoRqRckOEYHAAC+AwX46jTJ3XX3udsvQt2u6niyVy9ozzz777qZNmw7ohqEnG9PJ4aHc63+2IrVzaaMLY7kwp3QwNBVhXczQiwC0AK84RWDVZ1pa2+dHxBHI+PbWNM2tbe0emqBcBGmDqIKhQyXs0tN9wTRVjozkuOSiE91ZDfFfOq5re57v33LLLU+88MILL0spWbly5elr1679w3hdg21r3q4LTuk4cdejbxs0N4AIVbEfyn4pFX0DBwIXfJeJsosVT2Yy6frDr1rxRBzTsut8N1C77fvqwbUa1EpQmlDRKYxCIQfj41Aq0t3ZUiqWSmXTjMQefvjhnevWrXs+lUpN1tXVTT700EPPb968eXdbW2scoU0snF0\/RSwOEQNMoapV4IDngF8BWQXpKpCapOh4eGh2Ll84fCD7DvQKTdc06fvKR\/jB+67Tpw+uD46jzkBD001ZLleo1WpaLpcrtbe312zbJpFI0N3d7dRqtXIsFtNsOyo14fqYDkQkmBI0XxUS6QAuCB90qShnGkhdBylFzUMcNrUcX0rfccqGJpTkkHJGemtGqJ1CEWjaYCchoTFWFvHAd+yR0dHKeeedd1JbW9uSe++9902AtWvXLlq2bNlix3EqqWQyvufA1iQTg+CmVNWLWWCb4QZ5SiH4QWjGfBJxG6EJT36Axv7QqpUdHc4m53gqH9BVH9EjKi+08KqHeWInIGPz3N5y5PpPRU7Ij2RfyLS2NS6PRP5kzZo1L5umycqVK0+fNWtWKvC93JSr9Tz3zphFRwvogXKMEUt9l9BnzJgbVsaKT6o+xlilWDhiz54bG+1tCGp5YnUNyECp14NSPIzK9NWwYXYLL40GbHyPkz8zp360f3jorVRjuu6mz33uoqhtS8dxKp7r5QzT6P76gz9esW2kBMuWQtVRKsBH5YOuK2GqaYoJToDWbBExKpPZ4cHeI9ZaTnmqvz1lDqcbGkGG0RBm6BX1UAFbilbJDDTPIuhcxB0bJuwf7qhd0JhuPNOUTiQ3MlgcHx0q6tI1y7XaGV\/6\/mMX3rPuKZtUQjWKmAmJKMQjilo6qslqEiwDYhFaZ6exykO92YH+A0cckYGBwV53vO\/t1ubuxWO5ogq5mAagK2MUTUB9M6RnQTQFEgo5nb\/63jZ7Q2dwxkUrO09ePDc9JUSZ7W\/9PLlhy87ortGqoHOhyoH8BNQnFQBfU0VEhtJfovIDQUeTRXTXuwdGsvm+IwZS8ynk3nvzxRNWrLz4l\/uyGlKbAWPYEK1TIJo6lCdxfZgcA6+Al4rxyr4R8crubTFMPQZVqGYhakDnQtX0KhOQL4Q6TVUmNA1cpXzRNZAawogwP1IJ9r7005\/VoPCRZPxrL2\/ZPD9e3d+STs8oXyOqLG6qBdIdSsK7nuopuUHIj4BbhXQjzOmCznaY1QlzFkBjE1QKKieEptTuVBEcX\/UqXSg6aeHgQkpaMnHmTR048PqLWzZ\/ZD8ykM3vGN31kyc\/fupcVal0G2IpaGiFTDskGxQd8iOQG4CJUaiVlX5ya0oMTjdTNyynTlndE4T0qVSgWFHPCQK1Iss46P1PazYZfOaxJ\/vzk9uPxiF6Gzc8eP\/HMvnd3Yvngx6HhhbIdCiX53gKxNgAFLJQKYemy1eJ7PsKgOMoCaJHVJXzQ60WhHlQqkDFC1\/Lg1ZhTlcjHxt\/8+3HfvTAOlUBjsLqFqbKuzd876v33Hh+V7W+eyEkmpX78zzIj4aRGINqWe289FUTDRuZUsdeOFExwl4B+E44hfTU\/aUK1EJL4AVEklGuaqe28W\/vvGeiWtt9LKYozitbt23c+8R37rvtmh6sTBNM1WAiC+NDSmvVyqoKSVfJjMBXC\/RcpZ2kFyqD0AIYlhoxShlqudDflGpQdiBicV1PM333ffNffvHG9scA51gAkUDuX++779vu0\/c8\/uUL01jOJAz0qSpVK4W764bRCDVT4M6o1yCcFwotVAiWUtL4KipuTUWl4iEcwRXL2ok+\/v3HHvnRA9+SMMYhZMlHGtBVXH\/v3bf\/zZfEk199\/NbzEtiiCoUC+LUQxPTi3VAnTQPxQqc3PXHUFb0MWzU9gSoCpRJmNMpnlreTefIf\/3PdPd\/4ctn19x3zafxB56iLhdf96Q1f6Dr3s9fev3nQ2rOnN1SqMxPSg5NGjbBHmBCJKAOl6+Ec21dj1kACJm1dHVxxctrJPvVP6x754f3frAVyzyEpcjRD7F8bsrSevvKUSy+6\/ubP7yy1LX7u1XdFLptH+o7a5Wm3p2nKHkdCA2boytKGQIUOdQmbMxa00+Pvf+sn6\/\/uH159bdtGCUMfRqdjBWQaTCwZs5atueLKqzM9564+UE51vjNQ1AayExSKJXw3rJZ6CMSyIGqjxywa6uK0ZOLMr9OCzlp\/X\/61p\/\/rqUceWj9RcbYD5f8tJ44lkPcfdS2NqeW\/f9bZq1KzFp0aa1t0QlHEmkfKwnb1mAg0E2maGKaGqbmyJSarca+QLR3Y8XZh385XX\/nZT58dKUy+Dkwd9o9lvyUgB38LMgWts7s6FiTqG+fokVhbfWM6bVh2DCEInGo5n8uO+dXS0FQ+9957fUN7XBg+nNL6fw3k16lnAaErI9TmOEDtcMrpMQFy\/B8GjgM5DuQ4kP+3x\/8MAHWpUzAU7qJ7AAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'> <\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import csv\nimport time\nimport requests\nfrom qgis.core import (\n    QgsVectorLayer,\n    QgsFields,\n    QgsField,\n    QgsFeature,\n    QgsGeometry,\n    QgsPointXY,\n    QgsProject\n)\nfrom PyQt5.QtCore import QVariant\n\n# Param\u00e8tres\nCSV_PATH = 'C:\/chemin\/vers\/adresses.csv'  # \u2190 \u00c0 adapter\nUSER_AGENT = \"VotreNomOuProjet (email@exemple.com)\"  # Obligatoire !\nDELAY = 1.1  # D\u00e9lai entre requ\u00eates en secondes\n\n# Fonction de g\u00e9ocodage\ndef geocode(adresse):\n    url = 'https:\/\/nominatim.openstreetmap.org\/search'\n    params = {\n        'q': adresse,\n        'format': 'json',\n        'limit': 1\n    }\n    headers = {'User-Agent': USER_AGENT}\n    try:\n        response = requests.get(url, params=params, headers=headers)\n        response.raise_for_status()\n        data = response.json()\n        if data:\n            return float(data&#091;0]&#091;'lon']), float(data&#091;0]&#091;'lat'])\n        else:\n            return None, None\n    except Exception as e:\n        print(f\"Erreur : {adresse} \u2192 {e}\")\n        return None, None\n\n# Lecture du CSV\nfeatures = &#091;]\nwith open(CSV_PATH, newline='', encoding='utf-8') as f:\n    reader = csv.DictReader(f)\n    for row in reader:\n        adresse = row&#091;'adresse']\n        print(f\"G\u00e9ocodage : {adresse}\")\n        lon, lat = geocode(adresse)\n        if lon is not None and lat is not None:\n            feat = QgsFeature()\n            feat.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(lon, lat)))\n            feat.setAttributes(&#091;adresse, lat, lon])\n            features.append(feat)\n        else:\n            print(f\"Adresse non trouv\u00e9e : {adresse}\")\n        time.sleep(DELAY)\n\n# Cr\u00e9ation de la couche m\u00e9moire\nvl = QgsVectorLayer('Point?crs=EPSG:4326', 'Adresses g\u00e9ocod\u00e9es', 'memory')\nprov = vl.dataProvider()\nprov.addAttributes(&#091;\n    QgsField('adresse', QVariant.String),\n    QgsField('latitude', QVariant.Double),\n    QgsField('longitude', QVariant.Double)\n])\nvl.updateFields()\nprov.addFeatures(features)\nvl.updateExtents()\nQgsProject.instance().addMapLayer(vl)\n\nprint(\"\u2705 G\u00e9ocodage termin\u00e9. Couche ajout\u00e9e \u00e0 QGIS.\")\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_noter\"><\/span>\u00c0 noter :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le champ <code>User-Agent<\/code> est <strong>obligatoire<\/strong> pour l\u2019usage de Nominatim. Mettez votre nom ou votre projet, avec un mail valide.<\/li>\n\n\n\n<li>Le script attend <strong>1,1 seconde<\/strong> entre chaque appel.<\/li>\n\n\n\n<li>Vous pouvez adapter la structure du CSV (champ <code>adresse<\/code>, s\u00e9parateurs, etc.).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_adapter_avant_dexecuter\"><\/span>\u00c0 adapter avant d\u2019ex\u00e9cuter :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>CSV_PATH<\/code> \u2192 mettre le chemin complet du fichier <code>.csv<\/code> contenant la colonne <code>adresse<\/code>.<\/li>\n\n\n\n<li><code>USER_AGENT<\/code> \u2192 indispensable pour respecter les conditions de Nominatim.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resultat-2\"><\/span>R\u00e9sultat :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une <strong>nouvelle couche point<\/strong> s\u2019ajoute automatiquement au projet QGIS.<\/li>\n\n\n\n<li>Chaque point repr\u00e9sente une adresse g\u00e9ocod\u00e9e, avec les colonnes : <code>adresse<\/code>, <code>latitude<\/code>, <code>longitude<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Et_ensuite\"><\/span>Et ensuite ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Dans un prochain article, nous verrons comment <strong>g\u00e9ocoder des lieux uniquement \u00e0 partir du nom<\/strong> (commune, pays, etc.), ou encore comment faire l\u2019inverse : <strong>retrouver l\u2019adresse \u00e0 partir de coordonn\u00e9es GPS<\/strong> (reverse g\u00e9ocoding).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le g\u00e9ocodage consiste \u00e0 convertir des adresses postales (ou des noms de lieux) en coordonn\u00e9es g\u00e9ographiques. Avec le plugin MMQGIS, cette op\u00e9ration devient accessible \u00e0 tous, sans \u00e9crire une seule ligne de code. Voici comment proc\u00e9der.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":14774,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1945,62],"tags":[3520,195,196,3522,3518,58],"class_list":["post-14256","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin","category-qgis-2","tag-adresses","tag-geocodage","tag-mmqgis","tag-nominatim","tag-pliugin","tag-qgis"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/07\/MMQGIS_3.jpg?fit=1232%2C756&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-3HW","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/14256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=14256"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/14256\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/14774"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=14256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=14256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=14256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}