Repository navigation
Conception
Cette page décrit la structure interne de l'application TransNav, ainsi que ses principaux composants logiciels.
Elle est destinée à toute personne souhaitant comprendre l’architecture du projet, en vue de le modifier, l'étendre ou l'étudier.
📝 À compléter : présentation globale des différents modules et de leur rôle.
- Présentation des couches (UI, logique métier, accès aux données…)
- Schéma général du fonctionnement
- Interaction entre composants

Diagramme de cas d’utilisation des fonctionnalités principales de TransNav
📝 D’autres diagrammes peuvent être ajoutés : diagrammes de séquence, d’activités, etc.
- Les
InternalFootConnectionsont utilisées quand deux quais font partie de la même station. - Les
ExternalFootConnectionsont utilisées lors d’un changement de station (ex : Châtelet → Hôtel de Ville à pied).
- Une Platform (quai) est associée à une ligne, possède une position géographique et un emploi du temps. Ce sont les noeuds du graphe du réseau.
- Une Station est un regroupement de quais, et une surcouche pouvant aider à simplifier le modèle pour une représentation visuelle.
Cette classe a pour but de réduire la taille d'un réseau en ne sélectionnant qu'une partie d'un plus grand graphe selon des prédicats donnés. Son utilité relève surtout de l'optimisation, en réduisant l'effectif des données à passer en paramètre à un algorithme comme celui de Dijkstra. Par exemple, pour un trajet qui reste sur Paris intra-muros, il est probablement inutile de considérer les quais hors de la ville. Si certaines lignes sont bloquées pour une raison quelconque, l'on peut aussi les exclure avant de chercher un itinéraire.
L'on peut proposer un algorithme pour délimiter une zone géographique au sein de laquelle limiter la sélection des quais à considérer à l'application de Dijkstra ;
Etant donnés les coordonnées d'un quai de départ src et d'un quai de destination dst :
- Calculer les points
p1etp2tels quesrc p1 dst p2soit un carré- Trouver le centre du segment [
src dst] (on le nommeracntr) - Placer
p1etp2tels que le segment [p1 p2] est orthogonal à [src dst] et de distance égale (on peut passer par une rotation de pi/2 de centrecntrappliquée à [src dst])
- Trouver le centre du segment [
- Agrandir le carré calculé par un certain facteur (par exemple, un agrandissement de 25% en relation à
cntr) - Exporter ce carré en tant que prédicat déterminant si un quai est dans l'aire de ce carré
- Sélectionner un sous-réseau selon ce prédicat
- Faire tourner Dijkstra sur le sous-réseau sélectionné
🛠️ Cette page est en cours de rédaction. Les sections seront complétées au fur et à mesure de l’avancement du projet.