Les outils
Ligne de commande
Pour qui veut répéter, automatiser, ou produire les cartes de plusieurs communes d'un coup.
Installation#
Il faut Node.js 22 ou plus récent.
git clone https://github.com/sebprunier/cartes.git
cd cartes
npm install
npm link # facultatif : rend la commande « cartes » disponible partoutSans npm link, remplacez cartes par node src/node/cli.js dans les exemples.
Les commandes#
cartes chercher Colombiers # retrouver une commune et son code INSEE
cartes fonds # lister les fonds de carte
cartes couches # lister les couches superposables
cartes generer 86081 # générer la carte d'une commune
cartes geocoder lieux.csv --commune 86081 # placer les adresses d'un fichier CSV
cartes serveur # servir l'API HTTP, pour d'autres logiciels
cartes etat # vérifier que les services des fonds et des couches répondentLa commande cartes serveur a sa propre page : API.
cartes etat interroge chaque service dont dépendent les cartes, et dit lequel est lent ou en panne : utile avant une série de cartes. Elle se termine en erreur (code 1) si un service est en panne, ce qui permet de l'appeler depuis un script. La même vérification est sur le site : État des services.
Une commune se désigne par son nom ou par son code INSEE. En cas d'homonymes, précisez le département avec -d 86.
Exemples#
# Une carte simple, au zoom par défaut
cartes generer 86081
# Photographies aériennes, zoom 16
cartes generer 86081 -z 16 -f ortho-ign
# Avec le cadastre et l'aléa argiles
cartes generer 86081 -z 16 --couches cadastre --couches argiles
# Avec ses propres données, et un nom de légende choisi
cartes generer 86081 --donnees points.geojson --donnees-titre "Points d'apport volontaire"
# Avec une couche qui n'est pas au catalogue, par l'adresse de ses tuiles
cartes generer 86081 --couche-perso "https://exemple.fr/tuiles/{z}/{x}/{y}.pbf" \
--couche-perso-nom "Zones humides" --couche-perso-source "© Syndicat de bassin"
# Avec la couche d'un service WMS, par l'adresse du service et le nom de sa couche
cartes generer 86081 --couche-perso "https://www.georisques.gouv.fr/services" \
--couche-perso-couche CAVITE_LOCALISEE --couche-perso-nom "Cavités" --couche-perso-source "© BRGM"
# Estimer avant de générer : dimensions, mémoire et poids par niveau de zoom
cartes generer 86081 --estimerToutes les options sont décrites par cartes --aide. Elles existent aussi en anglais : generate, geocode, --basemap, --data…
Géocoder un fichier d'adresses#
Un CSV avec des adresses mais sans coordonnées — une colonne adresse, ou des colonnes numéro, voie, code postal et commune — se géocode avant d'être ajouté à une carte :
cartes geocoder defibrillateurs.csv --commune 86081La commande envoie les adresses au service de géocodage de la Géoplateforme (IGN), en restreignant la recherche à la commune donnée. Elle écrit à côté du fichier un defibrillateurs-geocode.csv : le même fichier, dans le même séparateur, complété de la latitude, de la longitude et du résultat du géocodage de chaque ligne — les six colonnes que décrit Ajouter des données. Puis elle dresse le bilan :
- trouvées : placées avec assurance, et dessinées sur la carte ;
- à vérifier : le service a hésité, ou n'a trouvé qu'une route ou une rue, faute de numéro — le point est au milieu de la voie, parfois loin du lieu voulu. Elles ne sont dessinées qu'avec
--donnees-a-verifier; - introuvables : rien de sûr, et donc rien de dessiné.
Chaque adresse à vérifier ou introuvable est listée avec son numéro de ligne et ce que le service a trouvé. Corrigez-les dans votre tableur, puis géocodez de nouveau le fichier corrigé ; ou ajoutez-le tel quel :
cartes generer 86081 --donnees defibrillateurs-geocode.csvLa carte cite alors la Base Adresse Nationale, d'où viennent les positions, dans sa mention des sources.
Ce qu'il faut savoir#
- Les cartes sont écrites dans
sorties/, sous le nom<code INSEE>-<commune>-<fond>[-<couche>…]-z<zoom>[-gris].<format>:86081-colombiers-plan-ign-cadastre-z16.png, par exemple. La page web et l'API nomment les cartes de la même façon. - Toute commande se termine avec le code 0 si elle a réussi, 1 sinon — commande ou option invalide, commune introuvable, fichier illisible, service en panne pour
cartes etat—, avec un message en français sur la sortie d'erreur. Un script peut s'y fier. - Les tuiles téléchargées sont conservées dans
.cache/tiles/: relancer une commande ne retélécharge rien. --max-tuilesest un garde-fou : au-delà de 5 000 tuiles, l'outil refuse plutôt que de lancer un téléchargement d'une heure par mégarde.--parallelesrègle le nombre de téléchargements simultanés. Six par défaut, ce qui reste courtois envers les services publics utilisés.
Ce qui ne changera pas#
À partir de la version 1.0.0, les commandes, leurs options — sous leurs noms français et anglais — et leurs valeurs par défaut, les identifiants des fonds et des couches, le nom des cartes générées et les colonnes d'un fichier géocodé ne changent pas sans une version majeure. Une version mineure peut ajouter une option ou une couche, jamais en retirer ni en renommer. Les notes de chaque version disent ce qui a été ajouté.