Cartographie TP 4

Écrire votre nom

ici

Itinéraires

Chacun d'entre nous a déjà utilisé des applications qui donnent un itinéraire entre deux lieux:

Par exemple voici un itinéraire entre les lycées de Jean moulin (Draguignan) et du val d'Argens(le Muy)

itineraire


Un programme:

En Python la bibliothèque pyroutelib3 permet de déterminer des itinéraires à partir de coordonnées 'GPS'

Si elle n'est pas installée :

In [ ]:
 #pip install pyroutelib3

Le programme suivant stocke dans une liste une série de coordonnées de points qui réalise un itinéraire entre deux lieux :

In [ ]:
from pyroutelib3 import Router
from geopy.geocoders import ArcGIS

geolocator = ArcGIS()

location1 = geolocator.geocode("Le Muy")
location2 = geolocator.geocode("Draguignan")

lat1=location1.latitude
lon1=location1.longitude

lat2=location2.latitude
lon2=location2.longitude

print(lat1,lon1)
# création de l'itinéraire
router = Router("car")
depart = router.findNode(lat1,lon1)
print(depart)
arrivee = router.findNode(lat2, lon2)
print(arrivee)
status, route = router.doRoute(depart,arrivee)
if status == 'success':
    routeLatLons = list(map(router.nodeLatLon, route))

# on fait afficher la liste obtenue et sa longueur
print(routeLatLons)
print(len(routeLatLons))

Faisons afficher cet itinéraire sur une carte

Comme il y a 382 marqueurs, on utilisera une boucle qui ne fera afficher qu'un marqueur sur 10

Testez ce code :

In [ ]:
from pyroutelib3 import Router
import folium
from geopy.geocoders import ArcGIS

geolocator = ArcGIS()

location1 = geolocator.geocode("Le Muy")
location2 = geolocator.geocode("Draguignan")


lat1=location1.latitude
lon1=location1.longitude

lat2=location2.latitude
lon2=location2.longitude

router = Router("car")
depart = router.findNode(lat1, lon1)
arrivee = router.findNode(lat2,  lon2)
status, route = router.doRoute(depart, arrivee)
if status == 'success':
    routeLatLons = list(map(router.nodeLatLon, route))

    # création de la carte
c= folium.Map(location=[lat1, lon1],zoom_start=10)
for indice,coord in enumerate(routeLatLons):
    if indice%10==0:
        coord=list(coord)
        folium.Marker(coord).add_to(c)
        
# voici une méthode pour sauvegarder la carte obtenue
c.save('maCarte5.html')
# affichage de la carte
display(c)

Un itinéraire en vélo...

Observer le code et repérez la ligne où on peut modifier le moyen de transport par : cycle, foot, horse, tram ou train

À faire :

Écrire un programme qui affiche un itinéraire entre deux localité de votre choix en vélo, à pied ou à cheval..

In [ ]:
# Écrire le code ici

Calculer la distance entre deux lieux

Si on additionne des distances géodésiques (Voir TP 2) de lieux proches, on approxime assez bien la distance réelle

Dans le code précédent routeLatLons est une liste de coordonnées de points proches les uns des autres

Voici un code qui permet d'additionner les distances géodésiques de ces lieux en miles

In [4]:
from pyroutelib3 import Router
from geopy.geocoders import ArcGIS
from geopy.distance import geodesic
geolocator = ArcGIS()

location1 = geolocator.geocode("Le Muy")
location2 = geolocator.geocode("Draguignan")


lat1=location1.latitude
lon1=location1.longitude

lat2=location2.latitude
lon2=location2.longitude

router = Router("car")
depart = router.findNode(lat1, lon1)
arrivee = router.findNode(lat2,  lon2)
status, route = router.doRoute(depart, arrivee)
if status == 'success':
    routeLatLons = list(map(router.nodeLatLon, route))
    
# calcul de la distance
d=0

for i in range(0,len(routeLatLons)-1,1):
  d=d+geodesic(routeLatLons[i],routeLatLons[i+1]).miles

print(d, " miles")
8.843997795927313  miles

À faire :

Faites calculer la distance en km entre deux lieux de votre choix pour une ballade à pied ...

In [ ]:
# Écrire le code ici


Enregistrez ce travail sous le nom : cartographie_tp_1_votre_nom.ipynb et déposez le là où on vous le dira

Pour enregistrer:

  1. File
  2. Save notebook as
  3. Pour le récupérer cliquez sur le dossier à gauche en haut...
  4. cliquez droit sur le fichier et download

Autre méthode

Dans home sélectionnez le fichier et download