cartes

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 partout

Sans 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épondent

La 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 --estimer

Toutes 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 86081

La 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 :

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.csv

La carte cite alors la Base Adresse Nationale, d'où viennent les positions, dans sa mention des sources.

Ce qu'il faut savoir#

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é.