Vous êtes sur la page 1sur 65

Ecole Hassania des Travaux Publics Sciences dinformation gographiques

Ralisation et mise en place dune application de GESTION DE FLOTTE

Rapport de Travail de Fin dEtudes


Stage effectu du 01 Fvrier au 01 Juin 2007 Tl Ressource Contrle (TRC)

Effectu par : Jamal HANIN Stage effectu sous lencadrement de M. Karim CHRAIBI: Directeur Gnral (TRC) M. ElHassan ELBRIRCHI (EHTP)

Gestion de flotte

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

REMERCIEMENTS
Il mest agrable dexprimer ma reconnaissance auprs de toutes les personnes, dont lintervention au cours de ce projet, a favoris son aboutissement.

Ainsi, je tiens remercier mes encadrants M. Karim CHARIBI et M ELHassan ElBRIRCHI pour leurs directives prcieuses et leurs conseils pertinents qui mont t dun appui considrable dans ma dmarche.

Je ne me permets pas doublier de remercier mes amis M. Yousri BenABDELLAH et Jamal BAAMRANI pour leur amabilit et leurs aides durant toute la priode du Projet de Fin dEtudes.

Je noublierai point de macquitter de vifs remerciements envers tous nos professeurs et corps administratif de lEHTP pour les agrables annes que nous avons vcues sous leur bienveillance.

Que tous ceux qui mont aid, de prs ou de loin, trouvent ici lexpression de mes sentiments les meilleurs. Jamal

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

RESUME
Ce rapport est le fruit du travail ralis dans le cadre du projet de fin dtudes au sein de la socit TRC. Ce projet avait pour objectif de concevoir et mettre en oeuvre une application de gestion de flotte. Cest un projet dune trs grande envergure, il a pour objectif la gnralisation de lemploi du SIG et son intgration dans les mthodologies habituelles de travail. La golocalisation des vhicules fait appel lutilisation des trames GPS qui sont envoyes priodiquement via le rseau GPRS au serveur central, qui son tour fait appel aux services du serveur web cartographique GoogleMaps pour laffichage. La ralisation du projet a fait appel lutilisation de nouvelles technologies du Web de la plate forme J2EE. Le systme devrait tourner sur le serveur dapplication Apache Tomcat. Il utilisera le systme de gestion de base de donnes MySql.

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

LISTE DES FIGURES


Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 Figure 17 Figure 18 Figure 19 Figure 20 Figure 21 Figure 22 Figure 23 Figure 24 Figure 25 Figure 26 Figure 27 Figure 28 Figure 29 Figure 30 Figure 31 Figure 32 Figure 33 Figure 34 Rception de donnes GPS Fonctionnalits du systme Vue de la fonctionnalit planification Architecture du systme Cas dutilisation du systme basic Cas dutilisation du systme professionnel Scnario du cas dutilisation planifier commandes Scnario du cas dutilisation planifier Missions terrain Diagramme de classes : Gestion des utilisateurs Diagramme de classes : Gestion des POI Diagramme de classes : Planification des livraisons Diagramme de classes : Golocalisation Modlisation du rseau routier Intersections entre routes Routes unique sens Vue de lapplication GoogleMaps Relation entre objets sans Spring Relation entre objets avec Spring Architecture de lapplication avec Spring Fentre dAuthentification La fentre principal administrateur Fentre ajouter entreprise Espace suivi vhicules Liste de tous les vhicules de lentreprise Liste de vhicules de lentreprise qui sont quips par GPS Position du vhicule en temps rel Liste des vhicules dont on peut avoir les donnes historiques Parcours dun vhicule pendant une dure Dcoupage Arcs/Noeuds Sens permis et sens interdit Dcoupage suivant les nuds Dcoupage suivant les arcs Calcul du plus court chemin (fentre des coordonnes) Calcul du plus court chemin (Rsultat) 10 14 15 19 22 23 24 25 26 26 27 27 28 30 30 34 38 39 39 42 43 43 44 44 45 45 46 46 48 48 49 50 50 51

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

Glossaire
Points Of Interest (POI) : Ils sont des points fixes qui ont un intrt pour lentreprise, il peut tre un client, un dpt, un fournisseuretc. Cest chaque point qui pourrait tre utile pour lentreprise. Point darrt (PA): Cest un point darrt dun vhicule pendant un parcours donn, chaque vhicule qui sest arrt pendant une dure donne dans un point, ce dernier est considr comme un point darrt. Trajet : Cest litinraire suivi par un vhicule pour aller dun point un autre entre deux temps prcis. Parcours : Cest lensemble des trajets effectus pendant une mission donne. Vhicule : Tout quipement mobile: voitures, camionnettes, camions, autocars, bus, engins de chantiers, remorques, conteneurs, bateaux, etc. Dispatcher Le dispatcher est un organisateur qui officie dans une entreprise de transport routier. Il organise, supervise et contrle lacheminement en amont (ramassage) et la livraison des marchandises dans la perspective de la meilleure rentabilit possible. Il occupe videmment une fonction dencadrement dquipe. Le dispatcher dune entreprise de transport tudie lordre de lexpditeur qui a fabriqu la marchandise transporter : destinations, dlais de livraison, distances, conditions de circulation, tonnages, valeur du fret, scurit, cots, etc. Laller comme le retour doivent tre pris en considration. En tant que planificateur il distribue ensuite le travail de ramassage/acheminement aux chauffeurs. Il supervise ou tablit lui-mme les documents lis lopration : numro de la commande, coordonnes du chauffeur, itinraire, dsignation du matriel de transport Il contrle le suivi de lopration. Grce aux moyens de communication (GPS et GPRS), il peut suivre sur son ordinateur la position du fret au cours du trajet. GPS : Le GPS est un systme de positionnement par satellites, capable de donner n' importe o sur le globe une position entre quelques mtres et quelques centimtres, de jour comme de nuit. La partie visible est un petit botier lectronique qui, quel que soit lheure et le lieu, indique: lendroit exact, laltitude, la vitesse, lheure, et ce avec rapidit et prcision. L'inconvnient de ce systme est quil est incapable de donner des mesures prcises dans les zones fortement urbanises dont le signal est difficilement captable. GPRS : Le GPRS est une extension du protocole GSM : il ajoute par rapport ce dernier la transmission par paquets. Cette mthode est plus adapte la transmission des donnes. En effet, les ressources ne sont alloues que lorsque des donnes sont changes, contrairement au mode circuit en GSM o un circuit est tabli et les ressources associes pour toute la dure de la communication.

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

Table des matires


Remerciement..i Rsum..........ii Liste des figures.....iii Glossaire..........iv Introduction gnrale...........8 Chapitre1 : Prsentation gnrale du projet. .............9
I. Prsentation du projet . .........10 II. Prsentation de lorganisme daccueil ...................11

Chapitre 2 : Contexte gnral du projet ....................................12


I. Objectif.........13 IV. Fonctionnalits du systme........14 1) La golocalisation de vhicules .....15 2) La gestion des POI .....15 3) La planification des livraisons........15 V. Etude de lexistant ........16

Chapitre 3 : Analyse du systme ..................................17


I. Modlisation et analyse du rseau routier.........18 II. Architecture du systme ........18 III. Le systme dinformation gographique......19

Chapitre 4 : Conception & Modlisation ...21


Cas dutilisation...........22 1) Systme basic ...22 2) Systme professionnel ..23 II. Scnarios des cas dutilisations .....24 1) Planifier commandes.........24 2) Planifier missions terrain...25 III. Diagramme de classes.........26 1) La gestion des utilisateurs ......26 2) La gestion des POI .....26 3) La planification ......27 3) La golocalisation ......27 3) Le rseau routier ....28 I.

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

Chapitre 5 : Choix Technologiques ....32


I. II. GoogleMaps ....33 J2EE ....35 1) MVC .........35 2) JSF ............36 3) Hibernate ...........37 4) Spring .....37

Chapitre 6 : Ralisation & mise en place41


I. II. III. IV. Administration de lapplication............42 Suivi en temps rel ........44 Suivi en temps diffr ........46 Routage........47

Conclusion Gnrale .......52 Bibliographie et URLographie .54 Annexe A : Etude de lexistant .....56 Annexe B : Exemple du code .....61

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

Introduction
La socit TRC (Tl Ressource Contrle) a pour mission la mise en place des systmes de suivi des vhicules pour les acteurs du transport. Elle a initi pour cela un projet de gestion de flotte. Ce projet a pour objectif doptimiser les trajets travers la mise en place dun systme dinformation gographique qui remplacera les mthodes traditionnelles utilises pour effectuer les livraisons. Cette application se base sur les technologies GPS, la tlcommunication GPRS, et le service web cartographique GoogleMaps. Mon travail de fin dtudes au sein de la socit TRC visera concevoir et raliser une application qui permet aux dispatchers de mieux grer leurs flottes et de suivre en temps rel les vhicules sur la carte. Enfin, ce document est compos de six chapitres. Le premier prsente le projet dune faon gnrale. Le deuxime chapitre est consacr au contexte gnral du projet. Le troisime chapitre est rserv lanalyse du systme. Le quatrime chapitre est rserv la conception et la modlisation de la solution. Les deux derniers chapitres, respectivement, justifient les choix technologiques et la ralisation du projet.

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

Chapitre

Prsentation gnrale du projet

Ce premier chapitre donne une prsentation gnrale du projet. On commence par prsenter lorganisme daccueil ensuite on introduit dune manire globale le projet.

Travail de Fin dEtudes / EHTP 2007

I. Prsentation du projet
Au sein dune socit, qui a pour mission doffrir aux gestionnaires de flottes de vhicules un systme de golocalisation par GPS sur un fond cartographique web. Javais loccasion de joindre lquipe du projet qui ntait constitue que de deux personnes qui ont dj initi une tude approfondie du systme, ainsi que la ralisation dune maquette du projet. Pour sintgrer au sein de lquipe, mon encadrant ma propos le choix entre trois sous projets du projet global : Projet 1 : La mise en place dune passerelle entre les donnes GPS et le serveur central. Ce projet se devise en deux modules : Module 1 : La configuration de lappareil denvoie de donnes GPS au serveur central qui va tre embarqu au sein du vhicule golocaliser. Module 2 : Prparer une interface qui va tre capable dintercepter les donnes GPS, de les traiter et les enregistrer dans le serveur.

Figure : Rception des donnes GPS

Chapitre 2 : Contexte gnral du projet

