Faisons afficher un lieu.
Simulation :
Ouvrez EduPython et écrivez ce programme :
La bibliothèque 'folium' permet de faire afficher une carte (OpenStreetMap) avec un marqueur aux coordonnées données.
import folium
c= folium.Map(location=[-12.780701, 45.231619],zoom_start=20)
folium.Marker([-12.780701, 45.231619],popup="Où est-ce ?").add_to(c)
c.save('maCarte.html')
Enregistrez-le puis exécutez-le, dans le dossier où se trouve votre script, une page web est apparue "macarte.html" que vous pouvez voir avec votre navigateur.
Où est on rendu ?
Faites afficher d'autres lieux avec un marqueur.
Simulation : Ou bien celui-ci
Dans EduPython écrivez ce programme :
On utilise ici la bibliothèque webbrowser, qui ouvre le navigateur à l'adresse indiquée
import webbrowser
zoom='18'
lat=-12.780701
lon=45.231619
webbrowser.open('https://www.openstreetmap.org/note/new?lat='+str(lat)+'&lon='+str(lon)+'#map='+zoom+'/'+str(lat)+'/'+str(lon))
Essayez avec d'autres lieux
Simulation : Ou encore celui là :
On utilise ici la bibliothèque GeoPy, qui permet d'obtenir les latitude et longitude d'une ville (ou d'une adresse...).
Puis on affiche une carte OpenStreetMap dans le navigateur.
Écrivez ce programme dans EduPython
from geopy.geocoders import Nominatim
import webbrowser
zoom='18'
geolocator = Nominatim()
location = geolocator.geocode("Dzaoudzi")
print(location.address)
print(location.latitude, location.longitude)
lat=str(location.latitude)
lon=str(location.longitude)
webbrowser.open('https://www.openstreetmap.org/note/new?lat='+lat+'&lon='+lon+'#map='+zoom+'/'+lat+'/'+lon)
Faites des essais avec d'autres villes
Simulation : Distances géodésiques
Ce programme donne la distance géodésique entre deux villes en miles
from geopy.geocoders import Nominatim
from geopy.distance import geodesic
geolocator = Nominatim()
location1 = geolocator.geocode("Dzaoudzi")
location2 = geolocator.geocode("Draguignan")
point1=(location1.latitude,location1.longitude)
point2=(location2.latitude,location2.longitude)
print(geodesic(point1,point2).miles)
Transformez le résultat en km ( une recherche s'impose ...)
C'est quoi une distance géodésique ?
Faites des essais avec d'autres lieux
Simulation : En combinant ces différentes bibliothèques
On affiche ici dans un navigateur une carte marquée sur deux villes
from geopy.geocoders import Nominatim
import webbrowser
import folium
geolocator = Nominatim()
location1 = geolocator.geocode("Nice")
location2 = geolocator.geocode("Draguignan")
lat1=location1.latitude
lon1=location1.longitude
lat2=location2.latitude
lon2=location2.longitude
c= folium.Map(location=[lat1, lon1],zoom_start=10)
folium.Marker([lat1, lon1],popup="Nice").add_to(c)
folium.Marker([lat2, lon2],popup="Draguignan").add_to(c)
c.save('maCarte.html')
webbrowser.open('macarte.html')
Votre mission :
Vous organisez un voyage, et vous souhaitez faire afficher sur une carte les endroits que vous souhaitez visiter (avec un bref descriptif) ainsi que les distances (géodésiques) entres ces différents points.
Imaginez ce programme...