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

Dans votre dossier de travail, créez un dossier et nommez-le par exemple « cartoOSM »


À faire vous-même 2

Utilisez lediteur python Thonny 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 »).

Thonny est un éditeur de texte permettant d’écrire et d’exécuter du code en langage Python.

L’interface Thonny se présente comme ci-dessous. Vous devez successivement:

  • dans Outils importer au préalable la bibliothèque Python nommée Folium en développant Outils puis Gérer les paquets, rechercher folium puis cliquer sur folium cela va installer la bibliothèque folium.
  • sur la fenêtre de gauche saisir le code mentionné ci-dessous
  • Exécuter le code en cliquant sur exécuter le script courant

import folium
c= folium.Map(location=[32.9315727,10.4504130])
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 est centrée sur une ville étrangère. Trouver le nom en français. Notez bien que nous avons une véritable carte et pas une simple image (il est possible de zoomer ou de se déplacer).

Faites une copie d’écran de la carte et insérez la dans votre CR.


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=[32. 9315727, 10.4504130]) » génère cet objet carte, la carte sera centrée sur le point de latitude « 32.9315727 » et de longitude « 10.4504130 ». 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 d’Annonay (la longitude et la latitude d’une ville sont facilement trouvables sur le web).

Attention : Pensez bien à convertir les minutes de longitude et latitude en degrés !

Faites une copie d’écran de la carte et insérez la dans votre CR.


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=[45.24701, 4.67466],zoom_start=16)
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).

Faites une copie d’écran de la carte et insérez la dans votre CR.

À faire vous-même 5

Saisissez et testez le programme ci-dessous


import folium
c= folium.Map(location=[45.24701, 4.67466],zoom_start=20)
folium.Marker([45.24938, 4.67202]).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 45.24938 pour la latitude et 4.67202 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 » .

Faites une copie d’écran de la carte et insérez la dans votre CR.

À faire vous-même 6

Saisissez et testez le programme ci-dessous


import folium
c= folium.Map(location=[45.24701, 4.67466],zoom_start=15)
folium.Marker([45.24938, 4.67202],popup="Lycée Boissy d'Anglas").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 Boissy d’Anglas »).

Faites une copie d’écran de la carte et insérez la dans votre CR.