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/
Organizations using or interested in using the resource:
Contributor(s):
Tags:
Categories: Logiciel
Theme:
Referent:
Challenge:
Key people to solicit:
Other related common:
Wealth sought:
Required skills:
Community of interest:
License:
Terms of Service (TOS):
Level of development:
Link to my actions board:
Link to my cloud, wiki, drive…:
Needs:
Next step:
Documentation of the experimentations:
Other informations
List of the actors using or willing of using this common: aucun pour le moment
List of the workshop reports related to this common:
Français
English
Italiano