Skip to content

max-208/PolyCarte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolyCarte

Par: maxime DANIEL

Ce projet consiste en la réalisation d'une carte de la route simplifiée. Dans cette carte il existe des villes contenant des lieux. Ces lieux sont reliés par des routes. Ce programme permet de créer, d'afficher cette carte et calculer le chemin entre deux lieux.

mode itinéraire

En précisant dans les paramètres un fichier de données routes et un fichier de données villes, ainsi que les lieux de départs et d'arrivée, la carte affichera l'itinéraire entre les deux lieux. Il est possible de zoomer/dezoomer avec la molette de la souris, de plus en cliquant sur deux lieux, l'on peut choisir un nouvel itinéraire a afficher.

carte de la bretagne, itinéraire de nantes a brest

mode création

il est possible avec l'aide du mode edition de créer et modifier des cartes, en y ajoutant des lieux et routes

mode edition

Avec un clic gauche, une popup de création de lieux apparait, permettant de créer un nouveau lieu, choisir son nom type et sa ville

popup configuration de nouvelle ville

Avec un clic droit prolongé, il est possible de créer une route, composé de plusieurs segments dont les limites sont définies par des clics gauches (toujours en maintenant le clic droit) Une fois le clic droit relaché, une popup permettant de nommer la ville apparait.

création du chemin d'une nouvelle route popup configuration de nouvelle route

il est finalement possible de sauvegarder sa carte dans les fichiers indiqués en paramètre de la commande en cliquant sur le boutton "sauvegarder"

limites et améliorations possibles

Ce projet est loin d'etre complet de nombreuses améliorations auraient pu être réalisés.

  • menu de démarrage plus user-friendly: menu de démarrage permettant d'accéder au fonctionalités principales sans devoir ajouter de paramètres de commandes, selection des fichiers de cartographie via l'explorateur de fichier.
  • editeur de carte complet : a ce jour, l'editeur de carte permet d'ajouter des lieux et routes, mais ne permet pas de les modifier et/ou supprimer
  • meilleure gestion des fichiers de cartographie: malheureusement limité par les consignes de ce TP, j'aurai aprécié pouvoir formater différement les fichiers de cartographie, en utilisant l'interface serializable, ou bien en utilisant un format standanrd (json, csv...), rendant plus propre et moins prone a l'erreur le parser/la sauvegarde de ces derniers.

diagramme de classe et explications d'implementation

voici un diagrame de classe extremement simplifié (ignorant toute la partie interface graphique, qui rend rapidement le diagrame illisible inutilemnt) permettant de mieux comprendre l'organisation des classes fonctionelles.

diagramme de classe simplifie

A partir de l'objet carte, il est possible d'accéder a l'ensemble des routes, ainsi que l'ensemble des villes, qui eux memes contiennent l'ensemble des lieux. L'élément central est la classe abstraite lieu, duquel il est possible de naviguer vers tout les lieux voisins, ainsi que la ville parent. Ses sous-classes implémentent les différentes représentations graphiques. La classe route représente graphiquement une route, et si cette dernière est reliée a ses deux embouts à deux lieux elle participe a la recherche de chemin. La classe carte peut générer un objet parcours, qui représente un ensemble de routes empruntés d'un lieu a un autre a l'aide d'un DFS récursif.

prérequis

  • maven 3.6.3
  • java 17
  • junit 5.9.1

tests

pour executer la suite de tests, lancez mvn test

build

pour build et générer un jar, lancez mvn clean package

execution

pour executer, lancez le jar (qui sera généré dans le repertoire target) avec ses arguments, par exemple :

java -jar target/carte-1.0-SNAPSHOT.jar "data/test1/villes.txt" "data/test1/routes.txt" "Mairie" "Poitiers" "Mairie" "Le Mans"

pour le mode itinéraire, ou

java -jar target/carte-1.0-SNAPSHOT.jar "data/test1/villes.txt" "data/test1/routes.txt"

pour le mode création

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages