Créer une carte personnalisée avec Python

La cartographie est très souvent utilisée pour se déplacer et les applications permettent de visualiser des tracés par exemple.

Dans cette activité vous allez comprendre comment ces applications manipulent des cartes.

Préparation de l'environnement de travail

Environnement logiciel

Dans cette activité, vous allez utiliser une carte de Open Street Map (carte communautaire gratuite) à l'aide de la bibliothèque Python Folium.

Cette bibliothèque permet d'exploiter une carte Open Street Map et d'y ajouter des informations dessus.

Pour Python vous ne pouvez pas utiliser un éditeur en ligne mais utiliser un environnement Python à installer sur son ordinateur comme :

- Edupython pour windows.

- Pyzo sur Linux ou sur Mac.
Ensuite vous pouvez installer la bibliothèque lycee pour retrouver une configuration équivalente à celle d'Edupython. Une bibliothèque en python s'appelle module

Installer la bibliothqèe Folium

Avec pyzo :

Une fois l'environnement python lancé, dans la console vous allez installer le module Folium avec la commande suivante (ne pas écrire >>>) :

>>>pip install folium
Normalement une série de messages s'en suivent détaillant l'installation du module Folium.

Avec EduPython :

Dans le menu Outils, vous sélectionnez Outils puis Installation d'un nouveau module avec pip.

Vous n'avez plus qu'à saisir dans la fenêtre qui s'affiche le nom du module : folium.

Organisation des fichiers

Cette activité va créer plusieurs fichiers : il est utile de créer un dossier pour organiser vos informations.

En toute logique, vous avez dans votre dossier personnel (Mes Documents ou un autre nom suivant les systèmes d'exploitation) un dossier python.

Illustration avec un système d'exploitation linux comme Ubuntu :

dossier perso python

Donc, dans ce dossier Pyton vous créez le dossier Cartographie.

Voilà, vous êtes prêt à démarrer l'activité proprement dite.

Créer un fichier avec une carte centrée sur un point GPS

Python est un langage de programmation doté de nombreuses bibliothèques très sympathiques : Folium permet très simplement de travailler sur des cartes !

Exercice 1

Saisissez le code suivant dans votre environnement Python (respectez bien la notion des virgules pour les coordonnées GPS) :

#Appel de la bibliothèque Folium
import folium
#Créer une carte centrée sur les coordonnées GPS indiquée
carte= folium.Map(location=[43.920044, 5.051804])
#Sauvegarder cette carte dans un fichier HTML
carte.save('Carte1.html')

Enregistrez ce programme dans le dossier Cartographie avec le nom OpenStreetMapPython.py et lancez l'exécution dans python.

Il ne se passe pas grand chose à part quelques message dans la console...

En revanche, allez dans le dossier Cartographie, vous devez avoir 2 fichiers :

dossier cartographie1

Vous allez ouvrir le fichier Carte1.html avec votre navigateur : avec un clic droit sur le fichier, choisissez votre navigateur préféré !

La carte est centrée sur quelle ville ?

Exercice 2

Créez un deuxième code :

#Appel de la bibliothèque Folium
import folium
#Créer une carte centrée sur les coordonnées GPS indiquée
carte= folium.Map(location=[43.920044, 5.051804],zoom_start=14)
#Sauvegarder cette carte dans un fichier HTML
carte.save('Carte2.html')

Afin de voir si vous avez compris comment cela fonctionne, modifiez dans le fichier python :

- les coordonnées GPS (attention, c'est une notation en degré, et non en degré, minute...) pour avoir la carte centrée sur votre lycée

- le zoom de 17.

Vérifiez dans votre navigateur que cela fonctionne.

Ajouter une balise sur la carte

Exercice 3

Créez un nouveau programme avec le code suivant :

#Appel de la bibliothèque Folium
import folium
#Créer une carte centrée sur les coordonnées GPS indiquée
carte= folium.Map(location=[43.640512, 5.102072],zoom_start=16)
#ajouter un marqueur avec un commentaire
folium.Marker([43.640512, 5.102072],popup="VIALA LACOSTE",icon=folium.Icon(color='green')).add_to(carte)
#Sauvegarder cette carte dans un fichier HTML
carte.save('Carte3.html')

Après exécution et ouverture du fichier Carte3.html dans votre navigateur, vous devriez voir une carte avec une balise verte :

marker vialaLacoste

En cliquant sur la balise verte, une information s'affiche !

Ajouter un tracé sur la carte

Exercice 4

Créez un nouveau programme avec le code suivant :

#Appel de la bibliothèque Folium
import folium
#Créer une carte centrée sur les coordonnées GPS indiquée
carte= folium.Map(location=[43.640512, 5.102072],zoom_start=16)
#créer la liste des coordonnées des points d'une ligne brisée
points = [
    (43.641398, 5.103031),
    (43.639544, 5.102502),
    (43.639866, 5.100058),
    (43.640690, 5.100465),
    (43.641398, 5.103031)]
#ajouter cette liste de points à la carte
folium.PolyLine(points, color="red", weight=2.5, opacity=0.8).add_to(carte)
#Sauvegarder cette carte dans un fichier HTML
carte.save('Carte4.html')

Après exécution et ouverture du fichier Carte4.html dans votre navigateur vous devriez voir une ligne rouge faisant le tour de Viala Lacoste via ses rues adjacentes.

Exercice 5

Modifier le programme afin d'obtenir une ligne qui fait le contour de Viala Lacoste par les limites de son terrain :

- N'oubliez pas de changer le nom du fichier de la carte avec comme nom : Carte5.html

- Il sera judicieux d'utiliser ce lien pour obtenir les différentes coordonnées GPS des différents points du polygone. Le principe est de déplacer la balise afin de relever les différentes coordonnées GPS des points formant le polygone.

Application - travail à rendre

Exercice 6

- Retrouvez les coordonnées GPS de votre domicile dans le même format que ci-dessus (en degré !)

- Construisez une carte centrée sur votre domicile

- Ajouter une balise d'information sur votre domicile

- Ajouter une ligne bleue (bleu se dit comment en anglais ?) entre Viala Lacoste et votre domicile - choisissez le zoom qui convient pour voir correctement la ligne bleue.

- Sauvegardez cette carte dans Carte5.html.

Dans une diapositive sur le drive, vous mettez côte à côte la code python et une capture d'écran de la carte avec la balise et le tracé.

Le nom du diaporama doit contenir votre nom et la classe.

Vous m'enverrez par mail ce diaporama !