Activité 5a: Cartographie sous python
Seance 5a: Carte avec Python
Capacités attendues:
- Utiliser un site de données ouvertes, pour sélectionner et récupérer des données.
- Identifier les différents descripteurs d’un objet.
- Distinguer la valeur d’une donnée de son descripteur.
- Écrire et développer des programmes pour répondre à des problèmes
- Contribuer à OpenStreetMap de façon collaborative.
Documents à rendre:
Un dossier "Mes_cartes_de_Paris" par binome est à rendre sur le réseau en fin de séance. Il devra contenir les fichiers
- "paris1.html"
- "paris1.py"
- "paris_carte 2.html"
- "paris_carte 2.py"
- "paris_carte 3.html"
- "paris_carte 3.py"
Organisation de la séance:
La séance s'organise autour d'une activité à réaliser par binome sur Pc en 1h25 maximum.
Première partie: Création de carte, marker et cercle
Pour démarrer l'activité créer sur le bureau de l'ordinateur un dossier "Mes_cartes_de_Paris". Lancer Edupython pour créer ces cartes avec le package folium
et le pakckage webbrowser qui permet de crer les pages .html .
Question1: Recherchez sur internet les coordonnées de la latitude et la longitude de Paris puis créer avec folium une carte "Paris1.html" centrée sur Paris avec un Zoom de 12. Enregistrez votre fichier "Paris1.py" dans le répertoir crée ci dessus
import folium
import webbrowser
#variables et constantes
lat =ooo #remplacer "ooo" par la latitude de Paris
lon=ooo #remplacer "ooo" par la longitude de Paris
zoom=ooo #remplacer "ooo" par le zoom de départ
carte= 'ooo' #remplacer "ooo" par le nom de votre carte
fichier='ooo.html' #remplacer "ooo" par le nom de votrefichier
#Corps du programme
carte= folium.Map(location = [lat, lon], zoom_start = zoom)
#Création des fichiers
carte.save(fichier)
webbrowser.open(fichier)
Executez le programme pour le valider.
Ajout de marqueurs
La fonction Marker()
permet d'ajouter une marque sur la carte pour signifier un emplacement précis. Il est possible de spécifier un contenu à afficher (sous la forme d'un pop-up) lorsque l'utilisateur va cliquer sur le marqueur. Celui-ci sera placé à la localisation fournie en premier, au format [latitude, longitude]
. Ce contenu est spécifié dans l'argument popup
(ici, une simple chaîne de caractères, mais cela peut être plus élaboré). Il est aussi possible customiser l'icône du marqueur. Une fois ce marqueur créé, il faut l'ajouter à la carte, via la fonction add_to()
.
Question 2: Ajoutez un Marker sur le centre de paris
#Ajout de variables et constantes
logo='ooo' #remplacer "ooo" par le nom du logo choisi parmi 'home', 'plane', 'train', 'camera', 'bell', 'ambulance', 'bed', 'bomb', 'book', 'car', 'bus', 'coffee', 'film', 'heart', 'music' , 'tree', 'hearthbeat', 'flask', 'cloud', 'fire', 'flag' ,'phone'.
couleur_Marker='ooo' #choisissez la couleur du Marker parmi 'red', 'blue', 'gray', 'darkred', 'lightred', 'orange', 'beige', 'green', 'darkgreen', 'lightgreen', 'darkblue', 'lightblue', 'purple', 'darkpurple', 'pink', 'cadetblue', 'lightgray', 'black'
couleur_icone='ooo' #choisissez la couleur de l'icone
#Ajout au corps du programme
folium.Marker(
[lat, lon], #position du Marker
icon=folium.Icon(
icon=logo, #Icône du Marker
color=couleur_Marker, #couleur du Marker
icon_color=couleur_icone, #couleur de l'icone
prefix='fa'),
popup = "Votre commentaire ici", #Commentaire dans la fenêtre popup
).add_to(carte)
Executez le programme pour le valider.
Ajout de cercles
La fonction CircleMarker()
permet elle de créer des cercles, en donnant la localisation du centre et le rayon (via le paramètre radius
). Idem que pour Marker()
, on peut spécifier le contenu de la popup affichée lors d'un clic, et il est nécessaire de l'ajouter à la carte. Il est possible aussi de spécifier la couleur du cercle (via color
) et la couleur de remplissage (via fillColor
).
Question 3: Ajouter un cercle noir (rempli à 50%) sur le centre de paris. pour cela définissez les "#Ajout de variables et constantes" necesssaires puis
#Ajouter au corps du programme:
folium.CircleMarker(
[lat, lon], #Position du centre du cercle
popup = "Votre commentaire ici", #Commentaire dans la fenêtre popup
radius = rayon, #Position du centre du cercle
fill=True, #Le cercle doit etre rempli
color=couleur_cercle, #Couleur du cercle
fill_opacity=taux #Taux d'opacité du remplissage du cercle (20% s'écrit 0.2)
).add_to(carte)
Executez le programme pour le valider. Enregistrez le fichier "Paris1.py", et "Paris1.html" dans votre dossier "Mes_cartes_de_Paris"