Module cartographie : créer une carte personnalisée avec Python
Nous allons utiliser les cartes proposées par Open Street Map et le langage Python afin de générer des cartes personnalisées. Plus exactement, nous allons utiliser une bibliothèque Python nommée Folium. Une bibliothèque Python permet de rajouter des fonctionnalités au langage de base. Folium va donc nous permettre de créer nos propres cartes à partir des cartes proposées par Open Street Map
À faire vous-même 1
Créez un dossier et nommez-le par exemple "cartoOSM"
À faire vous-même 2
Utilisez le logiciel spyder pour saisir le programme ci-dessous. Le fichier devra être enregistré dans le répertoire créé au "À faire vous-même 1" (le fichier pourra être nommé "carte_1.py").
import folium
c= folium.Map(location=[46.078025, 6.409053])
c.save('maCarte.html')
Une fois le code ci-dessus exécuté, rendez-vous dans le répertoire que vous avez créé au "À faire vous-même 1". Vous devriez trouver un fichier "maCarte.html". Double-cliquez sur ce fichier, cela devrait normalement ouvrir un navigateur web : la carte centrée sur la ville de Bonneville est à votre disposition. Notez bien que nous avons une véritable carte et pas une simple image (il est possible de zoomer ou de se déplacer).
Le programme du "À faire vous-même 2" est simple à comprendre :
- La première ligne : "import folium" permet d'importer la bibliothèque folium afin de pouvoir l'utiliser
- La deuxième ligne est le coeur de notre programme, nous définissons une variable "c" qui va contenir notre objet carte. "folium.Map(location=[46.078025, 6.409053])" génère cet objet carte, la carte sera centrée sur le point de latitude "46.078025" et de longitude "6.409053". Plus généralement nous avons "folium.Map(location=[latitude, longitude])". Il suffit donc de renseigner la bonne longitude et la bonne latitude pour que la carte soit centrée sur le point désiré.
- La dernière ligne permet de générer la page HTML qui va permettre d'afficher la carte.
À faire vous-même 3
Modifiez le programme du "À faire vous-même 2" pour qu'il génère une carte centrée sur la ville de votre choix (la longitude et la latitude d'une ville sont facilement trouvables sur le web).
Il est possible d'obtenir un niveau de zoom différent en ajoutant un paramètre "zoom_start"
À faire vous-même 4
Saisissez et testez le programme ci-dessous (si vous désirez garder la carte précédente, n'oubliez pas de modifier la dernière ligne en changeant le nom du fichier HTML généré)
import folium
c= folium.Map(location=[46.078025, 6.409053],zoom_start=15)
c.save('maCarte.html')
Plus la valeur de "zoom_start" sera grande et plus le zoom sera important.
Afin de vraiment personnaliser la carte, il est possible d'ajouter des marqueurs sur la carte. Un marqueur sera simplement défini par ses coordonnées (latitude et longitude).
À faire vous-même 5
Saisissez et testez le programme ci-dessous
import folium
c= folium.Map(location=[46.078025, 6.409053],zoom_start=20)
folium.Marker([46.078637266899, 6.4111924884134]).add_to(c)
c.save('maCarte.html')
Nous avons uniquement ajouté la ligne "folium.Marker...", il faut juste renseigner les coordonnées souhaitées (ici 46.078637266899 pour la latitude et 6.4111924884134 pour la longitude)
Il est possible d'ajouter plusieurs marqueurs sur une même carte, il suffira d'ajouter autant de ligne "folium.Marker([latitude, longitude]).add_to(c)" que de marqueurs désirés.
Il est possible d'associer une information à un marqueur en ajoutant le paramètre "popup"
À faire vous-même 6
Saisissez et testez le programme ci-dessous
import folium
c= folium.Map(location=[46.078025, 6.409053],zoom_start=20)
folium.Marker([46.078637266899, 6.4111924884134],popup="Lycée G Fichet").add_to(c)
c.save('maCarte.html')
Il suffit de cliquer sur le marqueur pour que l'information définie par le paramètre "popup" apparaisse à l'écran (ici en cliquant sur le marqueur nous verrons donc apparaitre "Lycée G Fichet").
À faire vous-même 7
En vous aidant de ce qui a été fait au "À faire vous-même 6", créez une carte et placez un marqueur à l'endroit de votre choix (n'oubliez pas de renseigner le paramètre "popup")