Réalisation de la carte avec Javascript

Les données RNA

Les données issues du Répertoire National des Associations sont séparées par département, et en deux versions : celle où les assocations ont un numéro RNA (version dite Waldec) et celles où il n'y a pas de numéro (version Import). Cela n'a pas trop d'importance, puisque ces numéros ne sont pas utilisés, si ce n'est qu'il y a deux fichiers à traiter.

Chaque version a un fichier csv associé. Les champs qui nous intéressent sont le nom de l'association, sa description (ou objet social dans les fichiers), son adresse, et deux identifiants qui vont nous permettent de filtrer les associations qui nous intéressent. Ces identifiants, appelés objet_social1 et objet_social2 , sont des codes qui catégorisent les différents objets sociaux des associations. Par exemple, le code 024000 correspond aux associations de "protection de sites naturels". Dans l'onglet Ressources communautaires du site du RNA, on trouve le fichier Nomenclature Complete Objet Social qui donne l'ensemble des codes et leur signification. Ici, nous avons choisi un ensemble de codes correspondant aux associations qui nous intéressent (celles liées au changement climatique). Voir la page principale pour la liste.

Carte interactive

La bibliothèque Javascript Leaflet permet la réalisation de cartes interactives dans un site web. Voir leur site pour plus d'information. Notre but est d'afficher sur cette carte la localisation des associations. Pour cela, il nous faut leurs coordonnées GPS. Mais les données RNA ne fournissent que l'adresse. L'outil Nominatim permet de "géocoder", c'est-à-dire trouver de telles coordonnées depuis l'adresse. Une instance est disponible à l'adresse https://nominatim.openstreetmap.org et c'est celle-ci que nous utiliserons. Leurs conditions d'utilisation limitent le nombre de requêtes à 1 par seconde. Le script Node.js disponible ici sélectionne les associations ayant un code d'objet social qui nous intéresse, géocode leur adresse, et écrit les coordonnées dans un fichier assos.txt. Étant données les conditions d'utilisation de Nominatim, ce script met environ 15 minutes à s'exécuter. Si vous voulez l'exécuter vous-même, voici les commandes sous Linux à réaliser après téléchargement du script, appelé assos.mjs. Placez-vous dans un nouveau répertoire contenant ce script, et exécutez :

mkdir data
# Téléchargez les deux fichiers RNA Waldec et Import dans data.
# Changez l'encodage pour l'affichage correct des accents sur la carte. Attention à changer les dates dans le nom des fichiers et dans le script si différentes.
iconv -f ISO-8859-1 -t UTF-8 -o data/rna_waldec_20231001_dpt_78_UTF_8.csv data/rna_waldec_20231001_dpt_78.csv
iconv -f ISO-8859-1 -t UTF-8 -o data/rna_import_20231001_dpt_78_UTF_8.csv data/rna_import_20231001_dpt_78.csv
# Installation de la bibliothèque Papa Parse (https://www.papaparse.com/) pour la lecture de fichiers csv :
npm install papaparse
# Script :
node assos.mjs
    

À la fin, on obtient dans data/assos.txt un fichier qui toutes les deux lignes contient les caractéristiques des associations (nom, description...) et leurs coordonnées GPS. Avec ce fichier, on peut utiliser Leaflet côté serveur pour réaliser notre carte.

Pour obtenir sur notre carte un contour du département des Yvelines, on télécharge en format geojson le contour sur le site overpass turbo (cliquez sur Export, et enregistrez sous yvelines.geojson). Le script qui permet la réalisation de la carte peut se trouver ici.

Licence et crédits

Vous êtes libre de faire ce que vous voulez avec tout ce qui précède. Tous les outils et données utilisés sont issus de licences libres et ouvertes.