Planificateur FabMob
Planificateur de la FabMob
Objectifs
Le Planificateur de la FabMob est utilisé afin de mener des expérimentations sur les besoins des utilisateurs en matière de planification de trajets, ainsi que pour tester de nouvelles technologies en la matière. Il ne cherche en aucun cas à compétitionner les autres applications de planification de trajet.
Description technique
L'application se divise en trois parties: Le backend, le frontend, et le proxy. Elle se base sur le projet OpenTripPlanner
Le backend est tout simplement OpenTripPlanner.
Le frontend est une version modifiée de otp-react-redux.
Le proxy se place entre le frontend et le backend. Plutôt que d'appeler directement le backend, le frontend appelle le proxy. Celui-ci ajoute des fonctionnalités au backend. Pour le moment, il permet l'intégration de l'API de taxi de la ville de Montréal.
Installation
Le backend
L'installation de OpenTripPlanner est déjà bien documentée dans la doc de celui-ci. Nous détaillons ici les étapes afin de le configurer avec les données requises dans le contexte du Planificateur de la FabMob.
1. Préparation de OpenTripPlanner
1. Installation du jdk-17 de Java
sudo apt install openjdk-17-jre sudo update-alternatives --config java # Sélectionner la version 17
2. Téléchargement de la version 2.3.0 de OpenTripPlanner
wget https://github.com/opentripplanner/OpenTripPlanner/releases/download/v2.3.0/otp-2.3.0-shaded.jar
3. Création d'un dossier pour les données
mkdir otp
2. Préparation des données GTFS
1. Préparation des données GTFS de la STM
wget https://www.stm.info/sites/default/files/gtfs/gtfs_stm.zip mkdir otp/gtfs_stm unzip gtfs_stm.zip -d otp/gtfs_stm
2. Répéter ces étapes pour les autres opérateurs (EXO, par exemple)
Note importante: Les fichiers GTFS ont une date de péremption. Il faut les retélécharger périodiquement. Si le planificateur n’affiche plus les trajets, cela signifie que les GTFS sont expirés
3. Préparation des donnés OpenStreetMap
1. Télécharger les données OpenStreetMap pour le Québec sur http://download.geofabrik.de/north-america/canada/quebec.html
2. Réduction de la taille de la région pour inclure seulement l'île de Montréal
sudo apt install osmium-tool osmium extract --strategy complete_ways --bbox -74.7776,45.0009,-71.6165,46.3992 quebec-latest.osm.pbf -o montreal.osm.pbf mv montreal.osm.pbf otp
4. Préparation des données pour OpenTripPlanner
1. Construire les données pour OpenTripPlanner
java -Xmx8G -jar otp-2.3.0-shaded.jar --build --save otp java -Xmx8G -jar otp-2.3.0-shaded.jar --buildStreet otp java -Xmx8G -jar otp-2.3.0-shaded.jar --loadStreet --save otp
5. Démarrage de OpenTripPlanner
1. Lancer OpenTripPlanner
java -Xmx2G -jar otp-2.3.0-shaded.jar --load otp
Le proxy
Le proxy doit être téléchargé sur GitHub: https://github.com/FabmobQC/planificateur-otp-proxy
Les étapes sont déjà décrites dans le readme du projet. Il est nécessaire d'avoir une clé pour l'API de taxi la ville de Montréal. Si le backend est lancé en local, la valeur de OTP_ADDRESS sera par défaut http://localhost:8080.
Le frontend
1. Télécharger le projet
git clone https://github.com/FabmobQC/otp-react-redux.git cd otp-react-redux
2. Sélectionner la bonne branche
git checkout taxi # Il s'agit pour le moment de la seule branche valide
3. Modifier le fichier config-fabmob.yml afin de se connecter au proxy. Le fichier est déjà configuré correctement pour se connecter au proxy en local.
title: "Planificateur FabmobQC" homeTimezone: America/Toronto api: host: http://localhost path: /otp/routers/default port: 3000
4. Lancer le frontend indiquant le fichier de configuration. Attention, YAML_CONFIG doit indiquer le chemin absolu vers config-fabmob.yml.
env YAML_CONFIG=$(pwd)/config-fabmob.yml yarn build
Si les étapes ont été effectuées en local, l'application est maintenant disponible sur http://localhost:9966/
Organisations utilisatrices ou intéressées pour utiliser la ressource :
Contributeur(s) :
Tags :
Catégories : Logiciel
Thème :
Référent :
Défi auquel répond la ressource :
Personnes clés à solliciter :
Autre commun proche :
Richesse recherchée :
Compétences recherchées :
Communauté d'intérêt :
Type de licence :
Conditions Générales d’Utilisation (CGU) :
Niveau de développement :
Lien vers l’outil de gestion des actions :
Lien vers l’outil de partage de fichiers :
Besoins :
Prochaines étapes :
Documentation des expérimentations :
Autres informations
Liste des acteurs qui utilisent ou souhaitent utiliser ce commun : aucun pour le moment
Liste des CR d’atelier en lien avec ce commun :