{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![En tête general](img/En_tete_general.png)\n", "\n", "\n", "*(C) Copyright Franck CHEVRIER 2019-2021 http://www.python-lycee.com/*\n", "\n", " Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Cartographie et itinéraires (corrigé)\n", "\n", "
\n", " Note :
Il est possible que les droits paramétrés ne permettent pas au Notebook d'afficher directement les cartes.
Dans ce cas, pour obtenir les affichages, il y a deux solutions :
\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les modules Python folium et pyroutelib3 permettent de générer respectivement une carte et un itinéraire entre deux points dont les coordonnées GPS sont connues.\n", "\n", "__1. La fonction Python itineraire donnée ci-dessous permet de générer une carte avec un itinéraire entre deux points dont on connaît les coordonnées GPS.
Lire les commentaires de la fonction et exécuter la cellule pour mettre cette fonction en mémoire.__" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import folium # import du module pour générer une carte\n", "from pyroutelib3 import Router # import des fonctionnalités pour générer un itinéraire\n", "\n", "def itineraire(Depart,Arrivee,mode):\n", " \"\"\"\n", " génère une carte représentant un itinéraire avec :\n", " Depart : coordonnées GPS du point de départ\n", " Arrivee : coordonnées GPS du point d'arrivée\n", " mode : mode de transport (\"car\",\"cycle\",\"foot\",\"horse\",\"tram\",\"train\")\n", " \"\"\"\n", " \n", " # Calcul des coordonnées du point central de la carte\n", " # (au milieu du segment joignant Depart et Arrivee)\n", " \n", " Vue = ((Depart[0]+Arrivee[0])/2,(Depart[1]+Arrivee[1])/2)\n", " \n", " # Réglage du zoom initial\n", " zoom = 15\n", " \n", " # Génération de la carte\n", " Carte = folium.Map(Vue, zoom_start=zoom)\n", " \n", " # Placement des marqueurs des points de Départ et d'Arrivée\n", " folium.Marker(Depart,popup=\"Départ\").add_to(Carte)\n", " folium.Marker(Arrivee,popup=\"Arrivée\").add_to(Carte)\n", " \n", " try:\n", " # Génération de l'itinéraire avec le mode de transport choisi\n", " router = Router(mode)\n", " D = router.findNode(*Depart)\n", " A = router.findNode(*Arrivee)\n", " routeLatLons=[Depart,Arrivee]\n", " status, route = router.doRoute(D, A)\n", " if status == 'success': routeLatLons = list(map(router.nodeLatLon, route))\n", " \n", " # Tracé de l'itinéraire sur la carte\n", " folium.PolyLine(routeLatLons, color=\"magenta\", weight=2.5, opacity=1).add_to(Carte)\n", " \n", " except:\n", " # Si l'itinéraire ne peut pas être généré: affichage d'un message d'erreur\n", " print(\"La carte a été créée mais impossible de générer l'itinéraire demandé\")\n", "\n", " # La fonction renvoie la carte créée \n", " return Carte\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Exécuter la cellule ci-dessous, puis répondre aux questions concernant cet itinéraire :\n", "\n", "\n", "
\n", "L'itinéraire est défini dans la ville de Strasbourg, il indique comment se rendre en voiture de la place de la gare (GPS 48.58486732288321, 7.735525889175579) au Quai de Turckheim (GPS 48.58083428820921, 7.738795275340017) (dans le très joli quartier de la petite France)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Exécuter cette cellule\n", "itineraire( (48.58486732288321, 7.735525889175579) , (48.58083428820921, 7.738795275340017) , \"car\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "\n", "3. On donne les coordonnées GPS suivantes, dans la ville de Colmar :
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Lieu
Latitude
Longitude
Mairie de Colmar

48.079584845875885

7.357623229009501
Stadium de Colmar

48.08822231782525

7.37523897770312
Château d'eau

48.07103371359589

7.353385338720863
\n", "
\n", "Effectuer les saisies Python permettant de générer les itinéraires suivant :
\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Effectuer la saisie pour l'itinéraire en voiture de la mairie de Colmar au Château d'eau\n", "itineraire( (48.079584845875885, 7.357623229009501) , (48.07103371359589, 7.353385338720863) , \"car\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Effectuer la saisie pour l'itinéraire à pied du château d'eau au stadium de Colmar\n", "itineraire( (48.07103371359589, 7.353385338720863) , (48.08822231782525, 7.37523897770312) , \"foot\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Effectuer la saisie pour l'itinéraire à pied de la mairie de Colmar au stadium de Colmar\n", "itineraire( (48.079584845875885, 7.357623229009501) , (48.08822231782525, 7.37523897770312) , \"foot\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__4. Utiliser le site coordonnees-gps.fr pour obtenir les coordonnées GPS de votre domicile et de votre lycée.
Effectuer la saisie nécessaire pour déterminer un itinéraire à pied de votre domicile au lycée.__\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Effectuer la saisie pour obtenir un itinéraire à pied de votre domicile à votre lycée\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*(C) Copyright Franck CHEVRIER 2019-2021 http://www.python-lycee.com/*\n" ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 2 }