Aller au contenu

Mapshaper

🤖 Rédaction assistée par IA.

Mapshaper est un outil complet pour éditer et convertir les données géographiques (Shapefile, GeoJSON, TopoJSON, GeoPackage, FlatGeobuf, GeoParquet, KML, CSV...), disponible en interface web et en ligne de commande.

L'outil dispose de fonctionnalités puissantes pour simplifier les géométries, nettoyer les données, effectuer des opérations géométriques (clip, erase, dissolve...) et convertir entre différents formats.

Cas d'utilisation

  • simplifier les géométries en conservant la topologie à l'échelle d'une couche
  • convertir entre formats (GeoJSON, Shapefile, TopoJSON, GeoPackage, ...),
  • nettoyer et réparer les topologies,
  • éditer les données attributaires,
  • combiner et fusionner des couches,
  • filtrer les entités géographiques.

Installation

Ligne de commande

Mapshaper nécessite Node.js. Une fois Node.js installé :

npm install -g mapshaper

Vérifier l'installation :

mapshaper --version

Interface web

Accessible directement à mapshaper.org sans installation requise. Tous les traitements s'exécutent dans le navigateur.

Simplification géométrique

Concept

La simplification réduit le nombre de points d'une géométrie, ce qui :

  • réduit la taille des fichiers (notamment important pour les données complexes comme les côtes ou limites administratives),
  • accélère le rendu sur le web,
  • préserve l'essentiel de la forme tout en éliminant les détails inutiles.

Méthodes de simplification

Mapshaper offre trois algorithmes différents :

Visvalingam-Whyatt (par défaut)

Supprime les points situés dans les angles les plus aigus pour un résultat plus fluide. C'est généralement le meilleur choix.

mapshaper zones.shp -simplify 10%

Douglas-Peucker

Conserve les points situés dans une distance maximale de la ligne originale. Rapide mais peut créer des pointes aux angles aigus.

mapshaper zones.shp -simplify method=dp 10%

Simplification cartographique

Basée sur les triangles formés par les points adjacents.

Exemples

Simplifier avec un pourcentage de conservation

mapshaper zones.shp -simplify 25% -o format=geojson

Cela réduit le nombre de points à 25% du total original.

Simplifier avec une distance donnée (algorithme Douglas-Peucker)

mapshaper zones.shp -simplify method=dp interval=1000 -o

Conserve tous les points à plus de 1000 unités de distance de la ligne simplifiée.

Simplifier pour le web (petites géométries)

mapshaper routes.shp -simplify 10% keep-shapes -o format=geojson

L'option keep-shapes empêche les petits polygones de disparaître lors d'une forte simplification.

Combiner simplification et conversion

mapshaper limites.shp \
  -simplify 15% \
  -o format=geojson limites-simple.geojson

Simplifier en coordonnées planaires

mapshaper zones.shp -simplify 10% planar -o format=geojson

Par défaut, mapshaper traite les coordonnées comme des latitude/longitude (sphériques). L'option planar les traite comme des coordonnées cartésiennes sur un plan.

Options utiles

Option Description
method=visvalingam Utilise Visvalingam-Whyatt (défaut)
method=dp Utilise l'algorithme Douglas-Peucker
keep-shapes Empêche les petits polygones de disparaître
planar Traite les coordonnées comme cartésiennes
no-quantization Désactive la quantification des coordonnées

Workflow complet d'optimisation

Un cas d'usage plus concret consiste à récupérer les départements depuis la Géoplateforme, puis à produire un GeoJSON allégé pour le web :

# 1. Télécharger les départements en GeoJSON avec ogr2ogr (~131M)
ogr2ogr -f GeoJSON departements.geojson \
  WFS:"https://data.geopf.fr/wfs?service=WFS&version=2.0.0&request=GetCapabilities" \
  ADMINEXPRESS-COG.LATEST:departement

# 2. Nettoyer et simplifier pour réduire fortement la taille (0.8M)
mapshaper departements.geojson \
  # 3. Nettoyer les topologies
  -clean \
  # 4. Conserver 0.2% du détail original
  -simplify 0.2% keep-shapes \
  # 5. Exporter en GeoJSON
  -o format=geojson departements-light.geojson

Résultat :

Ressources

Voir aussi