Cartes web
Créer une carte interactive avec WebMap.
WebMap (dans cartograpy.mapper) couvre les usages interactifs légers à partir d’un GeoDataFrame, par-dessus Folium/Leaflet.
Créer une carte
from cartograpy.mapper import WebMap
wm = WebMap(location=(5.35, -4.0), zoom_start=7, tiles="OpenStreetMap")tiles(str, défautOpenStreetMap) : Fond de carte :"OpenStreetMap","CartoDB positron","Stamen Terrain", etc. (tout fond supporté par Folium).
Avertissement
WebMap nécessite folium, qui n’est pas dans les dépendances cœur de cartograpy : pip install folium si l’import échoue.
Ajouter une couche vectorielle
wm.add_layer(regions_gdf, column="densite", cmap="YlOrRd",
tooltip_columns=["nom", "densite"], name="Densité")Sans column, la couche est affichée avec un style uni plutôt qu’une choroplèthe :
wm.add_layer(routes_gdf, name="Routes")
Note
add_layer reprojette automatiquement en EPSG:4326 si la couche est dans un autre CRS : Folium/Leaflet n’acceptent que WGS 84.
Marqueurs
wm.add_marker((5.35, -4.0), popup="Abidjan", tooltip="Cliquez pour plus d'infos")Contrôles et cadrage
wm.add_layer_control() # bouton d'activation/désactivation des couches
wm.fit_bounds(regions_gdf) # zoome automatiquement sur l'emprise d'une coucheToutes les méthodes se chaînent
wm = (
WebMap(location=(5.35, -4.0), zoom_start=7)
.add_layer(regions_gdf, column="densite", name="Densité")
.add_marker((5.35, -4.0), popup="Abidjan")
.add_layer_control()
)Afficher et exporter
wm.show() # affichage automatique dans un notebook Jupyter/Marimo
wm.save("carte.html") # export HTML autonomeLimites face à Map
Map |
WebMap |
|
|---|---|---|
| Rendu | statique (PNG, PDF, export papier) | interactif (HTML, zoom/pan navigateur) |
| Légende, échelle, flèche du Nord | oui, gérées en détail | non : habillage Leaflet standard uniquement |
| Volumes de données | adapté aux gros jeux de données | à limiter : de gros GeoJSON ralentissent le navigateur |
| Distribution | image/PDF à insérer dans un document | fichier HTML autonome, partageable tel quel |
Astuce
Pour de gros volumes (plusieurs dizaines de milliers d’entités), simplifiez la géométrie avant add_layer (VectorTools(gdf).simplify_geometry(tolerance=...)) : un GeoJSON trop détaillé ralentit sensiblement l’affichage Leaflet.
Aller plus loin
- Cartes statiques : l’équivalent pour l’export image/PDF
- Reference mapper : signatures complètes