Graĉe à la librairie Folium, ce script en Python permet de placer facilement sur un fond de carte des valeurs données.
Téléchargement
Les fichiers suivants sont nécessaires :
- render_map.py : le script python
Installation des dépendances Python :
pip install clize
pip install folium
pip install jinja2
pip install selenium
pip install xlrd
Utilisation
Les données
Pour utiliser le script, il faut tout d’abord disposer d’un fichier xlsx
avec les colonnes suivantes :
Nom
: une chaîne texte ou html,Latitude
: latitude GPS au format décimal,Longitude
: longitude GPS au format décimal.
De façon optionnelle :
Taille
: la taille du point à placer,Couleur
: la couleur du point en notation html.
L’ordre des colonnes importe peut, seul l’entête des colonnes est important.
Latitude | Longitude | Taille | Nom | Couleur |
---|---|---|---|---|
45.966799 | 4.094492 | 5000 | Saint Cyr de Favière | #FF00FF |
45.530354 | 3.988017 | 4500 | Gumières | #FF0000 |
43.314835 | 3.138366 | 8000 | Colombier | #FF0000 |
45.719658 | 4.340391 | 3000 | St Barthélemy Lestra | #FF00FF |
47.638726 | 6.205383 | 10000 | Auxon les Vesoul | #FF00FF |
48.182818 | -0.127533 | 12000 | Sillé le Guillaume | #FF00FF |
44.200217 | 3.922162 | 9000 | Saint Martin de Boubaux | #FF0000 |
45.403881 | 4.181305 | 3000 | St Maurice en Gourgois | #FF0000 |
43.863403 | 5.429098 | 7000 | Saignon | #FFFF00 |
45.447486 | 4.589925 | 6000 | La Terrasse sur Dorlay | #FFFF00 |
46.065794 | 3.913783 | 1200 | Saint-Haon le Châtel | #FFFF00 |
49.528928 | -1.519935 | 20000 | Saint Joseph | #00FF00 |
45.385826 | 3.972102 | 4000 | Roche en Forez | #00FF00 |
45.423278 | 4.673270 | 11000 | Pélussin | #00FF00 |
L’exemple est téléchargeable ici.
Si vos coordonnées géographiques sont des adresses postables, vous pouvez utiliser le site suivant pour les convertir en coordonnées géographiques : Batch geocode
Génération de la carte
Pour générer la carte, il suffit de lancer la commande suivante :
python render_map.py 201511_Cartographie.xlsx
Le script va générer un fichier html contenant la carte générée.
Quelques options sont disponibles :
-c
,--default-color
: par défaut si non précisée dans le tableau-f
,--fill-opacity
: opacité du remplissage-l
,--line-color
: couleur de la ligne de contour-o
,--output
: nom du fichier de sortie-r
,--render
: rendu dans un fichier png au moyen de Firefox, géré avec Selenium-s
,--sheet
: permet de sélectionner l’onglet par nom
L’option render
est intéressante car elle permet de réaliser une copie d’écran automatiquement.
Il faut pour cela disposer du navigateur Firefox. Le fichier prendra le nom du fichier de sortie
avec l’extension .html
.
Attention, la carte est centrée par défaut sur la France, si vous voulez un autre point central par défaut ou un autre niveau de zoom, il faut éditer le code :
carte_map = folium.Map(location=[47, 4], zoom_start=6, tiles='Mapbox Bright')
Le paramètre tiles
permet de choisir le fond de carte parmi Stamen Toner
, Mapbox Bright
ou le rendu
OpenStreetMap par défaut.