Fabriquer ses propres cartes interactives en Python
MéthodeAvant de commencer
Ce TP prolonge la passerelle Folium du cours Python : commence par y installer Folium et par faire les exercices 35 à 38 si ce n'est pas déjà fait.
rappel.py
import folium
carte = folium.Map(location=[44.1646, 4.6103], zoom_start=16)
folium.Marker([44.1646098, 4.6103368], popup="Lycée Albert Einstein").add_to(carte)
carte.save("ma_carte.html")
CoursOpenStreetMap, la carte que tout le monde peut modifier
Le fond de carte utilisé par défaut par Folium vient d'OpenStreetMap : une carte collaborative, dessinée par des centaines de milliers de bénévoles, un peu comme Wikipédia. Ses données sont libres : n'importe qui peut les réutiliser, à condition de citer la source.
Folium propose d'autres fonds, avec le paramètre tiles :
fonds.py
carte = folium.Map(location=[44.1646, 4.6103], zoom_start=16, tiles="cartodbpositron")
Valeur de tiles
Rendu
"OpenStreetMap"
le fond par défaut, très détaillé
"cartodbpositron"
fond clair et épuré, idéal pour faire ressortir les marqueurs
"cartodbdark_matter"
fond sombre
ExercicesExplorer et personnaliser
EX 33Je m'entraîne🌶️prise en main
Exercice 33 — Trois fonds de carte
Crée trois cartes du lycée avec les trois fonds du tableau, enregistrées sous trois noms différents. Lequel préfères-tu pour une carte de vacances ? Pourquoi ?
Indice
Change le nom dans carte.save(...) à chaque fois, sinon chaque carte écrase la précédente.
💾 NOM_Prenom_ex33.py
EX 34Je m'entraîne🌶️🌶️application
Exercice 34 — Qui a dessiné mon lycée ?
Va sur openstreetmap.org et zoome sur le lycée. Cite cinq types d'objets cartographiés (bâtiments, arbres, parkings…).
Avec l'outil Interroger les objets (point d'interrogation à droite), clique sur un bâtiment du lycée. Quelles informations sont enregistrées ?
Dans l'historique de l'objet, qui l'a modifié en dernier, et quand ?
Indice
L'historique s'ouvre depuis la fiche de l'objet (Afficher l'historique).
📝 réponses dans ton compte rendu, exercice 34
EX 35Je m'entraîne🌶️🌶️application
Exercice 35 — Des marqueurs plus parlants
Voici un marqueur qui affiche un texte au survol de la souris (tooltip) et qui a une couleur :
marqueur.py
folium.Marker([44.1646098, 4.6103368],
popup="Lycée Albert Einstein",
tooltip="Clique-moi !",
icon=folium.Icon(color="green", icon="info-sign")).add_to(carte)
Crée une carte de ta ville avec au moins quatre marqueurs de couleurs différentes selon leur catégorie (sport, culture, commerce…), chacun avec un tooltip et un popup.
Deux erreurs concernent les coordonnées, une concerne un nom de paramètre, une le marqueur, une le nom du fichier… il y en a bien quatre si on compte les coordonnées comme une seule !
Indice 2
Un paramètre mal orthographié ne provoque pas toujours d'erreur : il est simplement ignoré.
💾 NOM_Prenom_ex36.py
EX 37Je m'entraîne🌶️🌶️🌶️plusieurs étapes
Exercice 37 — Tracer un trajet
La fonction folium.PolyLine trace une ligne qui relie plusieurs points, donnés dans une liste de listes :
Trace le trajet d'un voyage (réel ou imaginé) passant par au moins quatre villes, avec un marqueur sur chaque étape.
Indice 1
Range les coordonnées des villes dans la liste trajet, dans l'ordre du voyage.
Indice 2
Pour les marqueurs, tu peux parcourir la liste : for point in trajet: puis, décalé, folium.Marker(point).add_to(carte).
💾 NOM_Prenom_ex37.py
EX 38Défi🌶️🌶️🌶️🌶️défi
Exercice 38 — Retour à la trilatération
Défi : un téléphone capte trois antennes relais. On connaît la position de chaque antenne et sa distance au téléphone. folium.Circle trace un cercle dont le rayon est donné en mètres.