Python dispose de plusieurs librairies pour générer de la géolocalisation depuis les données. Pour mémoire, je citerai :
Dans la plpart des cas, il faut d’abord obtenir une « clé » pour accéder aux fonctionnalités (payante ou pas).
Perso, j’apprécie la librairie
Folium qui permet de générer des cartes sous OpenStreetMap (qui est libre d’usage pour les particuliers, généralement).
La lecture du «
Starter guide » suffit pour démarrer son utilisation, c’est très intuitif.
Dans le cas présent, j’ai cherché à réaliser une carte depuis une table concernant la migration vers les LED des éclairages en Belgique (
Eclairage public – Tableaux récapitulatifs)
En rajoutant une colonne avec des codes couleurs à la table, on peut facilement représenter une condition sur un « marqueur » de la carte.
import pandas as pd
import folium
from folium.plugins import MarkerCluster
file = "Situation LED_04-2023.csv"
df = pd.read_csv(file,encoding='latin1')
# center to belgium
m = folium.Map(location=["50.38", "4.40"], zoom_start=10)
# draw the markers and assign popup and hover texts
# add the markers the the cluster layers so that they are automatically clustered
for i,row in df.iterrows():
colorCode = row['Code']
if colorCode != colorCode :
colorCode = "blue"
print('color :',colorCode)
location = (row["Lat"], row["Lon"])
folium.Marker(location=location,
icon=folium.Icon(color=colorCode),
popup = row['Ville'],
tooltip=row['Ville'])\
.add_to(m)
# dave to a file
m.save("Communes_Belgique.html")
Très simple et puissant pour afficher des éléments.
Via d’autres objets (Circle, Line) on peut aisément afficher des statistiques sur les cartes du monde…
A remarquer : le
colorCode != colorCode :
Son but est de traiter les valeurs Nan qui se glisserait dans la table pendant sa construction.
Plus simple que de faire appel a la fonction de la librairie Math