Projet 2 : Ce projet ressemble au premier, il consiste configurer un appareil denvoie de donnes GPS au serveur. Sauf que cet appareil ncessite le dveloppement dune application sous J2ME (Java 2 Mobile Edition) pour pouvoir le configurer. Projet 3 : Raliser en se basant sur les donnes GPS traites dans le serveur central et le serveur web cartographique GoogleMaps une application de gestion de flotte. Ce projet se divise en trois grands modules : Module 1 : Golocalisation des vhicules en temps rel. Module 2 : Golocalisation des vhicules en temps diffr. Module 3 : Gestion des points dintrt. A cela sajoute un autre module qui est la planification des oprations de livraisons. Finalement, jai choisi le troisime projet, parce quil est le plus proche du domaine SIG, aussi parce que le sujet tait intressant, puisquil offre lopportunit de savoir de prs les techniques de golocalisation.

II. Organisme daccueil


TRC (Tl Ressource Contrle) est une entreprise casablancaise cre par M. Karim CHRAIBI en Aot 2000. Lentreprise a pour mission principale la mise en place des systmes de suivi de vhicules par GPS pour les acteurs du transport. Nempche aussi que la socit est spcialise aussi dans la collecte des donnes gographiques travers la coopration quelle avait avec la socit Global Navigation (GNAV) (Cre par M. Faissal CHRAIBI. Cette coopration tait fructueuse, puisque lentreprise dispose aujourdhui dune norme base de donnes gographique qui couvre peu prs tout le territoire marocain. Dans cette coopration, GNAV tait spcialise dans tous ce qui est logistique, c'est--dire la gestion des enquteurs dans le terrain, tandis que TRC tait spcialise dans tous ce qui est nouvelles technologies, c'est--dire quelle gre les technologies de collecte de donnes (PDA, Serveur de donnes, GPSetc.).

Travail de Fin dEtudes / EHTP 2007

11

Chapitre 2 : Contexte gnral du projet

Chapitre

Contexte gnral du projet

Dans ce chapitre nous allons voir le contexte gnral du projet, dont nous dtaillons la problmatique gnrale, et les fonctionnalits du systme. Nous terminons en fin par une tude dun systme existant.

Travail de Fin dEtudes / EHTP 2007

12

I. Objectif
1. But du projet La ralisation et la mise en place d'une solution de gestion de flotte de vhicules; en se basant sur les nouvelles technologies de positionnement par GPS et de communication GPRS et offrant aux entreprises un suivi de vhicules en temps rel et diffr. 2. Pourquoi Une analyse de situation des oprations de livraisons des produits dune entreprise X, dont les mthodes traditionnelles sont fortement utilises, nous a montr qu'il y a une anarchie dans la gestion des oprations de dispatching des vhicules . En effet, les dispatchers qui travaillent avec une liste des adresses en labsence de toute vision gographique des points de livraisons, dterminent les zones de travail en se basant uniquement sur leurs expriences. De leur part, les livreurs, et dans l'absence d'une dfinition prcise de la mission demande se basent sur leurs connaissances gographiques pour effectuer les oprations de livraisons. La livraison finalement s'effectue avec un cot lev. Les dispatchers sont donc incapables de dfinir les parcours suivre pour chaque vhicule et du coup rduire les kilomtres inutiles. 3. Comment

Tenant compte de la prsente problmatique, nous avons envisag de raliser un outil d'aide la dcision afin d'optimiser les ressources et amliorer la qualit des services offerts par l'entreprise pour ses clients. La solution se divise en trois grandes parties: La gestion du parc de vhicules via une mthode de golocalisation donnant n'importe quel moment la possibilit de visualiser la position du vhicule sur un fond cartographique. La gestion des POI (points d'intrt) qui permettra aux superviseurs de saisir en premier degr les points de livraisons. Une saisie qui tiendra compte aussi bien de la position gographique sur la carte, que des donnes attributaires lies ce point. La planification et le contrle des missions terrain, o le dispatcher peut planifier pour chaque vhicule un parcours de plusieurs trajets suivre pour une mission donne, il donne ensuite une estimation de la dure de chaque trajet. Afin de mettre en place un tel systme on doit: Premirement : Construire la grande base de donnes des points d'intrts du client La saisie se passe d'abord par le positionnement sur la carte, les points d'intrt, ensuite la saisie des donnes attributaires de ces points (Nom, Adresse, Tlphone etc.), il faut dire qu'une grande problmatique se pose ici, aussi bien pour le gestionnaire de la base de donnes que pour le client en tant qu'utilisateur final de lapplication, surtout si on sait que la base de donnes ne concerne pas un seul client, mais, au contraire, elle concerne plusieurs clients. Pour cela on doit prvoir auparavant une base de donnes dynamique qui rpond aux besoins spcifiques de chaque client. En outre, le client peut avoir un souci par rapport aux services proposs, puisquil sera amen mettre sa base de donnes dans le serveur central de lentreprise, qui est le centre

Gestion de flotte

d'installation de tous les clients, ce qui n'est pas toujours vident, du point de vue fiabilit et confidentialit des donnes. Deuximement : Concevoir lapplication de golocalisation. En se basant sur les nouvelles technologies de golocalisation par GPS et de communication par GPRS, on donne un outil qui permet de visualiser la position de n'importe quel vhicule nimporte quel moment sur la carte. Voici quelques fonctionnalits de lapplication de golocalisation:

Savoir la position du vhicule n'importe quel moment ainsi que son conducteur. Savoir les vhicules les plus proches d'une adresse donne. Savoir le parcours exact de tel vhicule durant telle journe. Savoir si les vhicules dpassent souvent les limitations de vitesses, quand et o ? Savoir l'heure exacte dont les conducteurs commencent et finissent leur travail Dtecter toute utilisation des vhicules en dehors du temps de travail. Savoir le temps pass par les conducteurs aux arrts prvus et si ils font des arrts imprvus. etc.

II. Fonctionnalits du systme


L'application doit contenir les trois sous applications suivantes : golocalisation, Gestion des POI et Planification

Golocalisation

Palnification

Gestion des POI

Figure1 : Fonctionnalits du systme

Travail de Fin dEtudes / EHTP 2007

14

Gestion de flotte

1. La golocalisation des vhicules Elle permet le suivi en temps rel et diffr de l'ensemble du parc de vhicules de l'entreprise. Un suivi qui se traduit par laffichage des positions actuelles et des trajets historiques des vhicules sur un fond cartographique. La position du vhicule doit tre dans la mesure du possible une information significative en se basant sur le principe de gocodage inverse qui consiste traduire les donnes GPS (Longitude, Latitude) vers une adresse comprhensible par lHomme. Cette procdure de gocodage inverse se limitera dans un premier temps traduire la position en se basant sur la base de donnes gographiques disponible. 2. La gestion des points d'intrt (POI) Elle permet une saisie simple des points d'intrt de l'entreprise. Les POI sont de type client, fournisseur, dpt,etc. On s'intresse pour chaque point savoir sa position gographique ainsi qu'un ensemble de donnes attributaires : Le nom, l'adresse, le tlphone,etc. L'application doit offrir une simplicit d'utilisation concernant la manipulation des POI par des utilisateurs finaux qui ne sont pas senss connatre les SIG. 3. La planification Elle permet la planification des missions de terrain. Elle consiste affecter pour chaque vhicule un parcours suivre tout en estimant le temps de chaque trajet. La construction des trajets se fait par la dfinition des points de dpart et d'arrive. La planification concerne essentiellement les oprations de livraisons. Pour chaque mission on prcise la description de la livraison, la date, les trajets et lestimation des dures.

Liste des trajets

Liste des commandes livrer

Figure2 : Vue de la fonctionnalit planification

Travail de Fin dEtudes / EHTP 2007

15

Gestion de flotte

La planification passe par deux tapes principales, On saisie dabord les oprations de livraisons qui doivent seffectuer une date prcise. Cest le rle du manager qui doit prparer auparavant la liste des commandes livrer. Dans un temps ultrieur, le dispatcher doit partir de ces commandes saisies, planifier les missions de terrain, en spcifiant les vhicules, les conducteurs, les trajets et les temps estims. Le rle de dispatcher est de planifier travers cette fentre les oprations de livraisons. Il dfinit les trajets dans le but davoir le meilleur parcours possible. Le systme ensuite doit interagir pour calculer le plus court chemin, ainsi que la dure de chaque trajet. Lutilisation des mthodes destimation est lie essentiellement la disponibilit de la base de donnes routire, ainsi quaux donnes du trafic collectes directement partir du terrain (Voir chapitre 4)

III. Etude de lexistant


Apres avoir pris en considration la prsente problmatique, nous nous sommes penchs vers ltude de lexistant, celui-ci tait quasi inexistant sauf une application dveloppe sous PHP tait prsente. Base sur l'API Google Maps, elle a pour objectif d'assurer le suivi du parc de vhicules d'une entreprise donne. Les modules traits dans cette application sont : La gestion des points dintrt. La golocalisation en temps diffr. La plus grande lacune de cette application est celle lie aux choix technologiques. En effet, lapplication est dveloppe dune manire ne permettant pas sa rutilisation par dautres dveloppeurs. (Voir chapitre 5, partie MVC). En bref, cette application tait donc non rutilisable dans ce projet. Des fentres (print screen) sont prsentes dans lannexe.

Travail de Fin dEtudes / EHTP 2007

16

Gestion de flotte

Chapitre

Analyse du systme

Dans ce chapitre nous dcrivons un systme offrant une solution au problme de gestion de flotte qui est base sur lintgration des technologies : systme dinformation gographique (SIG), global positioning system (GPS) et General Packet Radio Service (GPRS). Une problmatique dune grande importance dans ce systme est de pouvoir faire le routage dun vhicule entre deux points donns.

Travail de Fin dEtudes / EHTP 2007

17

Gestion de flotte

I. Modlisation et analyse du rseau routier


Les rseaux routiers sont modliss sous forme de graphes (Arcs, Nuds). Les arcs correspondent aux segments des routes, tandis que les nuds correspondent aux intersections des segments routiers entre eux, ainsi quaux sommets des arcs. Pour chaque arc on affecte un poids (le cot) qui correspond une impdance pour le traverser. Dans la plupart des cas, limpdance dun arc est une fonction de la longueur du segment qui y correspond et du volume de trafic. Les SIG offrent un grand nombre doutils danalyse des rseaux routiers. En gnral ils offrent des outils de recherche de plus court chemin ou en gnral la route avec le cot le plus rduit. La fonction dallocation est le processus qui permet de dterminer la localisation (Location) optimale dun certain nombre dquipements selon des critres particuliers et dassigner en mme temps des populations ces quipements (Restauration, Banque, Usines, Dpts de stockage, ). La matrice de distance peut tre utilise pour calculer les distances entre un ensemble des origines et destinations. En plus, les adresses des routes peuvent tre converties en des coordonnes sur la carte (Gocodage des adresses). Cette capacit des SIG analyser les rseaux routiers leur a permis dtre utiliss comme un outil daide la dcision pour le routage des vhicules.

II. Architecture du systme


Jusqu' maintenant, les dispatchers utilisent les papiers et parfois les cartes pour effectuer le routage des vhicules. Toutefois, ces deux fonctions, qui constituent un moyen daide la dcision ncessitent lintgration dun systme avec des outils danalyse et de visualisation gographique, et une tlcommunication rseau. Le systme intgr va automatiser les oprations faites manuellement par les dispatchers. Larchitecture du systme est schmatise dans la Fig.3. Le systme, comme nous lavons cit est bas sur lintgration des technologies SIG, GPS et GPRS. Les technologies GPS et GPRS seront utilises pour transmettre les postions exactes des vhicules au serveur principal SIG. Chaque vhicule est quip par un rcepteur GPS pour dterminer sa position exacte en se basant sur le signal transmis par satellites. Il va y avoir en plus un appareil pour transmettre sa position au serveur central. Cela va tre assur par le rseau GPRS. Le serveur central son tour fait appel aux services du serveur web cartographique GoogleMaps pour laffichage des donnes. La plupart des logiciels SIG, aujourdhui offrent une riche liste des outils et extensions qui permettent lincorporation des donnes GPS et offre un suivi temps rel des vhicules. Larchitecture du systme suit une approche centralise, ce qui permet un control centralis de la flotte.

Travail de Fin dEtudes / EHTP 2007

18

Gestion de flotte

Serveurs internes

Client Terrain

Serveurs externes

Figure 3: Architecture du systme

III. Le systme dinformation gographique


Le systme va rendre utilisable une varit des donnes qui sont stockes dans la base de donnes spatiale et dans la base de donnes relationnelles. Les donnes spatiales couvrent le rseau routier, les locations des points d'intrts et les postions des vhicules. Dans la base de donnes spatiales, une intersection reprsente un change de flux entre les routes qui s'intersectent, cela signifie que les tournes interdites ne sont pas considres comme tant des intersections. Les routes sont codifies en tant que polylignes, pour chaque route on dfinit les zones de limitation de vitesse comme tant des vnements linaires sur la route. Ds que la majorit des routes ont seulement deux voies, seules les routes qui ont plus de deux voies sont recodifies. Finalement les adresses des routes sont stockes afin de faciliter les oprations de gocodage. Les donnes concernant le trafic routier seront trs utilises pour le routage des vhicules. Ces donnes doivent tre mises jour priodiquement pour assurer un routage fiable. Dans certains pays europens, ils ont install des appareils 'Sensor' sur les routes spcialement pour surveiller le trafic et envoyer les donnes priodiquement au serveur. Les donnes du trafic sont enregistres dans la base de donnes relationnelles. Les donnes concernant les entreprises, les vhicules sont aussi enregistres dans la base de donnes relationnelles. Voici quelques fonctions primaires assures par le systme : 1. Affichage sur la carte les postions des vhicules et les locations des POI. A travers le systme, on peut effectuer des requtes utiles pour laffichage des informations dun vhicule ou dun POI choisi partir de la carte, les vhicules arrts en un dpt, les vhicules qui se trouvent dans une zone donne, etc. On utilise diffrents symboles 19

Travail de Fin dEtudes / EHTP 2007

Gestion de flotte

pour afficher un vhicule sur la carte. En dpendance de son statut : un vhicule peut tre en tat stand by, en train de livrer une commande ou retournant au dpt. 2. Trouver un point de livraison. Bas sur ladresse donne par le manager, le systme peut utiliser la fonction de gocodage dadresses pour trouver les cordonnes du client sur la carte. Toutefois, ladresse du client nest pas toujours utile, cest le cas par exemple, lorsque le client est localis dans une rgion qui nest pas couverte par la base de donnes spatiales. 3. Choisir le vhicule appropri pour une opration de livraison. Suivant la position du vhicule, le type et la location du client et les conditions du trafic, le SIG trouve le vhicule appropri pour accomplir la mission. Le choix du vhicule dpend aussi de la nature des produits livrer. Routage du vhicule au dpt et du dpt au client. Le systme trouve le chemin optimal qui correspond aux exigences du manager. La distance plus les donnes du trafic sont prises en considration. Le dpt va tre dtermin suivant la nature de la commande. Telles informations vont tre dduites de la communication entre le dispatcher et le manager travers le systme.

Travail de Fin dEtudes / EHTP 2007

20

Gestion de flotte

Chapitre

Conception & Modlisation

Dans ce chapitre nous allons dtailler le systme du point de vue analyse et conception. On a utilis UML qui est un langage orient objet parfaitement adquat pour ce projet. La conception stend sur deux points principaux : La conception du systme de gestion et dadministration de lapplication La conception du systme SIG dont nous dtaillons principalement la gestion du rseau routier. La conception du systme de golocalisation.

Travail de Fin dEtudes / EHTP 2007

21

Gestion de flotte

I. Cas dutilisation
Le systme est divis en deux types : Systme basic avec une seule fonctionnalit et systme professionnel avec fonctionnalits avances. Le premier systme a pour objectif de mettre la disposition de tout le monde travers le web un petit outil daide la dcision concernant la gestion des points dintrt (POI). Cependant le deuxime systme est plus professionnel et qui ne concerne que les entreprises et qui donne plus de fonctionnalits oprationnelles ddies la gestion de flotte de vhicules. 1. Systme basic Cest un systme basic qui permet la gestion des POI pour nimporte quel utilisateur inscrit.

Figure4 : Cas dutilisation du systme basic

Le cas dutilisation Grer POI donne la possibilit dajouter, de modifier ou de supprimer un POI, il inclut le cas dutilisation SAuthentifier , impliquant que lutilisateur doit sauthentifier avant de pouvoir grer les POI. La cas dutilisation Sinscrire enrichie celui de SAuthentifier indiquant que lutilisateur peut sinscrire dans le cas o il na pas encore un compte.

Travail de Fin dEtudes / EHTP 2007

22

Gestion de flotte

2. Systme professionnel Cest un systme plus avanc qui ne concerne que les entreprises dont linscription est effectue uniquement par ladministrateur du systme. Il contient les trois modules cits avant : Golocalisation, Gestion des POI et Planification, avec un accs complet aux diffrentes fonctionnalits. Il donne pour chaque entreprise deux niveaux dadministration : le manager qui a la responsabilit de grer les POI de lentreprise ainsi que la planification des commandes et le dispatcher qui a la responsabilit de planifier les missions de terrain, ainsi que le suivi des vhicules.

Figure 5 : Cas dutilisation du systme professionnel

Le cas dutilisation Planifier commandes permet de planifier les commandes livrer en une date prvue. La planification des commandes livrer est effectue en deux tapes : Tout dabord, saisir les informations attributaires qui concernent les commandes livrer. Ensuite, prciser gographiquement les lieux de livraisons. Le cas dutilisation Planifier missions terrain concerne la planification des missions terrain des vhicules. On ne peut planifier sur le terrain que les commandes dj planifies par le manager. Le cas dutilisation Golocaliser permet le suivi en temps rel et diffr des vhicules et permet au dispatcher davoir la position dun vhicule nimporte quel moment. Le cas dutilisation Inscrire concerne uniquement ladministrateur et permet de faire linscription des entreprises dans le systme. Tous ces cas dutilisation font appel celui de Sauthentifier avant dtre appels.

Travail de Fin dEtudes / EHTP 2007

23

Gestion de flotte

II. Scnarios des cas dutilisations


1. Planifier commandes Le gestionnaire se prsente devant un terminal: (1) Le systme lui demande de s'authentifier. (2) Le gestionnaire donne son identification (Login, mot de passe). (3) Le gestionnaire choisit lopration planification des commandes parmi les diffrentes oprations proposes. (4) Le systme lui affiche lensemble des POI. (5) Le gestionnaire choisit un POI dans la carte. (6) Le systme lui affiche le formulaire commande remplir. (7) Le gestionnaire remplit le formulaire et le valide. (8) Le systme valide la commande planifie. Variante 1 En (2) le client n'est pas reconnu, dans ce cas, tant qu'il n'est pas reconnu, le systme lui demande de s'authentifier. Variante 2 En (5) le gestionnaire peut choisir plusieurs points en mme temps. Variante 3 En (6) le systme peut afficher plusieurs formulaires suivant les POI slectionns.

Figure 6 : Scnario du cas dutilisation planifier commandes

2. Planifier Missions terrain Le dispatcher se prsente devant un terminal: (1) Le systme lui demande de s'authentifier. (2) Le dispatcher donne son identification (login, mot de passe). (3) Le dispatcher choisit lopration planification des missions terrain parmi les diffrentes oprations proposes.

Travail de Fin dEtudes / EHTP 2007

24

Gestion de flotte

(4) Le systme lui affiche lensemble des commandes planifies, lensemble des POI, lensemble des vhicules et lensemble des conducteurs. Il met ensuite le dispatcher en mode simulation (5) Le dispatcher entre en mode simulation qui lui permet de planifier les trajets avec la libre possibilit de modifier ou supprimer. (6) Le dispatcher valide sa planification finale. (7) Le systme lui demande la confirmation. (8) Le dispatcher confirme la planification. (9) Le systme valide la planification et lenregistre dans la base de donnes. Variante 1 En (2) le client n'est pas reconnu, dans ce cas, tant qu'il n'est pas reconnu, le systme lui demande de s'authentifier Variante 2 En (8) le dispatcher annule la confirmation et rentre en mode simulation. Variante 3 En (5) le systme peut interagir pour donner des estimations et des propositions au dispatcher.

Figure 7 : Scnario du cas dutilisation planifier Missions terrain

Le mode simulation permet au dispatcher de dcider lui-mme les trajets suivre par les vhicules. Le systme interagit en donnant des estimations bases sur les choix effectus par le dispatcher.

Travail de Fin dEtudes / EHTP 2007

25

Gestion de flotte

III. Diagramme de classes


1. La gestion des utilisateurs

Figure 8 : Diagramme de classes : Gestion des utilisateurs

Tous les utilisateurs du systme sont lis leurs entreprises, les utilisateurs sont de deux types, soit manager soit dispatcher. 2. La gestion des points dintrt

Figure 9 : Diagramme de classes : Gestion des POI

Chaque entreprise a ses propres POI, qui sont regroups par catgorie.

Travail de Fin dEtudes / EHTP 2007

26

Gestion de flotte

3. La planification

Figure 10 : Diagramme de classes : Planification

Le conducteur et le vhicule sont directement lis lentreprise. Pour chaque parcours on affecte un seul conducteur et un seul vhicule. Chaque parcours est compos de plusieurs trajets. Pour chaque trajet on prcise principalement les dates de dbut et de fin, les points de dpart et darrive. 4. La golocalisation

Figure 11 : Diagramme de classes : Golocalisation

On dsigne par Device lappareil embarqu au sein du vhicule pour la rception et lenvoie des donnes GPS. Chaque Device envoie au serveur central la position et la vitesse du vhicule. Tous les vhicules ne sont pas ncessairement quips par un GPS, il pourrait donc y avoir des vhicules quon ne peut pas suivre travers le systme, ils ne serviront alors que pour la planification, puisque le dispatcher peut planifier la mission terrain pour nimporte quel vhicule mme si ce dernier nest pas quip de GPS.

Travail de Fin dEtudes / EHTP 2007

27

Gestion de flotte

5. Le rseau routier La modlisation du rseau routier se base essentiellement sur le principe Arcs/Nuds (Edges/Junctions). Les routes (Rues, Boulevards, Avenues, Chemins de fer) sont modlises par des arcs et les intersections entre les routes sont modlises par des nuds. Le model du rseau Dans notre modlisation nous allons considrer que toutes les routes sont reprsentes par des arcs, et toutes les intersections sont reprsentes par des nuds. Ainsi notre modle comportera deux parties principales : - Le model Logique : Qui concerne la reprsentation des routes telle quelle est sur la carte, visualisable par lutilisateur, par exemple le boulevard Mohammed VI sera reprsent par une seule entit. - Le model Physique : Cest un niveau un peut plus bas qui nest pas visible que par le systme, qui contient la subdivision des routes en plusieurs arcs, ainsi que la reprsentation des intersections et les relations entre les arcs, par exemple un boulevard sera reprsent par plusieurs arcs relis par des nuds.

COUCHE LOGIQUE

COUCHE PHYSIQUE

Figure 12: Modlisation du rseau routier

Dans cette figure nous observons la sparation entre le model physique et le model logique. La couche Logique concerne la reprsentation de tous ce qui est visualisable par lutilisateur, alors que la couche physique concerne la modlisation du rseau. La classe Route est la classe principale dans notre modle. La classe catgorie permet la classification des routes (Avenue, Boulevard, Rue, etc.)

Travail de Fin dEtudes / EHTP 2007

28

Gestion de flotte

Au niveau physique nous ne sommes pas beaucoup entrs en dtail, parce que chaque logiciel SIG traite le rseau de sa propre mthode. Un logiciel tel que ArcGIS se base sur le concept de Geometric Network qui reprsente le rseau sous forme Arc /Nuds plus une table de Connectivit entre les arcs et les nuds. Problmatiques de la base de donnes routire Pour construire une telle base de donnes il faut prendre en considration plusieurs contraintes dont la plus importante est de prciser son domaine dutilisation. En effet, un model qui rpond un domaine donn peut tre totalement inutilisable pour un autre. La problmatique principale dans ce projet est de pouvoir faire le routage entre deux points donns, c'est--dire, assurer la navigabilit dans le rseau routier. Il faut donc disposer dune base de donnes routire principalement ddie au routage. Une telle base donne est inexistante la socit. En effet, la base de donnes routire qui existe aujourdhui, a des domaines dutilisation trs restreints. Les routes ne sont que des lments daffichage dans une carte gographique. Et cest justifi en quelque sorte, surtout si on sait que la collecte des donnes de routage reprsente la phase la plus gourmande du budget dans tels projets, cest pour cela que les boites SIG au Maroc hsitent toujours enter dans un tel investissement. On aurait aim pour cela quil ait une coopration entre les diffrents intervenants du domaine routier, pour lchange notamment de donnes et dexpriences. La base de donnes routire existante Dans lorganisme daccueil, on dispose dune base de donnes routire qui couvrent plusieurs villes dont les routes sont classes par catgories. Dans cette base de donnes on sest intress par trois informations seulement : Le nom, la largeur et le type de voie. Toutefois, avoir une base de donnes routire ne signifie pas avoir la possibilit de navigation. En effet, en absence des donnes terrain qui ne sont pas disponibles; on peut avoir une base de donnes utilisable uniquement dans des domaines limits Lune des lacunes de cette base est quelle ne prsente pas les intersections entre les routes. Nous signalons ici que pas mal de logiciel SIG permettent de gnrer les intersections automatiquement uniquement partir du rseau. Toutefois lutilisateur de cette fonctionnalit doit tre trs vigilent parce que a ne se passe pas toujours comme on veut. Le problme majeur nest pas de gnrer les intersections plutt que de savoir est ce quil y a vraiment une intersection ou non. Lexemple typique ici est le cas dune route avec un chemin de fer, sur la carte on voit quil y a une intersection alors que dans la ralit lintersection est un pont. Dans le cas o le logiciel est plus intelligent dans le sens o il traite ce scnario, il ne lest pas dans le cas dintersection entre une autoroute et un boulevard par exemple qui est souvent travers un pont.

Travail de Fin dEtudes / EHTP 2007

29

Gestion de flotte

Comme nous le voyons clairement dans cette image, lintersection entre lautoroute et le boulevard est un pont.

Figure 13: Intersections entre routes

Elle nest considre comme intersection que les connexions permettant lchange de flux entre les routes La voie qui lie entre les deux routes na quun seul sens.

Intersection

Sens Pas une intersection


Figure 14: Routes unique sens

Travail de Fin dEtudes / EHTP 2007

30

Gestion de flotte

Il faut dire aussi que la base de donnes ne donne pas les sens de flux. Une telle information qui peut tre trs importante, surtout au niveau dinterconnexion entre les grandes routes. Cest le cas par exemple des voies entrantes ou sortantes de lautoroute, qui nont quun seul sens. Sans oublier les donnes du trafic tels : Les arrts, zones de limitation de vitesse, Congestion, etc. En rsume ; la base de donnes est inutilisable dans le domaine de navigation et elle doit tre complte par des donnes collectes directement du terrain.

Travail de Fin dEtudes / EHTP 2007

31

Gestion de flotte

Chapitre

Choix technologiques

Le bon choix des outils de dveloppements est un point trs important pour le succs de nimporte quel projet. En effet, les outils sont multiples et les solutions technologiques sont diverses et seul le contexte du projet peut dterminer loutil de travail.

Travail de Fin dEtudes / EHTP 2007

32

Gestion de flotte

I. GoogleMaps
GoogleMaps est un service web cartographique gratuit cr par Google en 2004 qui utilise la technologie SIG Web pour offrir un ensemble de fonctionnalits SIG qui sexcutent au niveau du serveur. Ce service a de particulier qu'il permet, partir de l'chelle d'un pays, de pouvoir zoomer jusqu' l'chelle d'une rue 1. Services offerts par GoogleMaps On peut naviguer dans GoogleMaps facilement avec la souris, on peut zoomer pour voir le dtail dune rue par exemple. Lutilisateur peut entrer une adresse ou le nom dune place connue pour pouvoir lidentifier rapidement sur la carte. GoogleMaps permet aussi danalyser les requtes utilisateurs. Par exemple, lutilisateur peut entrer la commande suivante : Restaurants in Paris pour avoir la liste des restaurants qui se trouvent dans la ville. Cette fonction peut tre utilise pour trouver une large liste des points dintrt tels : Htels, Hpitaux, Stationsetc. GoogleMaps permet aussi de faire le routage. Il donne lutilisateur une liste des trajets pour arriver sa destination avec une estimation de la dure de chaque trajet et la distance qui spare entre les deux locations. GoogleMaps offre quatre modes daffichage par dfaut : Carte (topographique et rseau routier), Stellite (Images satellites et images ariennes haute rsolution), Hybrid (Rseau routiers sur des images satellites et images ariennes haute rsolution) et tout rcemment Street View qui tait introduite le 30 Mai 2007 et qui donne une vue de 360 de certaines routes. 2. Implmentation GoogleMaps est bas sur JavaScript. Lorsque lutilisateur drag la carte, les images sont tlcharges depuis le serveur. Lorsque lutilisateur cherche une location, une petite bulle est affiche sur la carte pour indiquer la position. GoogleMaps utilise la technologie AJAX (Asynchronous JavaScript and XML) qui combine Javascript avec XML. Cette technologie lavantage de satisfaire les requtes client sans rafrachir chaque fois la carte. Les donnes gographiques sont fournies par TeleAtlas et NAVTEQ, alors que les images ariennes sont fournies par DigitalGlobe. 3. Extensibilit et personnalisation GoogleMaps permet de personnaliser et dajouter des extensions la carte avec des simples codes Javascript et XML. En se basant sur les services offerts et les images (Carte/satellite) hberges GoogleMaps, on peut personnaliser linterface et les icnes utilises pour laffichage et aussi ajouter les propres images rasters dutilisateur. 4. LAPI GoogleMaps LAPI GoogleMaps tait cre par Google afin de faciliter aux dveloppeurs lintgration de GoogleMaps au sein de leurs applications web avec leurs propres bases de donnes. Cest un service gratuit qui ne contient pas de publicit, mais Google dans les termes dutilisation 1.1 rservent le droit daffichage des publicits dans lavenir.

Travail de Fin dEtudes / EHTP 2007

33

Gestion de flotte

En utilisant lAPI GoogleMaps on peut avoir toutes les fonctionnalits GooleMaps dans une application web externe (sauf le routage). Pour cela il faut crer une cl API qui sera lie lapplication web. 5. GoogleMaps au Maroc GoogleMaps dispose des images satellites grandes chelles pour certaines rgions (Casa, Rabat) qui peuvent descendre jusqu lchelle dune rue et pour dautres rgions (Agadir, Oujda) les images sont de petites chelles avec beaucoup moins de dtails visibles. En ce qui concerne les donnes vecteurs (Rseau routier notamment), GoogleMaps dispose dune carte dune trs petite chelle et dont on peut voir le dcalage entres les images satellites et les routes une fois on zoome en mode Hybrid (rseau routiers sur des images satellites et images ariennes haute rsolution) dont lchelle des images est beaucoup plus grande que celle des cartes routires. Cette diffrence de lchelle entre les cartes avec les images dune part et les images entre elles en dautre part, nous renvoie dfinir les zones de bon et de mauvais fonctionnement de notre application. Il faut signaler finalement que les fonctionnalits de gocodage et de routage ne marchent pas au maroc.

II. J2EE
J2EE (Java 2 Edition Entreprise) est une architecture cre par SUN Microsystems qui dfinit un nouveau concept de dveloppement qui est le dveloppement par couches. Lavantage de cette architecture est que le dveloppeur a ce quon appelle des frameworks pour lassister mettre en place son projet tout en respectant les concepts dfinis par la communaut J2EE. Avant de dtailler les composants de J2EE, il faut expliquer un terme quon va lutiliser souvent dans cette partie. Framework Lintrt pour nimporte quel dveloppeur est de pouvoir utiliser des composants qui sont prts utiliser, et de ne pas rinventer chaque fois la roue. Le concept de rutilisation qui a commenc avec la programmation procdurale (Pascal, Cetc.) travers la dfinition des fonctions et procdures, il sest dvelopp plus tard avec larrive de la programmation oriente objet o on peut dfinir des classes, et mme des packages rutilisables. Et aujourdhui on largit un peut le domaine et on parle de la rutilisation des composants. Pas mal de communauts ont pris linitiative pour dvelopper des composants qui sont utilis en standard dans la plupart des projets. Ils ont pris en charge le dveloppement de ces composants et ils ont fait les tests ncessaires pour quils soient facilement intgrables dans nimporte quel projet. Donc un framework est un ensemble de composants rassembls dans une seule entit et qui sont prs utiliser, sous condition de respecter son architecture.

Travail de Fin dEtudes / EHTP 2007

34

Gestion de flotte

Pourquoi J2EE ? J2EE est une nouvelle technologie qui est venue pour remplacer les mthodes traditionnelles de dveloppements (voir la partie MVC). J2EE est en open source, et il a t adopt par lensemble des communauts des dveloppeurs en open source. J2EE dispose dune documentation trs riche, et lensemble des projets en J2EE sont publis dans le web, ce qui est trs important, et en particulier pour nous les dbutants ; tout dabord parce quon a pas assez dexprience pour dvelopper un projet de A Z ; ensuite la dure du TFE est de quatre mois ce qui ncessite de chercher une plate forme dj prte dans le web qui rpond au moins 50% de la problmatique du projet. Un trs grand nombre de bibliothques gratuites sont publies dans le web et elles sont facilement intgrables dans un projet J2EE, telles que calendar, table scroll, schedule, menuetc. 1. MVC Avant de dfinir ce quest ce que un MVC, nous allons voir tout dabord quelques lacunes de la mthodologie traditionnelle de dveloppement. Avec JSP ou PHP ou nimporte quel langage Web cot serveur, le dveloppement dune application web, commence par la cration dun nombre de pages web. Dans ces pages on peut bien constater quil y a des codes qui concernent laffichage graphique tels (Bouton, InputTextetc.), des codes qui concernent le traitement tels (les boucles, les conversions,etc.) et des codes daccs aux donnes tels (connexion la BD, des requtes SQLetc.). Or, avec ce concept on peut bien constater quil y a des segments de codes qui ne sont pas cohrents et qui sont mlangs les uns avec les autres, ce qui rend la rutilisation du code trs sophistique. Le changement de la base de donnes de Oracle vers MySql par exemple, va entraner un changement dans la plupart des pages. Le pire, est que ce nest pas nimporte qui peut changer, dans la plupart des cas cest le dveloppeur de lapplication luimme qui doit intervenir, ce qui rend le cot de la maintenance et la rutilisation plus lev. Pour palier ce problme le model MVC (Model, View, Controller) dfinit un nouveau concept de dveloppement. Le dernier modle propos par SUN est MVC2 qui a pour objectif de sparer les codes travers la division du projet en couches : Model, View et Controller. Plusieurs frameworks aujourdhui adoptent cette architecture tels Struts, JSF, SpringMVC,etc. Avec ce nouveau concept, on dfinit des nouvelles rgles de programmation en sparant la couche prsentation de la couche traitement en tablissant les liens entre les deux. La couche prsentation ne reprsente que les composants graphiques tels (InputText, bouton, imageetc.). Aucun code de traitement nest permis dans cette couche. La couche mtier est la responsable de tous ce qui est traitement. Elle permet de lire les donnes provenantes de la couche prsentation et de les traiter. Ou aussi de prparer les donnes demandes par la couche prsentation. On peut mme accder la base de donnes partir de la couche mtier, toutefois ce mlange entre le code de traitement et le code daccs la base de donnes nest pas recommand, cest pour cela que les spcialistes prconisent de deviser la couche mtier elle-mme en plusieurs couches selon le besoin, ainsi on peut avoir une couche de traitement et une autre daccs la base de donnes et une autre pour la gestion (Voir partie Spring).

Travail de Fin dEtudes / EHTP 2007

35

Gestion de flotte

Le controller est le responsable de la liaison entre les pages web entre elles dune part et les pages web avec les classes mtiers en dautre part. Si une page a besoin de donnes ou mme si elle veut envoyer des donnes une classe, cest le controller qui sen charge. En ce qui concerne les liaisons entre les pages web, cest le controller qui les gre travers la notion des actions ; mais il faut signaler que ce nest pas toujours le cas parce quune page peut appeler directement une autre page sans passer par le controller . 2. JSF JSF (Java Server Faces) est un framework de prsentation dvelopp par Sun Microsystems. Comme son nom lindique Java Server Faces , ce framework est responsable de tous ce qui est prsentation, c'est--dire ; il dfinit les rgles pour la confection des interfaces graphiques utilisateur en plus de la gestion des relations entre elles. Larchitecture de cette couche est conue en se basant sur le model MVC2 (Model View Control). Les vues (views) sont assures par les pages JSP (avec une template JSF). Dans chaque page on peut insrer un ensemble des composants UI (User Interface) qui sont des Tag Library. Par exemple pour insrer un champ texte dans la page JSF on a quinsrer la tag suivante : <h:outputText value="Hello"/>. On peut donc constater que dans ce nouveau concept on peut se dbarrasser de tous ce qui est HTML et les remplacer par des Tags qui font le mme travail, mais dune faon trs simple et puissante. Le controller est assur par une Servlet appele ServletContext, qui est facilement paramtrable par un fichier XML appel souvent FacesConfig.xml. Toutes les rgles de navigation sont dfinies dans ce fichier, en plus de la dclaration des classes mtiers qui interagissent avec les Pages JSF. Le model reprsente la couche mtier, c'est--dire il dfinit le traitement effectuer aux donnes provenantes des pages JSF. Cest le fichier du control qui fait la liaison entre le mtier et la reprsentation. Toutes les classes de la couche mtier sont des Beans, c'est--dire que ce sont des classes java dont tous les attributs sont privs, et toutes les mthodes sont publiques. Les mthodes sont de type Getter&Setter, c'est-dire que chaque attribut de la classe doit avoir au minimum deux mthodes : GetAttribut et SetAttribut pour pouvoir lutiliser partir de la couche prsentation. 3. Hibernate Hibernate est un framework qui permet de rsoudre un trs grand problme qui rencontre surtout les gents qui font la conception de leurs projets en UML et veulent implmenter leurs codes en java. On sait trs bien que java est un langage orient objet qui permet facilement de codifier les classes UML. Or, cette conception suppose quon travaille avec une base de donnes oriente objet afin de pouvoir garder des concepts tels lhritage, lagrgation, les associationsetc. moins si on voulait trouver une issue pour sen chapper, et dailleurs cest a quon faisait toujours. On sait bien aussi que la plupart des SGBD sont relationnels. Donc la plus grande question qui se pose ici, est la suivante : Pourquoi je me suis cass la tte pour faire la conception en UML ; alors que finalement je reviendrai au relationnel ?! Hibernate est l pour rsoudre ce problme. En effet, il permet aux dveloppeurs dinteragir

Travail de Fin dEtudes / EHTP 2007

36

Gestion de flotte

avec la base de donnes relationnelle comme selle sagissait dune base de donnes oriente objet, et sans mettre en pril le diagramme de conception UML. En effet, Hibernate permet de crer une couche de persistance de donnes, c'est--dire une interface qui donne aux dveloppeurs des fonctionnalits pour linteraction avec la base de donnes en mode oriente objet. Les utilisateurs peuvent finalement voir le fruit de leurs conceptions et dvelopper une vraie application oriente objet. Le principe de fonctionnement de Hibernate est simple ; pour chaque table on associe ce quon appelle un fichier de mapping (format XML) ; dans ce fichier on dfinit les champs de la table plus les rgles de connexions avec les autres tables (hritages, associationsetc.) ; et pour chaque fichier de mapping on associe une classe java que lon peut gnrer automatiquement partir du fichier de mapping. Le dveloppeur na plus qu interagir avec la table dans la base de donnes mais plutt avec la classe java. Pour cela Hibernate a mis en place un nouveau langage qui sappelle HQL (Hibernate Query Language) qui est plus facile utiliser et dfinit plus de fonctions pour interagir la base de donnes. Dans le fichier de configuration de Hibernate ; deux informations principales doivent figurer : Les paramtres de connexions la base de donnes (Driver, Nom BD, Login) La dclaration des fichiers de mapping. 4. Spring Avec JSF et de Hibernate, on peut dire quon a la base pour dvelopper une application web. En effet, on peut raliser une application dans laquelle on utilise JSF comme couche prsentation qui se connecte une couche mtier (Des classes Javabeans) dont on peut insrer du code Hibernate pour se connecter la base de donnes. Pourquoi donc utiliser Spring ? Cest une trs bonne question qui se pose souvent chez les initiants en dveloppement avec J2EE ; et qui veulent implmenter leurs applications web avec le minimum deffort et de temps possible. Chez les dveloppeurs, cest une question qui trouve sa rponse dans la conception de la couche mtier. Il est trs conseill de diviser la couche mtier en plusieurs niveaux. Mlanger le code daccs la base de donnes avec le code de traitement est un mauvais choix qui se contredit mme avec le concept J2EE qui consiste diviser les taches diffrentes en plusieurs couches. Spring nest pas un luxe ajouter un projet J2EE ; mais par contre, un lment indispensable pour la robustesse de lapplication. Spring permet de dfinir une nouvelle architecture de la couche mtier et il favorise le travail en quipe au sein du mme projet. Le premier concept est le travail par contrat ou par interface, c'est--dire que pour chaque classe il devait avoir une interface dont elle hrite, comme cela on oblige les dveloppeurs respecter le mme module de dveloppement. Un autre point fort dutilisation des interfaces est que pendant le dveloppement on fait jamais appel une classe partir dune autre classe, mais plutt de linterface dont elle hrite, ainsi on peut utiliser une classe sans quelle soit encore dveloppe. Le deuxime concept, qui est le plus important est le Dependency Injection qui consiste faire le lien entre les classes. Pour illustrer ce dernier principe, si un objet A a besoin dun objet B pour accomplir un traitement spcifique, cette relation doit se traduire par une dclaration du constructeur de la classe B dans la classe A.

Travail de Fin dEtudes / EHTP 2007

37

Gestion de flotte

Figure 15 : Relation entre les objets sans Spring

Si par exemple, on voulait changer la relation, et on veut remplacer lobjet B par un autre objet C , cela entranera videmment un changement dans toutes les classes qui utilisent cet objet B. La solution pour viter cette anomalie est de dlguer Spring cette tache dtablissement de la relation entre les objets A et B

Figure 16 : Relation entre les objets avec Spring

Dans ce projet, on a une classe Bean qui interagit avec la couche prsentation, celle-ci utilise une classe service pour excuter les traitements et cette dernire fait appel une classe dao qui va interagir avec la base de donnes via Hibernate. Pour illustrer cela, nous imaginons par exemple quon a une classe spcialise dans linteraction avec la base de donnes quon va lappeler Dao ; et une autre classe quon va lappeler Service qui fait le traitement des donnes apportes par la classe Dao; et une troisime et dernire classe qui va utiliser cette classe Service pour afficher les donnes aux utilisateurs finaux quon va lappeler Bean.

Travail de Fin dEtudes / EHTP 2007

38

Gestion de flotte

Figure 17: Architecture de lapplication avec Spring

Daprs ce schma, on constate que toutes les relations qui existent entre les objets sont dlgues Spring. Donc, si jamais on veut changer une classe par une autre, on a qua reconfigurer Spring. Spring utilise un fichier de configuration souvent appel ApplicationContext.xml pour tablir les liens entre les objets. Il faut signaler que Spring ne se contente pas de ltablissement des liens entre les objets seulement, mais aussi de la cration de ces objets, et il utilise le principe de Singleton pour sassurer quaucun objet ne figure en double dans la mmoire. Ceci dit ; que si un objet A a besoin dun objet B, et un objet C a besoin lui aussi de lobjet B ; Spring assure que les deux objet A et C ne vont utiliser quun seul objet B dans la mmoire. Il faut souligner aussi que Spring contient dautres modules quon peut les utiliser dans une application web J2EE, comme par exemple Spring MVC ; mais cest ici que persiste le point fort de Spring, puisquil nous donne la libert dutilisation de nimporte quel model sparment. Spring permet aussi de prendre en charge la configuration de Hibernate. Donc on naura plus besoin du fichier de configuration de Hibernate, puisquon peut mettre son contenu dans le fichier de configuration de Spring

Travail de Fin dEtudes / EHTP 2007

39

Gestion de flotte

Chapitre

Ralisation & Mise en Place

Le prsent chapitre dtaille techniquement les tapes de ralisation du projet ainsi que la problmatique de routage qui est le processus le plus compliqu dans ce projet.

Travail de Fin dEtudes / EHTP 2007

40

Gestion de flotte

Nous sommes arrivs maintenant de la ralisation du projet. Vu le court dlai du projet par rapport sa taille, on a dfini une liste des tches prioritaires ; c'est--dire celles qui doivent tre ralises en premier. Pour cela on a class les quatre sous modules du projet ainsi : 1. Le suivi des vhicules en temps rel. 2. Le suivi en temps diffr (donnes historiques). 3. La planification. 4. La gestion des POI. A cela sajoute aussi une tache pas moins importante que les autres, qui est la partie administration. Dans ce projet on est arriv raliser les deux premiers modules (Suivi temps rel et diffr), en plus de la partie administration ; ainsi quun sous module de routage qui peut tre intgr dans le module de planification. Les deux modules qui restent ne peuvent tre compliqus raliser ; puisque la plupart des composants sur lesquels se basent ces deux modules sont dj dvelopps dans ce projet et il ne reste donc que les intgrer.

I. Module : Administration de lapplication


Ce module contient la partie authentification qui permet de grer laccs lapplication, Chaque utilisateur, aprs lintroduction de son login et mot de passe va tre redirig automatiquement suivant son statut vers les fentres correspondantes. Lapplication dfinit trois niveaux dadministration : Ladministrateur, le manager et le dispatcher.

Figure 20: Fentre dAuthentification

Le systme dfinit pour chaque utilisateur un rle dadministration. En se basant sur ce rle le systme lui dirige vers la fentre correspondante. On utilise les sessions pour garder la trace de lutilisateur connect. La scurit de lapplication nest pas encore gre, sinon on pourrait intgrer un framework de scurit qui sappelle ACEGI qui permet de grer lauthentification et lautorisation des utilisateurs. Il faut noter que la scurit est un lment trs important grer, parce que le serveur contient des donnes confidentielles des clients.

Travail de Fin dEtudes / EHTP 2007

41

Gestion de flotte

Lorsque ladministrateur de lapplication sauthentifie le systme lui redirige vers la fentre suivante :

Grer vhicules

Liste des entreprises Grer entreprises

Figure 21: La fentre principal administrateur

Dans cette espace, on donne ladministrateur la possibilit de grer lapplication. Pour la prsente tape on a donn la possibilit de grer que les vhicules et les entreprises. Ladministrateur peut ajouter une entreprise partir de la fentre suivante :

Figure 22: Fentre ajouter entreprise

Ladministrateur introduit le nom de lentreprise et clique sur valider pour que lentreprise senregistre dans le systme. Lhors de lajout dune entreprise, deux utilisateurs doivent tre cres par dfaut. Si lentreprise sappelle XXX, alors on a par dfaut les deux utilisateurs XXX_Manager et XXX_Dipatcher.

Travail de Fin dEtudes / EHTP 2007

42

Gestion de flotte

II. Module : Suivi en temps rel


Dans ce module, on donne chaque entreprise la possibilit de suivre en temps rel les vhicules. Pour entrer cet espace, lentreprise doit avoir un compte. Le menu principal contient trois choix : Consulter la liste de tous les vhicules de lentreprise. Consulter la liste des vhicules qui sont quips de GPS et les suivre en temps rels Consulter les trajets historiques des vhicules quips par GPS Remarque : tous les vhicules ne sont pas ncessairement quips par un appareil GPS.

Liste des vhicules Suivi temps rel Suivi temps diffr

Figure 23 : Espace suivi vhicules

Lorsquon click sur le lien Vhicules on a la liste de tous les vhicules de lentreprise.

Figure 24: Liste de tous les vhicules de lentreprise

Travail de Fin dEtudes / EHTP 2007

43

Gestion de flotte

En cliquant sur le lien RealTime on a la fentre suivante :

Figure 25: Liste des vhicules de lentreprise qui sont quips par GPS

Dans cette fentre on ne voit que les vhicules qui sont quips de GPS, on a une information sur le numro de srie du Device embarqu au sein du vhicule, ainsi quun lien vers GoogleMaps pour afficher la position sur la carte Lorsquon clique sur le lien GoogleMaps , on visualise la position actuelle du vhicule sous forme dun point au centre de la carte GoogleMaps.

Position du vhicule

Figure 26: Position du vhicule en temps rel

Le choix de licne afficher est personnalisable, on pourrait par exemple changer la bulle rouge par une autre icne. On peut aussi dfinir une couleur qui correspond ltat du vhicule. Si par exemple le vhicule est arrt on laffiche avec une couleur rouge et si il est en marche on laffiche avec une couleur verte.

Travail de Fin dEtudes / EHTP 2007

44

Gestion de flotte

III. Module : Suivi en temps diffr


Ce module ressemble au premier, sauf quon consulte les donnes historiques. Lutilisateur choisit le vhicule, plus la date de visualisation. Dans cette application on donne la possibilit de visualiser les donnes pour une journe. En cliquant sur le lien Historical Tracking, on a la fentre suivante :

Figure 27: Liste des vhicules dont on peut avoir les donnes historiques

En cliquant sur le lien GoogleMaps on peut visualiser le parcours du vhicule.

Trajet historique

Figure 28: Parcours dun vhicule pendant une dure

Lun des plus grands problmes rencontrs lors du dveloppant de ce module, est le problme de laffichage des donnes sur le fond GoogleMap. En effet, il nest pas vident de transmettre des donnes comprhensibles seulement par des composants JSF GoogleMaps qui ne comprend que du Javascript. Lutilisation du framework Shale Romoting a rsolu le problme daffichage. On peut dire que ctait la tache technique la plus difficile dans ce projet.

Travail de Fin dEtudes / EHTP 2007

45

Gestion de flotte

IV. Module : Routage


Cest le module le plus compliqu dans ce projet. Il a ncessit un grand effort et il nest pas encore finalis. Comme nous lavons cit ; la fonctionnalis routage de GoogleMaps ne fonctionnent pas au Maroc. Il a fallu donc dvelopper nous-mmes cette fonctionnalit de routage en se basant sur nos propres donnes et notre propre serveur. Prparation des donnes Dans cette tape on manipule essentiellement les fichiers XML (Extensible Markup Language). XML est une sorte de base de donnes qui permet de stocker les donnes dans une architecture personnalise. En se basant sur le principe des balises on peut dfinir une infinit darchitectures qui se diffrent suivant le domaine dutilisation ; on peut dfinir par exemple une balise <Personne> qui contient une sous balise <Nom> pour construire une base de donnes Personnes : <Personne> <Nom>Ahmed</Nom> </Personne> <Personne> <Nom>Said</Nom> </Personne> En se basant sur ce principe de dfinition des balises, plusieurs communauts ont dfini leurs propres balises pour une utilisation prcise. Cest le cas par exemple de GML (Geography Markup Language) qui est un langage driv de XML propos par l'Open Geospatial Consortium pour exprimer des dispositifs gographiques ou aussi KML (Keyhole Markup Language) qui est aussi un langage driv de XML propre GoogleMaps qui permet de modliser, de transporter et de stocker des donnes gographiques au format XML. Les donnes gographiques brutes dont on dispose sont en format Shapefile (propre ESRI), il a fallu donc les convertir avec un utilitaire au format KML. Voici une portion de code dun fichier KML : Dfinition dune polyligne dans KML <Placemark> <name>Rue 149</name> <description><![CDATA[]]></description> <styleUrl>#FEATURES</styleUrl> <LineString> <extrude>0</extrude> <tessellate>1</tessellate> <altitudeMode>clampedToGround</altitudeMode> <coordinates> -7.57387856072572,33.5436010589751,0 ,-.57313425119001,33.5426759601109,0 </coordinates> </LineString> </Placemark> Comment arriver une structure Arc/Nud partir de ce fichier ?

Travail de Fin dEtudes / EHTP 2007

46

Gestion de flotte

En se basant sur des bibliothques Java de manipulation des fichiers XML (prcisment JDOM) on parcourt tout le fichier et on identifie ses lments un par un. Nous voyons dans lexemple ci-dessus que KML utilise pour la dfinition dune polyligne (identifie par <LineString> en KML) un ensemble de cordonnes rassembles sous forme de chanes de caractres et spares par virgules (,). On a conu pour cela une application sous java pour la prparation des donnes. Elle permet de parcourir ce fichier KML et de rcuprer les deux importantes informations qui figurent dans le fichier : Le nom de la route et les coordonnes. A partir de ces donnes on peut construire notre base de donnes routire. Le processus de la rcupration des donnes est simple ; aprs la lecture des coordonnes sous forme de chane de caractres, on dcoupe cette dernire suivant le caractre virgule (,) en un ensemble de sous chanes quon va les stocker dans un tableau, par consquent les trois premiers lments du tableau reprsentent successivement la longitude, la latitude et laltitude du premier point. (Voir figure21)

Figure 29: Dcoupage Arcs/Noeuds

Pour la construction des arcs, on relie chaque nud au nud qui le suit si ces deux noeuds appartiennent la mme route bien sr. Pour chaque arc on tablit un cot qui est la distance qui spare entre le nud de dpart et le nud darrive. Ainsi on aurait construit notre base de donnes routire. Le routage Aprs avoir construit la base de donnes routire on peut commencer faire le routage. Pour cela on identifie pour chaque arc un cot ; celui-ci, et comme nous lavons cit; constitue pour la prsente tape une fonction de la distance uniquement. Pour des raisons techniques, et afin de rsoudre la problmatique du sens des voies, on identifie pour chacun des deux nuds (dpart et arrive) de chaque voie deux cots : cot entrant et cot sortant. Si une route a un sens interdit en entrant, on va mettre donc le cot entrant une valeur maximale tandis quon va toujours utiliser le cot rel en sortant.

Figure 30 : Sens permis et sens interdit

Travail de Fin dEtudes / EHTP 2007

47

Gestion de flotte

Pour le calcul du plus court chemin, on utilise lalgorithme publi par l'informaticien nerlandais Edsger Dijkstra. Le choix de cet algorithme nest pas important en soi, car on peut utiliser lalgorithme de Ford-Fulkerson ou nimporte quel autre algorithme qui permet de faire laffaire. Aprs limplmentation de ce projet sous java, on a constat quil permet de faire le routage entre deux nuds qui font parti du rseau dune manire efficace. Mais dans la ralit ; et cest souvent le cas; lutilisateur choisit partir de la carte deux points (dpart et arrive) qui ne sont pas dans la plupart des cas des nuds dans le graphe. Comment faire dans ce cas ? Pour rsoudre ce problme on vrifie dabord si le point choisi est situ sur un arc donn. Si cest le cas, on crie pour ce point un nud fictif et on le branche au rseau routier. Si ce nest pas le cas, c'est--dire que le point choisi nest pas situ sur un arc donn, on choisit donc parmi la liste des nuds du rseau, le nud le plus proche ce point et on crie un noeud et un arc fictifs et on les rattache au rseau routier. Dans ce cas, il peut arriver quon trouve aucun chemin entre les deux points choisis cause par exemple du mal choix des points de rattachement ; pour cela il vaut mieux quon dfinisse une liste des points les plus proches dun point qui ne fait pas parti du rseau, suivant une tolrance par exemple, pour dfinir tous les chemins et choisir le plus court. Cest le mme principe quon peut ladopter pour chercher le POI (Pharmacie par exemple) le plus proche dun point donn. C'est--dire on relie le point et le POI au rseau routier et on tablit le routage. Implmentation

Figure 31: Dcoupage suivant les nuds

Cette fentre montre la liste des nuds du rseau routier A partir du fichier KML reprsentant le rseau routier, on extrait la liste des noeuds. Nous signalons que les noeuds qui reprsentent les intersections entre les routes ne figurent pas dans cette liste.

Travail de Fin dEtudes / EHTP 2007

48

Gestion de flotte

Figure 32: Dcoupage suivant les arcs

Cette fentre montre la liste des arcs du rseau routier. Source et Target indiquent les nuds de dpart et darrive. Le weight indique le cot du trajet qui correspond dans notre cas la distance de larc. Le champ 'Road' indique quelle route cet arc fait parti, pour cela on crie une table des routes et on affecte chaque route un numro. On affecte Par exemple au boulevard MouhammedV le numro 1 et lavenu HassanII le numro 2 et ainsi de suite. Dans le tableau ci-dessus on a les arcs 3, 4, 5, 6,7 appartiennent la route numro 4. Routage

Figure 33: Calcul du plus court chemin (fentre des coordonnes)

Travail de Fin dEtudes / EHTP 2007

49

Gestion de flotte

Dans cette fentre on introduit les longitudes et les latitudes des points de dpart et darrive. A partir de ces coordonnes, le systme est capable de faire le rattachement avec le rseau routier et calcule le plus court chemin. En cliquant sur le bouton 'Submit' on calcule le plus court chemin.

Figure 34: Calcul du plus court chemin (Rsultat)

Le systme indique la liste des trajets suivre pour arriver la destination, plus la longueur de chaque trajet.

Travail de Fin dEtudes / EHTP 2007

50

Gestion de flotte

Conclusion Gnrale

Ce travail de fin dtudes intitul gestion de flotte sinscrit dans un vaste chantier visant ltablissement dun Systme dInformation gographique pour la gestion des oprations de livraisons. Ce projet SIG est dune grande envergure. Il a pour objectif de gnraliser lemploi du SIG et dassurer son intgration dans les systmes dinformations pour lensemble des intervenants dans le domaine du transport routier. La mission qui ma t confie a pour finalit de concevoir et de raliser une application SIG dont lobjectif escompt est de rendre les donnes gographiques accessibles partir dun serveur web cartographique. Les objectifs principaux de ce projet sont atteints. En effet, on est arriv raliser deux grands modules importants : La golocalisation temps rel et diffr, ainsi quune partie de la problmatique du routage. Les deux modules restants : Planification et gestion des POI ne sont pas encore raliss. Sur le plan technique, ce stage a t une exprience trs enrichissante. Il ma permis non seulement de mettre en pratique mes connaissances thoriques et mthodologiques acquises lors de ma formation lEHTP, mais aussi de suivre une formation professionnelle sur le technologie J2EE. Il ma offert, galement, lopportunit de suivre une approche concrte du management de projet, et de faire connaissance avec le mtier de lentreprise. Au cours de ce stage, laspect humain a plus que jamais t mis en avant, et ce grce au dialogue, aux conseils et au professionnalisme de toute l'quipe. Celle-ci ma intgr et soutenu depuis le dpart, de mme quelle ma offert lappui et la collaboration ncessaires tout au long du stage, surtout que llaboration du modle de donnes et les donnes, elles mmes, taient en cours dtablissement.

Travail de Fin dEtudes / EHTP 2007

51

Gestion de flotte

Au terme de ce projet, plusieurs perspectives peuvent tre envisages. Dans limmdiat, il serait judicieux de complter la ralisation de lapplication en entamant les deux modules restants (planification et gestion des POI). La conception dune base de donnes routire navigable est aussi une perspective pour rendre lapplication utile pour tous les domaines du transport routier.

Travail de Fin dEtudes / EHTP 2007

52

Gestion de flotte

Bibliographie et Webgraphie Bibliographie


Modlisation des rseaux routiers Cours SIG2 : Rfrencement Linaire (EL Hassan EL BRIRCHI &Abdelhamid FADIL) Cours SIG2 : Modlisation des rseaux routiers (EL Hassan EL BRIRCHI) Documentation ESRI : GeodatabaseWorkbook Documentation ESRI : Modeling_our_World.pdf Integrating GIS, GPS and GSM technologies for the effective management of ambulances

Webgraphie
Gestion de flotte http://www.geoloc-systems.com/index2.htm http://www.geotab.com/ http://www.d3e.fr/pdf/satelgisir.pdf http://www.cadtech.net.ma/index.php?option=com_content&task=view&id=39&It emid=41 http://www.amfmgis-belux.be/gishtm/decis.htm (dispatching) http://www.data-mobiles.com/fr/produits/dm-fleet.php http://www.geoconnect.fr/fr/geoconnect-plaquette-012006.pdf http://logistique.polenormand.fr/php/telecharger.php?file=FicheGeolocGestionDe Flotte Points of interest http://www.cidj.com/Viewdoc.aspx?docid=768&catid=1#description www.ordnancesurvey.co.uk/products/pointsofinterest/pdf/POI_User_Guide_Oct06 .pdf Transport SIG http://www.forumsig.org/showthread.php?t=1224 gestion de transport http://astro.temple.edu/~jmennis/Courses/ http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10828/sdo_net_co ncepts.htm http://en.wikipedia.org/wiki/ (Intersection_road) http://en.wikipedia.org/wiki/ (Junction_traffic) J2EE http://www.javapassion.com/j2ee/#Step_by_Step_Guide_for_Building_a_Simple http://jsftutorials.net/index.php http://www.horstmann.com/corejsf/ http://www.sun.com

Travail de Fin dEtudes / EHTP 2007

53

Gestion de flotte

http://perso.orange.fr/emmanuel.remy/Java/Tutoriels/J2EE/JSFAvancees.html https://blueprints.dev.java.net/ajaxcomponents.html http://www.myeclipseide.com/images/tutorials/JSF/SFLoginDemoTutorial.html http://www.myeclipseide.com/ContentExpress-display-ceid-56.html http://www.springframework.org http://www.hibernate.org/ http://livedemo.exadel.com http://www.smartclient.com http://getahead.ltd.uk/dwr/ http://www.myeclipseide.com/ContentExpress-display-ceid-15.html?gclid=CN2iKqA4IoCFSYgEAodTESDvA http://java.sun.com/developer/technicalArticles/J2EE/ajax_jsf/ http://java.sun.com/developer/technicalArticles/J2EE/AJAX/ http://www.theserverside.com/tt/articles/content/ http://www.myeclipseide.com/images/tutorials/quickstarts/springintroduction/tutor ial.html http://www.thepeninsulasedge.com/blog/2006/11/21/configuring-shale-remoting/ http://www.supinfo-projects.com/fr/2006/initiation_facelets/ http://www.jsfcentral.com http://www.coreservlets.com/JSF-Tutorial/#Code http://people.apache.org/builds/myfaces/nightly/ http://wiki.apache.org/myfaces/Use_Facelets_with_Tomahawk Google Maps http://www.google.com/apis/maps/ http://wisgary.com/maps http://fr.wikipedia.org/wiki/Google_Maps

Travail de Fin dEtudes / EHTP 2007

54

Gestion de flotte

AnnexeA

Travail de Fin dEtudes / EHTP 2007

55

Gestion de flotte

Etude de l'existant
Le systme de l'existant
La Page D'accueil

Cette page d'accueil permet de sauthentifier pour accder au systme.

Travail de Fin dEtudes / EHTP 2007

56

Gestion de flotte

Le Menu Principal

Cest la page qui contient le menu principal. Quatre fonctionnalits principales sont prsentes: Le suivi de vhicules en temps rel. Le suivi de vhicule en temps diffr (ne marche pas). La gestion des points d'intrt. Une fonctionnalit qui permet l'ajout des cartes personnalises.

Travail de Fin dEtudes / EHTP 2007

57

Gestion de flotte

Suivi en temps diffr (Donnes Historiques)

Ce module est un peut dvelopp par rapport celui du suivi en temps rel, il permet de savoir le parcours effectu par un vhicule pendant une journe sur la carte, ainsi que les donnes lies chaque trajets et entre autres la date, l'heure et le temps d'arrt dans chaque points.

Travail de Fin dEtudes / EHTP 2007

58

Gestion de flotte

Gestion des points d'intrt

Ce module permet la gestion des points d'intrt

Ajout des cartes personnalises

Travail de Fin dEtudes / EHTP 2007

59

Gestion de flotte

AnnexeB

Travail de Fin dEtudes / EHTP 2007

60

Gestion de flotte

Exemple de code
Fonction de calcul de distance entre deux points
public Double getDistance(Double LatDepart,Double LngDepart,Double LatArrivee,Double LngArrivee) { // int R = 6367; Double dlon = new Double(LngArrivee.doubleValue() - LngDepart.doubleValue()); Double dlat = new Double(LatArrivee.doubleValue() - LatDepart.doubleValue()); Double a = new Double(Math.pow((Math.sin(dlat.doubleValue() / 2)), 2) + Math.cos(LatDepart.doubleValue()) * Math.cos(LatArrivee.doubleValue()) * Math.pow((Math.sin(dlon.doubleValue() / 2)), 2)); Double c = new Double(2 * Math.atan2(Math.sqrt(a.doubleValue()), Math .sqrt(1 - a.doubleValue()))); // Double d = R * c; Double dLat1InRad = new Double(LatDepart.doubleValue() * (Math.PI / 180.0)); Double dLong1InRad = new Double(LngDepart.doubleValue() * (Math.PI / 180.0)); Double dLat2InRad = new Double(LatArrivee.doubleValue() * (Math.PI / 180.0)); Double dLong2InRad = new Double(LngArrivee.doubleValue() * (Math.PI / 180.0)); Double dLongitude = new Double(dLong2InRad.doubleValue() - dLong1InRad.doubleValue()); Double dLatitude = new Double(dLat2InRad.doubleValue() - dLat1InRad.doubleValue()); a = new Double(Math.pow(Math.sin(dLatitude.doubleValue() / 2.0), 2.0) + Math.cos(dLat1InRad.doubleValue()) * Math.cos(dLat2InRad.doubleValue()) * Math.pow(Math.sin(dLongitude.doubleValue() / 2.0), 2.0)); c = new Double(2.0 * Math.atan2(Math.sqrt(a.doubleValue()), Math .sqrt(1.0 - a.doubleValue()))); Double kEarthRadiusKms = new Double(6376.5); Double dDistance = new Double(kEarthRadiusKms.doubleValue() * c.doubleValue()); // resultat en Kilomtres return dDistance; }

Travail de Fin dEtudes / EHTP 2007

61

Gestion de flotte

Algorithme Dijkstra
import java.util.*; import map.Edge; import map.Node; public class Dijkstra {

public static Vector shortestPath ( Vector nodes, Vector edges, int startPosition, int endPosition ) { Vector vecPath = new Vector(); Vector path = new Vector(); int edgeMatrix[][] = new int[nodes.size()][nodes.size()]; boolean notDone = true; boolean pathExists = true; boolean pathPossible = false; int nodeNotInS; int S[] = new int[nodes.size()]; int T[][] = new int[2][nodes.size()]; for (int i=0; i<nodes.size(); i++) { for (int j=0; j<nodes.size(); j++) { edgeMatrix[i][j] = -1; } S[i] = 0; T[0][i] = Integer.MAX_VALUE; T[1][i] = -1; } for (int k=0; k<edges.size(); k++) { int l = ((Edge) edges.get(k)).getIdSource(); int m = ((Edge) edges.get(k)).getIdTarget(); edgeMatrix[l][m] = ((Edge) edges.get(k)).getWeight(); edgeMatrix[m][l] = ((Edge) edges.get(k)).getWeight(); } S[startPosition] = 1; T[0][startPosition] = 0; T[1][startPosition] = startPosition; for (int i=0; i<nodes.size(); i++) { if ((startPosition != i) && (edgeMatrix[startPosition][i] > 1)) { T[0][i] = edgeMatrix[startPosition][i]; T[1][i] = startPosition; } } for (int i=0; i<nodes.size(); i++) if (edgeMatrix[startPosition][i] > -1) pathPossible = true; while (notDone && pathExists && pathPossible) { int minT = Integer.MAX_VALUE; int v = -1; for (int i=0; i<nodes.size(); i++) { if ((S[i] == 0) && (T[0][i] < minT)) { minT = T[0][i]; v = i; } }

Travail de Fin dEtudes / EHTP 2007

62

Gestion de flotte
S[v] = 1; nodeNotInS = -1; for (int i=0; i<nodes.size(); i++) { if ((S[i] == 0) && (edgeMatrix[v][i] > -1)) { if ((T[0][v] + edgeMatrix[v][i]) < T[0][i]) { T[0][i] = T[0][v] + edgeMatrix[v][i]; T[1][i] = v; } } } if (S[endPosition] == 1) notDone = false; else { notDone = true; pathExists = false; for (int i=0; i<nodes.size(); i++) { if ((S[i]==0) && (T[0][i] < Integer.MAX_VALUE)) pathExists = true; } } } if (pathExists && pathPossible) { int n = endPosition; vecPath.add(new Integer(n)); n = T[1][endPosition]; while(n != startPosition) { vecPath.add(new Integer(n)); n = T[1][n]; } vecPath.add(new Integer(n)); for (int i=0; i<edges.size(); i++) { for (int j=0; j<(vecPath.size()-1); j++) { int l = ((Edge) edges.get(i)).getIdSource(); int m = ((Edge) edges.get(i)).getIdTarget(); if (((((Integer) vecPath.get(j)).intValue() == l) && (((Integer)vecPath.get(j+1)).intValue() == m)) || ((((Integer) vecPath.get(j)).intValue() == m) && (((Integer)vecPath.get(j+1)).intValue() == l))) { //((Edge) edges.get(i)).setLineColor( Color.blue ); //System.out.println(( edges.get(i))); Edge e=new Edge(); e=(Edge) edges.get(i); e.setSource(((Node)nodes.get(e.getIdSource()))); e.setTarget((Node)nodes.get(e.getIdTarget()));

path.add((Edge) edges.get(i)); System.out.println((Edge) edges.get(i)); } } } } else System.out.println("There is no path from node " + ((Node)nodes.get(startPosition)).getIdNode() + " to node " + ((Node)nodes.get(endPosition)).getIdNode()); return path; } }

Travail de Fin dEtudes / EHTP 2007

63

Gestion de flotte

Foctions GoogleMaps
function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(33.57944666666669, -7.626484999999999), 10, G_SATELLITE_TYPE); // Creation de l'icone icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png"; icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png"; icon.iconSize = new GSize(12, 20); icon.shadowSize = new GSize(22, 20); icon.iconAnchor = new GPoint(6, 20); icon.infoWindowAnchor = new GPoint(5, 1); } } // function create Marquer function createMarker(point,name,html,icon) { var marker = new GMarker(point, {icon:icon}); GEvent.addListener(marker, "click", function() { //html="<html><body><input type=text value=ff></body></html>" marker.openInfoWindowHtml(html); }); return marker; } // function Show point into Map from X,Y function showPoints(x,y,vehicule) { icon.infoWindowAnchor = new GPoint(5, 1); var point = new GLatLng(x, y); var marker = new createMarker(point," ",vehicule,icon); gmarkers.push(marker); bounds.extend(point); } function ShowPloyLines(x,y,vehicule) { var point = new GLatLng(x, y); points.push(point); bounds.extend(point); } function ShowPath(x1,y1,x2,y2) { var point1 = new GLatLng(x1, y1); var point2 = new GLatLng(x2, y3); points.push(point1); points.push(point2); bounds.extend(point1); bounds.extend(point2); }

Travail de Fin dEtudes / EHTP 2007

64

Vous aimerez peut-être aussi