Home

Method Summary

image

Contents

1. Field Detail utmMessage private UTMMessage utmMessage messageServiceLocator private com novasys wstest01 MessageService MessageServiceLocator messageServiceLocator messageServiceSoap private com novasys wstest01 MessageService MessageServiceSoap messageServiceSoap Constructor Detail ServerConnection public ServerConnection Les instances de MessageServiceLocator et MessageServiceSoap sont cr es avec les donn es appropri es Le client est pr t pour consommer le service Method Detail getData public UTMMessage getData throws java lang Exception Effectue l appel au service et r cup re le r sultat XML Le r sultat et ensuite pars pour la position de l utilisateur en longitude latitude Si les donn es sont trouv es elles sont transform es par transformToUTM et retourn es FrMain Window Return value UTMMessage contenant les coordonn es UTM de l utilisateur ou null Returns UTMMessage Throws java lang Exception Drakic Vladimir 40 45 HEVs d cembre 2006 Javadoc de Dispatcher transformToUTM private UTMMessage transformToUTM double lat double lon throws java lang Exception Cette m thode utilise les librairies JScience pour la transformation de coordonn es de la forme longitude latitude vers UTM Apr s la transformation le nouveau UTMMessage est retourn Return value Nouveau UTMMessage contenant les coordonn es UTM de l utilsiateur Parameters lat L
2. sinon l application ne va pas fonctionner Apache n accepte pas ses caract res Adaptation du code Il reste encore une tape faire pour qu on puisse exploiter le nouvel itin raire Dans la classe de configuration AppConfig il faut modifier les valeurs des variables UTM_DIFF_X et UTM_DIFF_Y Ces variables repr sentent la diff rence entre les vraies coordonn es UTM et les coordonn es utilis es pour l affichage de mouvement de Vutilisateur Comme le moniteur n a pas assez de pixels on va utiliser uniquement les parties inf rieures droites des deux coordonn es Cela ressemble le changement de l chelle car la taille est diminu e mais les proportions restent correctes Par exemple les coordonn es devant l cole sont 387021E et 5127510N Nous on va les traiter comme 21E et 510N Donc la diff rence est 387000 et 5127000 ce qu il faut saisir comme UTM_DIFF_X et UTM_DIFF_Y Dans les diff rents endroits les valeurs changent donc il ne faut pas oublier de les contr ler Drakic Vladimir 18 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher 58 public static int NOVASYS CONNECTION INTERVAL 5000 59 60 61 geneve 62 4 public static int UTM DIFF X 281000 63 public static int UTM_DIFF_Y 5120000 64 65 66 sierre 67 public static int VIM DIFF X 387000 68 public static int VIM DIFF 5127000 69 70 public static String UNITS DEG new String Il y a en
3. IL faut galement saisir les valeurs des attributs pour chaque obstacle Remplissez les valeurs de riskLevel typeObstac et message Dans message on met le texte qui va tre communiqu l utilisateur Important le num ro du segment dans laquelle se trouve l obstacle segmentNum doit tre correctement saisi Drakic Vladimir 15 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Layers E Obstacles E Segments Attributes Obstacles Vous pouvez sauvegarder votre travail et sortir de ArcMap Drakic Vladimir 16 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Cr ation d un itin raire dans Dispatcher Apr s la r alisation de l itin raire avec ArcG S on peut l int grer dans la structure de Vapplication Dispatcher D marrez Dispatcher Choisissez dans le menu Itin raire Cr er a partir de Shapefile la nouvelle fen tre va appara tre Saisissez le nom de l itin raire Largeur du passage est la longueur de la ligne de sortie qui dans cette version a la m me valeur dans chaque segment Si sa valeur est d finie comme plus grande que maxDistance elle va tre gal e cette derni re Image de l arri re plan est le fichier qui contient l image derri re l itin raire comme le plan de la r gion Dans Shapefile de l itin raire il faut choisir le fichier des segments cr avec ArcGIS La m me chose vaut pour le fichier des obstacles
4. 4 6 2 GeoTools Une des conditions pour l utilisation de Shapefile tait la possibilit de lire les valeurs dans les fichiers depuis mon application en Java Il est possible de cr er sa propre solution pour la lecture des fichiers de triplet Shapefile car sa structure et ses sp cifications sont ouvertes voir ESRI Shapefile Technical Description mais cela prendrait beaucoup de temps que je ne pouvait pas consacrer cette partie du projet Apr s avoir effectu des recherches sur l Internet j ai trouv qu une telle solution existe d j IL s agit de GeoTools Ce n est pas une application mais un ensemble de librairies Java qui offrent des m thodes Drakic Vladimir 36 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS conformes aux standards pour la manipulation des donn es g omatiques geospatial data comme par exemple l impl mentation de SIG Les librairies GeoTools impl mentent les sp cifications d OGC Open Geospatial Consortium et collaborent avec les projets GeoAPI et GeoWidgets GeoTools est d velopp sous la licence LGPL Gnu Lesser General Public License Les librairies GeoTools peuvent tre utilis es pour le d veloppement de notre propre logiciel SIG Dans le cadre de ce travail elles ne sont n cessaires que pour la lecture des fichiers Shapefile Pour la lecture des fichier Shapefile j ai cr la classe LoadFromShapeFile qui contient deux m thodes loadSegments et loadObs
5. BINSTALL DEFAULT IMAGE String Empty ait BioadMapFromFile mapFile File Bis endTime Def messageServiceSoap BEVIN MOVEMENT double 3 B amp drawFrom Screen pS1 Pointe BzoneNumber int messageServiceLocator BUTM DIFF X int 281000 WSpaintComponent g Graphics BzoneLetter char L 4 UTM DIFF Y int 5120000 RupdateSize Mes sage SEMCESCAR MessageServiceLocator a Bzoomin BUTMMessage g BzoomoOut BUTMMessage coords BMMessageServiceSoap 7 MvessageServiceLocator Dispatcher Suivi avec GPS Concernant le param trage du logiciel toutes les constantes et les valeurs par d faut sont regroup es dans la classe AppConfig sous la forme de variables statiques Parmi ces valeurs on peut galement trouver les fragments des instructions pour l utilisateur ce qui facilite l action de changement ventuel de la langue utilis e Globalement les valeurs ne sont presque jamais crites en dur Dans la plupart des cas elles se trouvent dans des variables qu on peut modifier facilement Ceci veut dire que dans les expressions on ne trouve pas les valeurs concr tes mais des variables d finies auparavant Avec cette strat gie l application reste facilement configurable De plus il est possible de configurer certains composants de l application dans les menus de la fen tre principale 4 2 Repr sentation dans le logiciel Une fois le concept d itin raire d fini tel que vu plu
6. Computation BcurrentPoint Point2D Double new Point2D Double previous Point Point2D Double new Point2D Double BBusersLine Line2D Double B8currentSegmeniN int Bangles Vector doublel BinObstacleTab boolean BoutOfBounds boolean 3m ovementFilter boolean s egmentDirection double 3m ovementDirection double Scomputation route Route Bnito BBE xitLine f aitline fcreateBound s BerifyMove currentPoint Point2D Double Infos MBExitLine P1 Point2D 7 ee ge HA Ce Segments ERexitLineReached ExitLine BBE xitLine exitLine chii BfobstacleBoundsReached Obstacle BRE xitLine exitLine Exi outOifSegmentBounds Boolean 7 BusersTurnAngle double calculateDirection angle double instruction Infos void calculate DirectionObstacle angle double instruction Infos obstacle Obs obstacles ra t computation L 0 route 1 V 1 Obstacle infos Line2D Double Route N 1 BBtype String Te Inf Bcoords Line2D Double new Line2D D Ename String i ns BLine2D Doul BriskLevel int Blength double message String message String Bpass Width double PV TT EN ES BouchedExitLine ExitLine i e double 45 route BtouchedObstacle Obstacle E currentSegmentN int 0 lt lt ee infos fturnAngle double 1 aaa
7. Passage au nouveau segment Message informatif envoy l utilisateur Si l utilisateur se trouve pr s d un obstacle Envoyer les instructions li es cet obstacle Si les bornes du segment ont t franchies Envoyer un avertissement et demander le retour a l int rieur des bornes Si V utilisateur ne va pas la bonne direction il s loigne du point final Avertir Calculer la bonne direction et communiquer la a l utilisateur Les instructions pour l utilisateur et les donn es li es a sa position courante sont plac es dans l instance de la classe Infos On y trouve des informations utiles comme sa position par rapport aux bornes et aux obstacles Les informations d Info peuvent tre lues et trait es par les autres classes de l application Concernant la liaison avec le reste de l application la classe Computation contient la m thode publique verifyMove qui effectue l algorithme de suivi Voyons maintenant les d tails de tous les cas trouv s dans l algorithme 4 5 1 Direction de mouvement Pendant l analyse la premi re question qui s est pos e tait comment savoir si Vutilisateur avance vers le point final ou s il s loigne A chaque pas d utilisateur on garde la position ancienne et la position courante ce qui donne la droite de direction de mouvement mais comment savoir si elle est valable J ai envisag plusieurs solutions certaines ne pouvant pas tre consid r es a cause
8. un probl me li au fichier wsdl cr par Novasys J ai passe la plupart de temps changer des emails avec monsieur Heydebrand de Novasys en essayant de corriger le probl me Apr s avoir parl avec lui on a conclu qu il faut que je vienne a Berne avec Mambo pour que il puisse le configurer 7 d cembre 2006 Toute la journ e j ai pass Berne Il y avait des probl mes avec la configuration de Mambo mais aussi de cot serveur et web service MessageService Monsieur Heydebrand a reconfigur Mambo et corrig les probl mes de serveur 8 d cembre 2006 Maintenant j ai des probl mes de caract re diff rent je n arrive pas r cup rer les fichiers XML contenant les coordonn es m me s il sont plac s sur le serveur Comme monsieur Heydebrand n est pas la aujourd hui j ai pass le reste du temps pour travailler sur le concept des fichiers shapefile d crivant l itin raire 9 et 10 d cembre 2006 weekend Apr s la recherche et le travail de toute la journ e j ai trouv pourquoi je ne peux pas r cup rer les fichiers XML En analysant les paquets TCP j ai vu que les donn es XML ont t envoy es mais elles contenaient des caract res non accept s par XML ce qui a provoqu le refus de donn es de cot parseur Je ne peux pas continuer de travailler sur cette partie avant que Novasys ne corrige cette erreur J ai crit un email Monsieur Heydebrand expliquant le probl me Concernant
9. vident que la m thode ne retourne pas les variables primitives mais une classe concue pour ce type de r sultat Encore une fois j ai laiss l espace pour le d veloppement futur de l application car on peut y placer d autres informations utiles R f rences Site de Apache Axis http ws apache org axis UNIVERSITE DE MARNE LA VALLEE Pr sentation du projet Axis http www igm univ mlv fr dr XPOSE2003 axis_seng 4 8 Aspect visuel de l application Selon le cahier des charges le logiciel de suivi Dispatcher n tait pas cens avoir une repr sentation graphique l exception de l affichage des instructions pour Vutilisateur Comme il s agit plut t d une librairie que d une solution compl te et comme l utilisateur final re oit des messages sonores mon client direct HEVs n a pas eu besoin de visualisation Au cours d une r union avec Monsieur Jean Luc Cochard le client final nous avons discute des fonctionnalit s du futur logiciel Monsieur Cochard m a propos d essayer de visualiser le parcours de l utilisateur puisqu il serait plus facile pour les autres de comprendre l application mais aussi pour me faciliter le d bogage du code Cette proposition est correcte car pendant le d veloppement du logiciel je me suis rendu compte qu il devient de plus en plus difficile de g rer tout sur la feuille et qu il y aurait plus de chances que j aie des erreurs inapercues par le fait q
10. wait Field Detail coords private java awt geom Line2D Double coords Coordonn es de ce segment ligne de segment positionNumber private int positionNumber Num ro du segment C est sa position dans la route maxTurnAngle private double maxTurnAngle Drakic Vladimir 29 45 HEVs d cembre 2006 Javadoc de Dispatcher L angle maximum permis qui forme le vecteur de mouvement de l utilisateur avec le vecteur allant jusqu au point final voir la documentation maxDistance private double maxDistance La distance maximale de la ligne de segment Utilis pour calculer les bornes et les sommets vertex du segment vertex1 private java awt geom Point2D Double vertexl Le premier point se trouvant maxDistance loign du milieu de la ligne de segment vertex2 private java awt geom Point2D Double vertex2 Le deuxi me point se trouvant maxDistance loign du milieu de la ligne de segment previousSegment private Segment previousSegment obstacles private Obstacle obstacles bounds private SegmentBounds bounds Les bornes du segment L utilisateur n est pas suivi dehors de la zone limit e par les bornes Les bornes forment deux quasi triangles a cause de lignes de sortie sym triques par rapport a la ligne de segment Les quasi triangles ont les sommets dans les vertex 1 et vertex2 exitLine2 private ExitLine exitLine2 Drakic Vladimir 30 45 HEVs d cembre 2006 Javadoc de
11. 2 days Wed 27 09 06 Thu 28 09 06 7 v Diagrammes de flux de donn es 1 day Thu 28 09 06 Thu 28 09 06 Etude de l appareil Mambo 1 day Fri 29 09 06 Fri 29 09 06 a Etude des logiciels SIG 4 days Mon 02 10 06 Thu 05 10 06 10 v bts de graphisme Java2D pour 4 days Tue 03 10 06 Fri 06 10 06 11 Pa EEN du cahier des 2 days Wed 25 10 06 Thu 26 10 06 charges 12 13 Iae Design 11 days Wed 25 10 06 Tue 07 11 06 11SS 14 TA Structuration de l application 1 day Wed 25 10 06 Wed 25 10 06 15 v Etude des systemes des 3 days Wed 25 10 06 Fri 27 10 06 coordonn es 16 17 Module de connexion 2 days Fri 27 10 06 Mon 30 10 06 18 Etude de fonctionnement du 2 days Fri 27 10 06 Mon 30 10 06 systeme Novasys 19 la Etude de transformation de 1 day Mon 30 10 06 Mon 30 10 06 donn es lat long gt UTM 20 Design de module de 1 day Mon 30 10 06 Mon 30 10 06 connection 21 F4 Module de calcul 7 days Tue 31 10 06 Tue 07 11 06 22 Ta Mod le math matique 5 days Tue 31 10 06 Sat 04 11 06 23 va Algorithme de suivi 5 days Thu 02 11 06 Tue 07 11 06 22SS 2 da 24 Diagramme de classes 2 days Sat 04 11 06 Sun 05 11 06 25 Module d affichage 1 day Wed 25 10 06 Wed 25 10 06 26 v Design de module d affichage 1 day Wed 25 10 06 Wed 25 10 06 27 v Module principal 1 day Wed 25 10 06 Wed 25 10 06 28 y Design de module principal 1 day Wed 25 10 06 Wed 25 10 06 29 30 31 Construction 43 days Fri 10 11 06 Mon 08 01 07 32 Jy Module de calcul 13 days Fri 10 11 06 Tue 28 11 06 21
12. 33 D veloppement d algorithme 12 days Fri 10 11 06 Mon 27 11 06 34 Fr d Saisie des donn es 10 days Mon 13 11 06 Tue 28 11 06 33SS 3 da 35 VA Tests 10 days Mon 13 11 06 Tue 28 11 06 33SS 3 da 36 Module de connection 8 days Mon 04 12 06 Wed 13 12 06 32 37 Construction de connection 7 days Mon 04 12 06 Tue 12 12 06 38 Pa Transformation lat long gt 3 days Tue 05 12 06 Thu 07 12 06 37SS 1 UTM avec GeoTools day 39 Tests 7 days Tue 05 12 06 Wed 13 12 06 37SS 1 da 40 Module d affichage 6 days Mon 13 11 06 Mon 20 11 06 32SS 41 v D veloppement 4 days Mon 13 11 06 Thu 16 11 06 42 v Tests 4 days Mon 13 11 06 Thu 16 11 06 41SS 43 Am lioration de l apparence 2 days Fri 17 11 06 Mon 20 11 06 41 44 FA Module principal 6 days Thu 07 12 06 Thu 14 12 06 45 if D veloppement 6 days Thu 07 12 06 Thu 14 12 06 46 a Tests 5 days Fri 08 12 06 Thu 14 12 06 45SS 1 da 47 48 VA Saisie de donn es r elles avec 3 days Fri 15 12 06 Tue 19 12 06 32 36 44 ArcView et Mambo 49 VA Tests de l application en entier 7 days Tue 19 12 06 Wed 27 12 06 ae 50 F4 Documentation tout au long de 7 days Thu 28 12 06 Mon 08 01 07 travail Project PlanningV10 Task Progress Summary External Tasks Deadline SL Date Tue 09 01 07 Split verereariareriar Milestone Project Summary Tu External Milestone Page 1 Dispatcher Suivi avec GPS 8 1 2 Calendrier de travail Semaine 1 25 29 septembre 2006 Recherche sur SIG Rendez vous avec David Discussion
13. 8 Aspect visuel de l application s sssssssssssusessesssdinsestesessciesdesdi it eess 40 4 8 1 Le graphisme en Java cviciceccccceu dec densedecdedenseetueeed ensesesteeteewads 41 4 8 2 Impl mentation de l affichage cccccccesccccesacccesccesevcces 41 4 8 3 Fen tre principale cessera sense 42 D TR a ee EEE etai ent 43 Il AVINA JES reee e E E E EE E E E E E EE EEEE EENE 43 5 2 Faiblesses de l application ssessssssssssecserssrcesesseecsessessessseeese 43 5 3 Non impl ment d veloppement futur 44 CONSO ed de ENEE S 45 7 R T T NCES in nes sesstaste cineinisanocabacdentiienmeeadatsacnts 46 8 ANNEXES ogc spet buena e ose ne eon seen ee redencseseueemoeeneonsoressoeereensean 47 8 1 PAMACATIONL EE essences 48 8 1 1 Planification GU tha Vallis ide desire erarnn sure resneneues 48 6 142 Calendrier de Travail in nes anni adrien eetes 49 8 2 Cahier GES CHAOS ee cales sonner Gene retest iat 56 8 3 Malwlel A WUMMSAUON sivcreccccccrevsevesdeseeiediecetvnseeseesedeesseiniensvesseresd 58 DAVAO ser weve eaten eerste capa ee ca eo ee ea a ae ae see es 59 Drakic Vladimir 3 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 1 Introduction Les technologies de l information et de la communication offrent des occasions multiples de cr er et d exploiter des applications qui permettent d am liorer le quotidien de certaines populations Dans ce sens la technologie Global
14. Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher e e Class ExitLine java lang Object L_java awt geom Line2D L_java awt geom Line2D Double L_dispatcher ExitLine All Implemented Interfaces java awt Shape java lang Cloneable public class ExitLine extends java awt geom Line2D Double Cette classe est utilis e pour repr senter les lignes de sortie d un segment Nested Class Summary Nested classes interfaces inherited from class java awt geom Line2D java awt geom Line2D Double java awt geom Line2D Float Field Summary icine private nextSegmentN int Si exitLinel c est le num ro du segment pr c dent Fields inherited from class java awt geom Line2D Double xl x2 yl y2 Constructor Summary ExitLine Cr ation d une nouvelle instance de ExitLine avec P1 0 0 et P2 0 0 comme les coordonn es nextSegmentN est initialis a 1 ExitLine ExitLine exitLine Constructeur par copie Drakic Vladimir 8 45 HEVs d cembre 2006 Javadoc de Dispatcher ExitLine ExitLine exitLine int nextSegmentN ExitLine java awt geom Point2D Pl java awt geom Point2D P2 int nextSegmentN Construction et initialisation de ExitLine partir des param tres Method Summary int getNextSegmentN Access method for the
15. Le principe est de comparer la position pr c dente avec la position courante Comme le r sultat du calcul le message appropri sera envoy vers le module principal Le message contient une des instructions stop tourner gauche ou droite un certain angle faire certaines actions devant l obstacle d pend du type d obstacle avancer ou pas de message Voici les cas possibles 1 L utilisateur s loigne trop de la ligne d crivant l itin raire la limite tant d finie auparavant R ponse stop tourner d un nombre de degr s 90 180 continuer vers le chemin 2 La personne se trouve devant un obstacle La r ponse d pendra du type d obstacle Par exemple devant le feu rouge il faut attendre R ponse stop l instruction sp cifique 3 Arriv e la fin de l itin raire R ponse fin de suivi 4 La personne se trouve sur l itin raire il n y a pas d obstacles R ponse continuer ou pas de message Module d affichage L affichage des instructions Le texte du message envoy par le module de calcul sera affiche ainsi qu un symbole graphique comme la fl che ou le signe de stop Professeur responsable Etudiant David Russo Vladimir Drakic Drakic Vladimir 57 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 8 3 Manuel d utilisation Drakic Vladimir 58 59 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Manuel d utilisation de Dispatcher Dra
16. Route turnAngleUnit private double turnAngleUnit Unit de mouvement du message communiqu l utilisateur degr s currentSegmentN private int currentSegmentN Le num ro du segment courant segments private Segment segments Les segments de cet itin raire Constructor Detail Route public Route java lang String name double turnAngleUnit double passWidth Cr ation d une instance de Route Les segments peuvent tre rajouter apr s l instanciation Parameters name Nom de cette Route turnAngleUnit Valeur de turnAngleUnit passWidth Largeur du passage Route public Route Since 2006 Method Detail getName Drakic Vladimir 23 45 HEVs d cembre 2006 Javadoc de Dispatcher public java lang String getName Access method for the name property Returns the current value of the name property setName public void setName java lang String aName Sets the value of the name property Parameters aName the new value of the name property getLength public double getLength Access method for the length property Returns the current value of the length property setLength public void setLength double aLength Sets the value of the length property Parameters aLength the new value of the length property getPass Width public double getPassWidth Access method for the pass Width property Returns the current value of the pass Width property setPassWi
17. Travail 23 24 novembre 2006 Absence a cause de voyage au Mont n gro Je vais travailler pendant les weekends afin de suppl er ce temps Semaine 10 27 novembre 2006 D boguage et transformation 28 novembre 2006 D boguage et transformation 29 novembre 2006 D but de Connection 30 novembre 2006 D bogage de l algorithme de suivi classe Computation Ajout des fonctionnalit s comme les obstacles Documentation de nouvelles fonctionnalit s et la correction de l ancienne documentation 1 d cembre 2006 Travail 2 et 3 d cembre 2006 weekend Transformation de coordonn es de pixels utilis s jusqu maintenant vers UTM des environnes de l HEVs l endroit o je teste L affichage devrait galement tre modifi Tests et d bogage avec les nouvelles coordonn es Documentation Javadoc Semaine 11 Drakic Vladimir 52 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4 d cembre 2006 D but du travail sur la connexion avec Novasys Etude de consommation de web service depuis Java Probl mes rencontr s pendant la cr ation du client Recherche sur Internet 5 d cembre 2006 Trouv qu il faut utiliser Apache Axis pour g n rer les fichier Java Installation et utilisation de Axis Rendez vous avec David Il m a aid de cr er les fichiers client pour un web service quelconque Toujours je n arrive pas appeler le service de Novasys 6 d cembre 2006 Trouv
18. comme argument Les objets d un fichier Shapefile ont leurs quivalents dans la classe Features de GeoTools qui repr sentent les segments cr s dans ArcGIS Pour chaque Feature du fichier on sort des attributs attendus pour le fichier de segments ce sont positionNumber maxTurnAngle qu on utilise pour cr er une nouvelle instance de Segment Une fois tous les segments cr s on les associe Route donn comme l argument loadSegments d clenche l exception si les attributs attendus ne sont pas trouv s La m me chose vaut dans le cas o le nom de Feature n est pas Segment Parameters segment sFile Fichier Shapefile contenant les segments route Route qui va contenir les segments charg s Throws java lang Exception loadObstacles static void loadObstacles File obstaclesFile Route route throws java lang Exception Essaie de charger le fichier donn comme argument Les objets d un fichier Shapefile ont leurs quivalents dans la classe Features de GeoTools qui repr sentent les segments cr s dans ArcGIS Pour chaque Feature du fichier on sort des attributs attendus pour le fichier d obstacles ce sont riskLevel typeObstacle qu on utilise pour cr er une nouvelle instance de Obstacle Une fois tous les obstacles cr s on les associe Route donn comme l argument loadObstacles d clenche l exception si les attributs attendus ne sont pas trouv s La m me chose vaut dans le cas o l
19. de leur Drakic Vladimir 27 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS complexit La solution retenue qui au m me temps garde une certaine simplicit est de mesurer l angle form par la ligne de segment et par la droite de mouvement de l utilisateur Si l angle est plus grand que la valeur pr vue alors ce dernier ne marche pas vers la bonne direction Contr le par rapport la ligne de segment gt utilisateur y angle mesur La solution semble bonne mais est aussi r trograde dans un sens car on cherche la direction par rapport aux points ant rieurs au lieu de se rep rer vers le point final ce qui serait plus logique et plus pr cis Heureusement il est possible de r soudre ce probl me tout en gardant l utilisation de l angle on cherche l angle entre la droite de mouvement et de la droite d termin e par le point final et le point de position de l utilisateur Une fois l angle trouv le principe reste le m me que pour la premi re solution comparaison avec la valeur pr d finie De cette mani re on s oriente toujours par rapport a l arriv e ce qui donne une meilleure pr cision Drakic Vladimir 28 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Contr le par rapport au point d arriv e gt utilisateur y angle mesur Maintenant on peut voir comment trouver si la direction de mouvement est valide La meilleure fa on de r soudre ce probl me
20. du travail sur le rapport Le travail va durer jusqu la fin de p riode de temps pr vue pour le TD S il reste du temps je vais am liorer est d boguer le code 21 d cembre 2006 9 janvier 2007 Travail sur le rapport D boguage Drakic Vladimir 55 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 8 2 Cahier des charges Travail de dipl me de l ann e scolaire 2006 2007 Cahier des charges Description IL s agit d une application qui servira aider aux personnes handicap es malvoyantes la premi re place de traverser un itin raire critique se trouvant sur leur chemin L utilisateur sera quip d un t l phone portable sp cial comprenant un r cepteur GPS l appareil MAMBO produit par Falcom L itin raire que l utilisateur va prendre ainsi que les obstacles seront saisis en dur dans un fichier du format Shapefile en utilisant un syst me des coordonn es standard et sous la forme vectorielle Quand l utilisateur commence marcher du point de d part vers son point d arriv e son portable envoie en permanence sa position vers l application qui sera capable de suivre son avancement S il s approche un obstacle le logiciel va afficher un avertissement et une instruction pour d passer l obstacle L op rateur qui se trouve devant l ordinateur doit communiquer le message l utilisateur Le logiciel va galement contr ler si l utilisateur se trouve toujours sur le
21. ent les lignes de sortie les sommets des triangles le point le plus loign et les bornes du segment A chaque c t de la ligne de l itin raire les bornes sont cr es de la facon suivante la premi re ligne va de un bout de la ligne d entr e exitLine1 jusqu au sommet de triangle et de sommet jusqu au bout de la ligne de sortie exitLine2 et la m me chose de l autre c t ExitLine Les zones de sortie sont repr sent es par deux lignes ayant le centre au d but et a la fin de la ligne de segment La ligne de sortie entre deux segments est cr e de la fa on suivante les deux lignes des segments sont consid r es comme deux vecteurs ayant l origine commune D abord l angle form par ces deux vecteurs est calcul La ligne qu on cherche se trouve sur la droite bissectrice de cet angle On trouve la droite bissectrice A la fin chaque c t du point d origine on trouve un point sur la bissectrice loign de passWidth depuis l origine La ligne d termin e par ces deux point est une ligne de sortie exitLine Drakic Vladimir 15 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS bissectrice Ils nous restent deux cas sp ciaux qui sont les cas de figures o il s agit soit du premier soit du dernier segment Pour le premier segment on cr e exitLinel comme la ligne perpendiculaire la ligne de segment et l on n emploie pas la m thode expliqu e ci dessus Pour le dernier
22. g n ral et sur SIG Etude de SIG et lecture des documents concernant SIG Cr ation d un planning g n ral Semaine 2 2 6 octobre 2006 Etude de SIG Recherche et tests des logiciels et des outils SIG JShape GeoTools ArcView FGis Conception de l interface de l application Recherche concernant les possibilit s de la repr sentation graphique mappe itin raire et obstacles Etude et tests de Java 2D D veloppement du module graphique avec la possibilit de zooming Rendez vous avec David Mauvaise compr hension en fait il ne faut pas cr er le module graphique repr sentant l utilisateur sur son itin raire car op rateur n en a pas besoin Le travail de 4 jours 100 est annul Semaine 3 9 13 octobre 2006 Absence pour cause de maladie Semaine 4 16 20 octobre 2006 Absence pour cause de maladie Semaine 5 23 24octobre 2006 Absence a cause de maladie 25 octobre 2006 Cahier des charges crit et envoy a David Etude des diff rents syst mes de coordonn es et des projections UTM et longitude latitude 26 octobre 2006 Rendez vous avec David Lecture des tutoriels et utilisation du logiciel ArcView pour cr er des fichiers Shapefile Lecture de ces fichiers a partir de java avec GeoTools Pr paration de rendez vous avec Me Cochard 27 octobre 2006 Rendez vous avec Me Cochard a Bern Discussion autour du projet et la repr sentation d un itin raire dans l appl
23. gt BMoutOfSegmentBounds boolean Bhoute EN toute 1 BBusersLine Line2D Double BRoute name String turnAngleUnit c ue AppConfig TA oadRoute WBinfos String Vous tes au point de d part msg String MSG AT START Stri Vous int de d part ioie Badd String MSG AT END String Vous tes arriv la fin de l itin raire Sclearinfos MSG OK String Continuez 4 MSG STOP String Stop connection MSG NEWSEG String Nouveau segment MSG OUTOFBOUNDS String Vous tes en dehors de limites Retour CG ii MSG WRONGDIR String Vous n allez pas dans la bonne direction display Sve cone cron MSG NEAROBSTACLE String Vous vous trouvez pres d un obstacle FA BNOVASYS HOST String 212 90 209 178 K BiServerConnection BENOVASYS MESSAGESERVICE PATH String Mess ageService Mess a MapDisplay i EE einat UTME sg I NOVASYS XMLNAMESPACE String http 192 168 252 21 MessageSer D n frans form ToUTM lat double lon d BNOVASYS MESSAGESERVICE GETMESSAGE String GetMessage D aie QUE 7 BBNOVASYS LOGIN CUSTOMER String Bucher Suter s BNovasys LOGIN IMEI String 352021009295064 F UTMM essage BROUTE TURNANGLEUNIT double 45 BvapDisplay n KERRAN essage BINSTALL ROUTES PATH String routes BvapDisplay route Route max coords Point2D Dot INSTALL IMAGES PATH String Images Eficreate AndScale en Bs peed double
24. l itin raire j ai utilis Mambo pour la prise des coordonn es de chemin devant l cole et je les ai v rifi es avec Google maps J ai trouv que les coordonn es envoy es par l appareil ne sont pas toujours fiables il y a souvent de d calage de quelques m tres mais galement plus rarement de plusieurs dizaines de m tres Semaine 12 Drakic Vladimir 53 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 11 d cembre 2006 J ai laiss cot la connexion avec Novasys et j ai commenc travailler sur la partie chargement des donnes partir des fichiers Shapefile Cette t che se montre beaucoup plus complexe que j ai pr vu dans mon planning Outre de rajout des nouvelles classes j ai du modifier certaines classes existantes J ai galement d couvert certains probl mes avec les classes existantes que j ai corrig s 12 d cembre 2006 Toujours le travail sur le chargement des donn es J ai ajout les fonctionnalit s de cr ation d une nouvelle route partir des fichiers Shapefile et des donn es saisies et de chargement d une route existante Il me reste toujours du travail pour cette partie 13 d cembre 2006 Fin du travail sur le chargement de donn es D bogage et tests de chargement Correction des problemes connus li s a l affichage et zooming Les nouveaux probl mes sont apparus J ai chang l origine du syst me de coordonn es et maintenant j ai les probl
25. mes avec l affichage du point cliqu avec la souris 14 d cembre 2006 Finalement le probleme avec la souris est r solu Je n ai toujours pas r ussi a r soudre le probleme avec le zoom J ai chang la fen tre principale et j ai am lior l interface 15 d cembre 2006 J ai repris le travail sur la connexion avec Novasys Cette fois elle marche et j ai r ussi a lire des coordonn es Maintenant le probleme est de faire du parsing du fichier XML recu J ai fait des recherches sur les parseurs DOM e SAX et j ai fait des tests avec les exemples que j ai trouv s sur l Internet 17 d cembre 2006 dimache La connexion et la lecture des coordonn es depuis le fichier XML sont finies Comme le fichier est assez petit au lieu d utiliser un parseur je l ai transform en string et j ai cherche les coordonn es avec les m thodes de la classe String Semaine 12 18 d cembre 2006 Drakic Vladimir 54 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Comme il n y avait pas beaucoup de temps pour effectuer les tests avant quand j ai commencer les test aujourd hui j ai trouve quelque bogues graves J ai pass toute la journ e en essayant de les corriger 19 d cembre 2006 Toujours la correction des bogues Ceux que j ai trouv s j ai corrig mais je ne peux plus tester et corriger car je dois absolument commencer travailler sur la documentation 20 d cembre 2006 D but
26. nextSegmentN property void setNextSegmentN int aNextSegmentN Sets the value of the nextSegmentN property Methods inherited from class java awt geom Line2D Double getBounds2D getPl getP2 getXl getX2 getYl getY2 setLine Methods inherited from class java awt geom Line2D clone contains contains contains contains getBounds getPathIterator getPathIterator intersects intersects intersectsLine intersectsLine linesIntersect ptLineDist ptLineDist ptLineDist ptLineDistSq ptLineDistSgq ptLineDistSq ptSegDist ptSegDist ptSegDist ptSegDistSq ptSegDistSq ptSegDistSq relativeCCW relativeCCW relativeCCW setLine setLine Methods inherited from class java lang Object equals finalize getClass hashCode notify notifyAll toString wait wait wait Field Detail nextSegmentN private int nextSegmentN Si exitLinel c est le num ro du segment pr c dent Si exitLine2 c est le num ro du segment prochain Constructor Detail ExitLine public ExitLine ExitLine exitLine int nextSegmentN Parameters Drakic Vladimir 9 45 HEVs d cembre 2006 Javadoc de Dispatcher exitLine nextSegmentN ExitLine public ExitLine ExitLine exitLine Constructeur par copie Parameters exitLine ExitLine public ExitLine java awt geom Point2D Pl java awt geom Point2D P2 int nextSegmentN Construction et initialisation de ExitLine partir des param tres
27. outil Apache Axis ou seulement Axis qui automatise le processus de l exploitation d un service web A partir de fichier WSDL Axis va cr er toutes les classes Java de c t client n cessaires la consommation de service Apache Axis est en fait un package Java utilis pour la cr ation de services web s rialisation d s rialisation des classes Java est d outils diff rents des services web Axis est a la fois un environnement d h bergement de services web et un toolkit complet de d veloppement pour la cr ation de services et l acc s a des services tiers http www igm univ mlv fr dr XPOSE2003 axis_seng L outil que j ai utilis pour cr er des classes Java s appelle wsdl2java tandis que pour l op ration inverse on emploie java2wsdl Parmi les classes cr es on en utilise que deux directement dans le code les autres tant appel es int rieurement par ces deux classes La classe MessageServiceLocator s occupe de la connexion avec MessageService et MessageServiceSoap est utilis e comme Vinterface vers le service Maintenant on peut appeler les m thodes de service web comme une m thode de MessageServiceSoap en passant comme des arguments le nom de l utilisateur et le mot de passe IMEI de Mambo Le r sultat de l appel de la m thode getMessage est une instance de la classe avec long nom GetMessageResponseGetMessageResult R cup ration des coordonn es Comme la r ponse attendue est en forma
28. partie Sous la Synth se sont d crits les avantages et les d savantages de l application et enfin la Conclusion qui offre un bilan de ce travail de dipl me Le cahier des charges le manuel d utilisation de l application et la documentation Javadoc sont disponibles en annexe Drakic Vladimir 4 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 2 Cadrage du projet 2 1 Parties prenantes Les parties prenantes du projet sont CO Institution Fonction dans le projet Mandant et professeur Prof David Russo HEVs responsable Client final et expert lors Monsieur Jean Luc Cochard Bucher amp Suter AG de la d fense du travail de diplome R cup ration des coordonn es de l appareil Monsieur Nestor von Heydebrand Novasys AG Mambo l aide du service web Configuration de l appareil Vladimir Drakic HEVs R alisation du projet 2 2 Description du projet Ce travail de dipl me a pour objectif de cr er un logiciel destin aux personnes malvoyantes Ce logiciel doit permettre de guider une personne travers un itin raire qu elle ne conna t pas l aide d un appareil portable Guider signifie que le logiciel analyse le mouvement de la personne et lui envoie des messages concernant sa position Ces messages aideront l utilisateur a s orienter et a parcourir un itin raire en d passant tous les obstacles qui pourraient se pr senter a lui L itin raire peut se trouver sur un
29. probl mes sauf le temps de travail mais j ai voulu viter d alourdir l application en rajoutant des l ments non obligatoires vu qu il n y a pas assez de temps imparti pour essayer plusieurs solutions et de trouver la meilleure parmi elles et vu qu il s agit d une premi re version et qu il est donc pr f rable d avoir le projet en entier fini que d avoir des d tails parfaits dans une application qui ne marche pas Cercle comme la zone de sortie du segment zones de l entr e sortie du segment lignes de segment Drakic Vladimir 12 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS En accord avec le professeur Russo avec lequel j ai chang des id es concernant la repr sentation d un itin raire ou de son unit principale segment nous avons identifi que la forme rectangulaire est dans notre cas id ale l axe au milieu du rectangle est la ligne du segment chemin les deux c t s les plus longs sont les bornes et les deux c t s restants symbolisent les lignes de sortie du segment La solution est assez l g re en usage des ressources les calculs sont simplifi s et on vite le probl me des zones sp ciales d di es aux liaisons des segments Cette forme de repr sentation du segment semblait sur le moment tre la solution d finitive Segments de forme rectangulaire Une fois la forme du segment d cid e je me suis pench sur l analyse de sc narios possib
30. segment on trouve la premi re ligne de sortie et on rajoute a la fin exitLine2 perpendiculaire a la ligne de segment Pourquoi utilise t on cette solution Pour la plupart du temps les lignes de sorties taient toutes impl ment es comme perpendiculaires a la ligne de segment ce qui est une solution plus simple Malheureusement dans beaucoup de situations cette approche ne donne pas des bons r sultats ce qui est visible sur les images a la page suivante Drakic Vladimir 16 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Itin raire avec la ligne de sortie Ennery ai la ligne de sortie sur la bissectrice de l angle perpendiculaire Concernant l impl mentation pour trouver l angle entre deux vecteurs on utilise la m me proc dure que pour la direction de mouvement dans la classe Computation voir chapitre Algorithme de suivi et on divise l angle trouv par deux Ensuite on cherche la pente k2 de la bissectrice et on utilise la m me m thode que dans calculateVertices pour trouver les points d terminant la ligne de sortie ExitLine h rite de la classe Line2D Double et part des coordonn es contient quelques informations suppl mentaires comme le num ro du segment ses getters et setters et ses propres constructeurs SegmentBounds Cette classe repr sente les bornes d un segment ou autrement dit les c t s de notre quasi rhomboide ou ceux des triangles autour de la ligne de s
31. serait le calcul vectoriel donc on va traiter la ligne de mouvement et l autre ligne significative comme les deux vecteurs u et v ayant l origine la position courante de l utilisateur Ces vecteurs forment l angle recherch a Drakic Vladimir 29 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS ee a angle recherch o origine la position courante de l utilisateur On voit que u est d termin par le point pr c dent de l utilisateur et v par le point final D abord il faut trouver le produit scalaire de deux vecteurs UY U V FU Vy Ensuite on cherche l intensit de chaque des deux vecteurs p yu u p yve tyy Maintenant on utilise l autre formule de produit scalaire afin de trouver langle a _ UY Ug u V COSA gt COSA r Drakic Vladimir 30 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Comme on conna t tous le composants de cette quation le calcul de a devient HV EU arccos u u V2 v Quand a est connu il est possible de le comparer avec l angle pr d fini et dans le cas o est plus grand conclure que l utilisateur ne va pas dans la bonne direction 4 5 2 Redirection de l utilisateur S il s agissait ici d un programme de guidage pour des machines informatis es le probleme de la redirection serait d j r solu on donnerait simplement l instruction l appareil de tourner de a degr s pr cis ment et
32. une meilleure pr cision de l appareil GPS Filtre de mouvement fait partie de ces am liorations On peut bien voir le probl me de l impr cision quand l utilisateur reste sans bouger sur la m me position Comme les coordonn es de sa position ne seront jamais exactes les donn es envoy es par GPS vont montrer les petits mouvements autour de sa position ce qui va donner l impression que la personne continue de marcher de fa on incompr hensible Pour rem dier ce probl me j ai rajout un contr le effectu avant les autres calculs de mouvement minimal Disons que la valeur minimale de mouvement est de 2 m tres Alors on va mesurer la longueur de la ligne entre le point pr c dent et le point courant ligne de mouvement et si elle est inf rieure a 2 m tres le mouvement n est pas consid r comme valable et la m thode verifyMove fini son ex cution sans effectuer les autres calculs de mouvement Le m me principe est appliqu pour la valeur de pas maximal Si la distance entre deux points est plus grande que la valeur maximale permise le mouvement n est pas pris en compte Les valeurs des filtres de mouvement peuvent tre configur es dans le menu Options de la fen tre principale Drakic Vladimir 34 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4 6 Logiciels externes utilis s 4 6 1 ArcGIS Une des premi res fonctionnalit s demand e par le client tait la compatibilit avec SI
33. vident que la fen tre principale tient un r le central dans le logiciel Depuis cette fen tre on peut galement ouvrir ou cr er un nouvel itin raire route On y trouve le param trage de l application et de l itin raire Drakic Vladimir 42 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 5 Synth se 5 1 Avantages Dispatcher offre les avantages suivants Possibilit d utiliser la classe Obstacle pour d autres r les utiles Tout au long du d veloppement du logiciel j ai veill a ce que le code soit r utilisable Pour cette raison le code est dans la mesure du possible structur de mani re uniforme Ceci facilitera la compr hension du code a des futurs d veloppeurs de l application et permettra une int gration plus ais e des composants Pensant au d veloppement futur de logiciel j ai galement cr une partie de la documentation sous le standard Javadoc Celle ci offre une description des l ments Java de l application destin e sp cifiquement aux d veloppeurs L application permet de configurer la plupart de ses l ments La quasi totalit des expressions n utilise pas des valeurs concr tes en dur mais des variables qui peuvent tre modifi es et configur es dans un endroit dans le code l aide des menus ou dans les fichiers de configuration Du cot de travail sur le projet je trouve que le fait de travailler seul sur un projet de longue dur e apport une ex
34. 06 Dispatcher Suivi avec GPS Diff rences entre l ellipso de et le g o de P le mord 10m Ellipsoide approximation On math matique du g cide Suns CL Dessert Jab be cane Dies al Le syst me de projection L espace g ographique est un espace courbe mat rialis par l ellipso de de r f rence du g o de Pour passer de l ellipso de une carte dessin e sur un plan il est important d tablir une correspondance la plus fid le possible entre les points de l ellipso de et ceux du plan Ce syst me de correspondance s appelle le syst me de projection http www unites uqam ca Drakic Vladimir 23 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Projection cylindrique On projette l ellipso de sur un cylindre qui l englobe Celui ci peut tre tangent au grand cercle ou s cant en deux cercles Puis on d roule le cylindre pour obtenir la carte Surface cylindrique WN INT SLT GA Exemples de projection cylindrique Projection de Mercator conforme Projection de Peters quivalente Projection de Robinson pseudo cylindrique aphylactique Projection UTM aussi appel e Gauss Kruger conforme http fr wikipedia org Projection UTM Universal Transverse Mercator La Transverse universelle de Mercator en anglais Universal Transverse Mercator ou UTM est un type de projection conforme de la surface de la Terre Cette projection est une projection cylind
35. 120 150 180 ue hip ssf Mes beles col Voici les d finitions de la longitude et de la latitude selon Wikipedia Latitude La latitude est une mesure angulaire s tendant de 0 l quateur a 90 aux p les C est la distance d un lieu l quateur mesur e en degr s sur le m ridien La latitude est l angle que fait la normale l ellipso de de r f rence avec le plan quatorial C est la latitude de la plupart des cartes http fr wikipedia org Longitude Tous les points de m me longitude appartiennent une ligne pousant la courbure terrestre coupant angle droit l quateur et reliant le p le Nord au p le Sud cette ligne est appel e m ridien la diff rence de la latitude position nord sud qui b n ficie de l quateur et des p les comme r f rences aucune r f rence naturelle n existe pour la longitude La longitude g n ralement not e est donc une mesure angulaire sur 360 par rapport un m ridien de r f rence avec une tendue de 180 180 ou 180 Est 180 Ouest http fr wikipedia org Drakic Vladimir 21 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4 4 2 UTM Au d but du projet pendant la phase d analyse j ai consacr une bonne partie de temps a la recherche et a l tude des syst mes de coordonn es et des fondements de la cartographie En fait j apprenais tout au long du travail car toute la probl matique de la navigation fai
36. 2 amp E f E 387000 N 5127530 El Connexion inactive Drakic Vladimir 3 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher 1 Console d affichage des messages Dans cet endroit les instructions et les messages pour l utilisateur randonneur sont affich s Les messages sortent dans la console de fa on continue Si le nombre de messages d passe l hauteur de la console la barre qui permet le d filement scrolling va appara tre 2 Panneau de l affichage du graphisme L aspect graphique de Dispatcher est r alis dans ce panneau Nous pouvons voir les segments de l itin raire affich s L image de l itin raire et des l ments qui le forment sont affich s de mani re qu ils restent fid les aux proportions de l original Pour satisfaire cette contrainte le changement de l chelle est appliqu aux coordonn es de l itin raire Chaque segment est entour par ses bornes de couleur rouges La ligne de segment est verte tandis que les lignes de sortie sont jaunes Le suivi du d placement de l utilisateur est r alis en affichant un trait noir pour chaque mouvement Les lignes oranges jaunes d montrent toutes les directions possibles pouvant tre propos es l utilisateur Celle de couleur pourpre repr sente la ligne la plus proche au point d arriv e et sa direction sera choisie comme la meilleure proposition pour utilisateur Utilisa
37. 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class SegmentBounds java lang Object L dispatcher SegmentBounds public class SegmentBounds extends java lang Object D Field Summary private double approachLimit Si la limite d approchement est d pass e l utilisateur doit tre r dirig private coords java awt geom Line2D Double Constructor Summary SegmentBounds SegmentBounds java awt geom Line2D Double coords double approachLimit SegmentBounds SegmentBounds segmentBounds Method Summary double getApproachLimit Access method for the approachLimit property java awt geom Line2D Double getCoords Access method for the coords property void setApproachLimit double aApproachLimit Sets the value of the approachLimit property void setCoords java awt geom Line2D Double aCoords Sets the value of the coords property Drakic Vladimir 36 45 HEVs d cembre 2006 Javadoc de Dispatcher Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait wait coords private java awt geom Line2D Double coords approachLimit private double approachLimit Si la limite d approchement est d p
38. Ce syst me exige des op rations math matiques complexes et connaissance d taill e de la cartographie pour le calcul des distances entre des points sur la carte ce qui est indispensable pour ce type de l application Pour les calculs j ai d cid d utiliser la projection UTM Universal Transverse Mercator qui est le plus souvent utilis avec les appareils GPS La cons quence est que les coordonn es longitude latitude envoy es par Mambo doivent tre transform es en UTM 4 4 1 Syst me longitude latitude Ce syst me cr par Eratosth ne de Cyr ne est le syst me le plus utilis pour repr senter une position g ographique Les deux composants sont mesur s en degr s et on utilise plusieurs formats d criture Le plus connu a la forme degr s minutes secondes Pour tre capable d effectuer des calculs on transforme les minutes et les secondes en format d cimal par exemple 34 563 L autre format utilise par les appareils GPS donne s par ment les degr s et les minutes avec la division d cimale de secondes 28 15 345 La longitude repr sente l endroit sur la Terre a l est ou a l ouest de m ridien tandis que latitude d crit la position au nord ou au sud de l quateur Drakic Vladimir 20 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS The World 180 150 120 0 30 lt am d 15 J be Le ee N aT Taa O ri SEnce Jones Dedgn mie 1445 180 150 120 30 30
39. Dispatcher S il ne s agit pas du premier segment la ligne de sortie exitLinel se trouve sur la bissectrice de l angle form par le ce segment et le segment pr c dent S il s agit du premier dernier segment la premi re deuxi me ligne de sortie est perpendiculaire la ligne de segment La longueur de chaque exitLine est la valeur de pass Width exitLinel private ExitLine exitLinel S il ne s agit pas du premier segment la ligne de sortie exitLinel se trouve sur la bissectrice de l angle form par le ce segment et le segment pr c dent S il s agit du premier dernier segment la premi re deuxi me ligne de sortie est perpendiculaire a la ligne de segment La longueur de chaque exitLine est la valeur de pass Width Constructor Detail Segment public Segment java awt geom Line2D Double coords int positionNumber int totalSegments double maxDistance double maxTurnAngle double passWidth Segment previousSegment Construction et initialisation de Segment partir des param tres Assure le contr le de la taille de maxDistance Les autres l ments sont cr s avec calculateExitLine et calculate Vertices Parameters coords Coordonn es de la ligne de ce segment positionNumber Le num ro de position du segment totalSegments Nombre total de segments maxDistance Distance maximale de l loignement de la ligne du segment Utilis pour le calcul de sommets vertex et des bornes du segmen
40. Etudiant Vladimir Drakic Professeur David Russo Dispatcher suivi avec GPS Fili re informatique de gestion Dipl me 2005 2006 E HEVs Hes haute cole valaisanne hochschule wallis Dispatcher Suivi avec GPS Remerciements Monsieur Nestor von Heydebrand Product Manager Tracking de l entreprise Novasys pour sa disponibilit et son aide r p t e pendant le d veloppement du module de connexion Monsieur Jean Luc Cochard Sales Director France Belgium North and West Africa de l entreprise Bucher amp Suter pour m avoir d di son temps lors de la phase de d finition des besoins Professeur David Russo de l HEVs pour m avoir guid et conseill tout au long de ce travail Drakic Vladimir 1 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Table des mati res AVVO RON E e e E E 4 2 Cadrage du projet sesessosesreresossereroroeseseessseorereroeesee 5 2 1 Parties Dr hantes essais mean mir Rae 5 2 2 Description du projeti sessssssccscrssicsscssssscssssrccissirssciserroreossssissinss 5 2 3 Conditions et contraintes de projet ssssssssesscessessssssesscossessees 7 DEAR ho a ne 8 3 1 Calendrier et planification du travail 8 3 2 Technologies H LIS ES 222 5 4 these dise en eet issues 8 4 D veloppements seu tuent unseen reneorvenstineeeres 9 4 1 Structure de l application nnshstiedatienrntenteetess 9 4 2 Repr sentation dans l
41. G Cela signifie que la repr sentation informatique de l itin raire doit tre conforme aux principes de SIG l ments pr sentation etc et que la possibilit de rajout des nouveaux itin raires et des composants doit tre offerte pour le d veloppement futur de l application En fait la compatibilit avec les formats populaires de SIG satisferait la plupart de ces exigences D s les premiers jours de travail je me suis mis la recherche et l tude des logiciels existants J ai test les logiciels SIG comme Mapinfo JShape et OziExplorer qui affichent les cartes et qui permettent leur modification visuelle Certains parmi eux sont gratuits ou libres comme JShape et ceux qui sont payants ne repr sentent pas la plus haute classe et ils ne sont pas tr s chers Certains parmi eux sont de bonne qualit et convenaient bien pour mes besoins plut t modestes Le seul logiciel que j ai identifi comme le haut de gamme dont le prix est assez lev tait le ArcGIS de ESRI Ce paquet offre les applications n cessaires et suffisantes pour la cr ation des SIG et peut tre utilis pour la r alisation des tr s grands projets Normalement je n avais pas de besoin d une application d une telle complexit car il tait pr vu que je cr e un itin raire simple avec quelques types d objets Ce qui m a attir vers cette application est que j ai trouv qu elle repr sente le logiciel le plus r pandu p
42. LD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 26 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class Segment java lang Object L dispatcher Segment public class Segment extends java lang Object Repr sente le segment de l itin raire sous la forme d une ligne droite Un segment contient deux lignes d entr e et de sortie la ligne de l itin raire et les bornes Les bornes forment avec la ligne de segment un quasi triangle isoc le chaque cot de la ligne Les sommets des triangles hauteurs sont repr sent s avec vertex1 et vertex2 e Field Summary private SegmentBounds bounds Les bornes du segment private coords java awt geom Line2D Double Coordonn es de ce segment ligne de segment private ExitLine exitLinel S il ne s agit pas du premier segment la ligne de sortie exitLinel se trouve sur la bissectrice de l angle form par le ce segment et le segment pr c dent private ExitLine exitLine2 S il ne s agit pas du premier segment la ligne de sortie exitLinel se trouve sur la bissectrice de l angle form par le ce segment et le segment pr c dent private double maxDistance La distance maximale de la ligne de segment private double maxTurnAngle L angle maximum per
43. Number char zoneletter Cr e une nouvelle instance partir des param tres Drakic Vladimir 42 45 HEVs d cembre 2006 Javadoc de Dispatcher Method Summary char getZoneLetter Access method for the zoneLetter property int getZoneNumber Access method for the zoneNumber property void setZoneLetter char aZoneLetter Sets the value of the zoneLetter property void setZoneNumber int aZoneNumber Sets the value of the zoneNumber property Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait wait Field Detail coords private java awt geom Point2D Double coords Coordonn es UTM recues de l appareil GPS speed private double speed La vitesse de mouvement calcul e sur le serveur Novasys Pas utilis dans cette version sendTime private java util Date sendTime Le temps o la position a t envoy e de l appareil GPS vers le serveur Novasys Pas utilis dans cette version zoneNumber private int zoneNumber Num ro de la zone UTM Drakic Vladimir 43 45 HEVs d cembre 2006 Javadoc de Dispatcher zoneLetter private char zoneLetter Lettre de la zone UTM Constructor Detail UTMMessage public UTMMessage java awt geom Point2D Double coords int zoneNumber char zoneLetter Cr e une nouvelle instance partir des param tres Parameters coords Les coordonn es UTM du poi
44. Parameters P1 P2 nextSegmentN ExitLine public ExitLine Cr ation d une nouvelle instance de ExitLine avec P1 0 0 et P2 0 0 comme les coordonn es nextSegmentN est initialis a 1 Method Detail getNextSegmentN public int getNextSegmentN Access method for the nextSegmentN property Returns the current value of the nextSegmentN property setNextSegmentN public void setNextSegmentN int aNextSegmentN Sets the value of the nextSegmentN property Parameters aNext SegmentN the new value of the nextSegmentN property Drakic Vladimir 10 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 11 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY NESTED FIELD CONSTR METHOD dispatcher Class Infos java lang Object L dispatcher Infos public class Infos extends java lang Object FRAMES NO FRAMES All Classes All Classes DETAIL FIELD CONSTR METHOD Infos contient les informations sur le dernier mouvement de l utilisateur et sur sa position courante Les donn es sont charges par les m thodes de Computation On interpr te les donn es dans FrMain Window Field Summary private java lang String privat
45. Positioning System GPS ouvre la voie a des applications vari es et particuli rement int ressantes L utilisation de la technologie GPS et de Java ainsi que la perspective de r aliser un projet r el qui ait un impact concret sur une population donn e ont t des l ments d terminants dans mon choix de travail de dipl me Ce travail de dipl me a pour but de d velopper une application qui utilise la technologie GPS et qui aide les personnes malvoyantes dans leurs d placements Cette application constitue un premier prototype nomm Dispatcher qui permettra a une personne malvoyante de se d placer sur un itin raire d fini au pr alable grace aux indications donn es par un op rateur distant qui re oit le positionnement de la personne par GPS Le pr sent rapport est divis en 5 parties La partie Cadrage qui d crit le projet et permet de d limiter son p rim tre les parties prenantes et les contraintes qui ont t identifi es La partie D marche qui d taille la mani re dont j ai men a bien le projet et d crit la planification du projet et les technologies utilis es La partie D veloppement qui est la plus importante de ce rapport et d crit dans un ordre logique tous les composants de l application de mani re a rendre compr hensible son fonctionnement dans son ensemble Les raisonnements qui m ont amen s a la solution livr e et les probl mes rencontr s sont galement abord s tout au long de cette
46. Returns Infos exitLineReached Drakic Vladimir 5 45 HEVs d cembre 2006 Javadoc de Dispatcher private ExitLine exitLineReached V rifie si l utilisateur a franchi une des deux lignes de sorti du segment courant Si oui le contr le passe au segment voisin pr c dent au suivant d pend de sens de mouvement Si l utilisateur est sorti de l itin raire point de d part ou point d arriv e il est consid r comme dehors des bornes donc il n y a pas de suivi Return value La ligne franchie ou null Returns ExitLine obstacleBoundsReached private Obstacle obstacleBoundsReached Contr le si l utilisateur se trouve dans le p rim tre d un obstacle Dans ce cas la r f rence vers cet obstacle est mise dans Infos On traverse les bornes de chaque obstacle afin de trouver si l utilisateur se trouve dedans Si l utilisateur franchit les bornes d un obstacle ou il se trouve d j cela signifie qu il est sorti de cet obstacle Pour cette op ration on utilise le vecteur inObstacleTab Les contr les sont mis en places afin d viter les probl mes dans le situations sp cifiques Par exemple la sortie d un obstacle et l entr e dans un autre d un coup d un coup l utilisateur entre et sort d un m me obstacle etc Return value L obstacle ou null Returns Obstacle outOfSegmentBounds private java lang Boolean outOfSegmentBounds Contr le si l utilisateur se trouve en dehors des bornes du segment Si oui le messa
47. Returns the current value of the message property setMessage public void setMessage java lang String aMessage Sets the value of the message property Parameters aMessage the new value of the message property get TouchedExitLine public ExitLine getTouchedExitLine Access method for the touchedExitLine property Returns the current value of the touchedExitLine property setTouchedExitLine public void setTouchedExitLine ExitLine aTouchedExitLine Sets the value of the touchedExitLine property Parameters aTouchedExitLine the new value of the touchedExitLine property getTouchedObstacle public Obstacle getTouchedObstacle Access method for the touchedObstacle property Drakic Vladimir 15 45 HEVs d cembre 2006 Javadoc de Dispatcher Returns the current value of the touchedObstacle property set TouchedObstacle public void setTouchedObstacle Obstacle aTouchedObstacle Sets the value of the touchedObstacle property Parameters aTouchedObstacle the new value of the touchedObstacle property getTurnAngle public double getTurnAngle Access method for the turnAngle property Returns the current value of the turnAngle property setTurnAngle public void setTurnAngle double aTurnAngle Sets the value of the turnAngle property Parameters aTurnAngle the new value of the turnAngle property getOutOfSegmentBounds public boolean getOutOfSegmentBounds Determines if the outOfSegme
48. ans la classe AppConfig touchedExitLine private ExitLine touchedExitLine Si l utilisateur a franchi une ExitLine ligne de sortie contient la r f rence vers cette ligne si non la valeur est null touchedObstacle private Obstacle touchedObstacle Si l utilisateur se trouve dans le p rim tre d un obstacle il a travers les bornes c est la r f rence vers cet obstacle si non la valeur est null turnAngle private double turnAngle Si les calculs dans Computation montrent que l utilisateur ne va pas dans la bonne direction c est dire il s loigne du point final un angle de redirection est calcul Si l utilisateur marche vers le point final la valeur est O il n y a pas de correction outOfSegmentBounds private boolean outOfSegmentBounds Si l utilisateur se trouve en dehors des bornes du segment la valeur de outOfSegmentBounds est true si non c est false Une fois l utilisateur est en dehors du segment le suivi par l ordinateur s arr te car la s curit ne peut plus tre garantie usersLine private java awt geom Line2D Double usersLine La ligne d crite par les points pr c dent et courant de l utilisateur Drakic Vladimir 14 45 HEVs d cembre 2006 Javadoc de Dispatcher Constructor Detail Infos public Infos Cr ation d une instance de Infos L appel a clearInfos est fait Method Detail getMessage public java lang String getMessage Access method for the message property
49. armi les entreprises dans les domaines de la navigation GPS de la g ographie et de la cartographie informatis es donc les l ments de SIG Encore plus important est le fait que les concepts et le format des fichiers de ArcGIS repr sentent le standard sur le march des logiciels GIS Ce type de fichiers standard cr par ESRI s appelle Shapefile fichier des formes et il est souvent utilis par d autres logiciels SIG Alors U itin raire cr avec ArcGIS serait tr s r utilisable a cause de son format standardis et le fait que la plupart des entreprises travaillant avec SIG utilisent ce logiciel Format Shapefile Le Shapefile ou fichier de formes est un format de fichier issu du monde des Syst mes d Informations G ographiques ou SIG Initialement d velopp par ESRI pour ses logiciels commerciaux ce format est d sormais devenu un standard de facto et largement utilis par un grand nombre de logiciels libres MapServer Grass Udig MapGuide OpenSource comme propri taires Il contient toute l information li e a la g om trie des objets d crits qui peuvent tre e des points e des lignes e des polygones Drakic Vladimir 35 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Son extension est classiquement SHP et il est toujours accompagn de deux autres fichiers de m me nom et d extensions e un fichier DBF qui contient les donn es attributaires relatives aux objets contenu
50. ass e l utilisateur doit tre r dirig SegmentBounds public SegmentBounds SegmentBounds segmentBounds Parameters segmentBounds SegmentBounds public SegmentBounds java awt geom Line2D Double coords double approachLimit Parameters coords approachLimit SegmentBounds public SegmentBounds Since 2006 getCoords public java awt geom Line2D Double getCoords Drakic Vladimir 37 45 HEVs d cembre 2006 Javadoc de Dispatcher Access method for the coords property Returns the current value of the coords property setCoords public void setCoords java awt geom Line2D Double aCoords Sets the value of the coords property Parameters aCoords the new value of the coords property getApproachLimit public double getApproachLimit Access method for the approachLimit property Returns the current value of the approachLimit property setApproachLimit public void setApproachLimit double aApproachLimit Sets the value of the approachLimit property Parameters aApproachLimit the new value of the approachLimit property Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 38 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All C
51. atiquement une ligne droite ayant le d but la fin et la largeur c est dire la limite de sortie du segment Sa largeur d limit e par les bornes du segment est en fait la distance de la ligne du segment jusqu a la barri re rien a voir avec la classe Obstacle la plus Drakic Vladimir 11 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS proche Une barri re limitant le mouvement peut tre un b timent un arbre un mur bornes du trottoir etc ou la combinaison de ces objets Pendant le design de composants de l itin raire la classe Segment est celle qui m a exig le plus de temps Les questions que je me suis pos es taient quelle forme g om trique aura mon segment ou comment d crire les bornes vers l ext rieur et comment d finir les liaisons vers les segments qui le suivent et le pr c dent Concernant le passage d un segment l autre au d but il semblait logique d avoir un cercle ellipse comme la zone de sortie Apr s avoir r fl chis sur ce sujet j ai trouv que cette approche complique trop le processus car dans ce cas l la zone de sortie devient une surface sp cifique qu il faut traiter s par ment En effet une fois dans le p rim tre du cercle l utilisateur ne se trouve dans aucun segment et on doit attendre sa sortie pour continuer le suivi L impl mentation d une telle solution n est pas impossible au contraire th oriquement elle ne pose pas beaucoup de
52. atitude lon Longitude Returns UTMMessage Throws java lang Exception Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 41 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class UTMMessage java lang Object L dispatcher UTMMessage public class UTMMessage extends java lang Object Repr sentation UTM du paquet GPS recu du serveur Les coordonn es ont t transform es par la classe ServerConnection des coordonn es g ographiques latitude longitude vers la Transverse universelle de Mercator ou UTM Field Summary private coords java awt geom Point2D Double Coordonn es UTM re ues de l appareil GPS java util Date sendTime Le temps o la position a t envoy e de l appareil GPS vers le serveur Novasys private private double speed La vitesse de mouvement calcul e sur le serveur Novasys private char zoneletter Lettre de la zone UTM private int zoneNumber Num ro de la zone UTM Constructor Summary UTMMessage Constructeur par d faut UTMMessage java awt geom Point2D Double coords int zone
53. axDistance public double getMaxDistance Access method for the maxDistance property Returns the current value of the maxDistance property setMaxDistance public void setMaxDistance double aMaxDistance Sets the value of the maxDistance property Parameters aMaxDistance the new value of the maxDistance property get Vertex public java awt geom Point2D Double getVertexl Access method for the vertex 1 property Returns the current value of the vertex1 property get Vertex2 public java awt geom Point2D Double getVertex2 Access method for the vertex2 property Returns the current value of the vertex2 property getObstacles public Obstacle getObstacles Access method for the obstacles property Returns the current value of the obstacles property setObstacles public void setObstacles Obstacle aObstacles Sets the value of the obstacles property Parameters aObstacles the new value of the obstacles property Drakic Vladimir 33 45 HEVs d cembre 2006 Javadoc de Dispatcher getBounds public SegmentBounds getBounds Access method for the bounds property Returns the current value of the bounds property getExitLine2 public ExitLine getExitLine2 Access method for the exitLine2 property Returns the current value of the exitLine2 property setExitLine2 public void setExitLine2 ExitLine aExitLine2 Sets the value of the exitLine2 property Parameters aExitLin
54. bon chemin et le message appropri sera affich s il s loigne de l itin raire Composants de l application L application se composera de plusieurs modules qui interagissent entre eux Module principal Le module principal comprend l interface graphique de l application fait appel aux diff rents modules et orchestre leurs entr es et sorties afin d accomplir la t che de suivi de l utilisateur D abord les donn es de la position courante d utilisateur sont fournies par le module de r cup ration des donn es La position courante et la position pr c dente sont envoy es vers le module de calcul afin de contr ler si l utilisateur se trouve sur le bon chemin La r ponse du module de calcul est envoy e au module d affichage et l op rateur va pouvoir donner la nouvelle instruction a Vutilisateur arr ter tourner Module de r cup ration des donn es Drakic Vladimir 56 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS La position courante de l utilisateur sera envoy e par SMS vers le serveur interm diaire appartenant l entreprise Novasys Les donn es seront transform es est renvoy es par TCP IP vers l application Le format des donn es et les param tres de connexion seront d crits par Novasys prochainement Module de calcul Ce composant va contr ler si l utilisateur se trouve sur l itin raire s il se trouve devant un obstacle ou s il a atteint Le point d arriv e
55. ce de la classe ServerConnexion AppConfig Cette classe contient les constantes et les variables fr quemment utilis es dans Dispatcher Vous pouvez la consid re comme un fichier de configuration et toutes les options peuvent tre modifi es a la main Drakic Vladimir 22 22 HEVs d cembre 2006 Dispatcher Suivi avec GPS 8 4 Javadoc Drakic Vladimir 59 59 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class Computation java lang Object L dispatcher Computation public class Computation extends java lang Object Calcule les mouvements de l utilisateur et g n re les instructions A Field Summary private double anglesVector Tableau contenant des multiples de Route turnAngleUnit unit s de mouvement private currentPoint java awt geom Point2D Double La position courante de l utilisateur private int currentSegmentN private Infos infos private boolean inObstacleTab Tableau des bool ens o on peut voir si l utilisateur se trouve dans un obstacle valeur true movementDirection Indique si l utilisateur s loigne ou rapproche la ligne du segment private double private boolean movementFilter D termine si le filtre des pas de mouvement est actif private boolean outOfBound
56. chaque position comme une paire x y mesur e en m tres ce qui para t beaucoup plus naturel et intuitif que le syst me de longitude et latitude Les composants x et y sont appel s respectivement Easting et Northing Comme l origine du syst me de coordonn es on prend le point d intersection du m ridien central et la ligne de l quateur Le m ridien central passe au milieu de la zone et par la suite on aurait des valeurs x n gatives ce qui est la situation qu on veut viter Pour r soudre ce probl me on prend pour l axe y une ligne imaginaire qui se trouve 500 000 m l ouest du m ridien central ce qu on appelle False Easting Drakic Vladimir 25 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS P le 10 000 000 m M T baaka l L Ean E ronda ET L UTM H misph re sud Hebert fete LL LD RES LS I LIELIE eT Fussan 13 80 5 P le 0m 3 Sams Ur ae unes pion Jouet DIT En utilisant UTM les coordonn es sont bas es sur le syst me d cimal ce qui facilite les calculs par rapport au longitude latitude o l on doit transformer les minutes et les secondes en syst me d cimal Un autre avantage tr s important est le fait que les positions sont mesur es en m tres dans un espace bidimensionnel ce qui r duit les calculs de distance l impl mentation simple du th or me de Pythagore au lieu des calculs trigonom triques complexes indispensables dans le sy
57. cle lui m me mais il entre dans le p rim tre pr d fini de l obstacle Dans la classe Computation on utilise le vecteur inObstacleTab contenant des bool ens initialis s a false qui repr sente tous les obstacles du segment courant Chaque fois que l utilisateur se trouve pr s d un obstacle dans ses bornes on met le bool en ad quat a true En utilisant cette approche on vite quelques situations inhabituelles qui demandent le traitement sp cial comme celle o l utilisateur en m me temps sort d un obstacle et entre dans un autre ou quand il entre et sort de l obstacle d un coup Chaque Obstacle diff rent contient son propre message qui peut tre une instruction Attendez le feu vert ou un avertissement Attention pas de passage pi ton C est le message qui sera communiqu l utilisateur L utilisateur a franchi les bornes du segment Pour trouver si l utilisateur de trouve en dedans des limites du segment on simplement si la ligne de son mouvement croise une des bornes Si oui le message avertissant l utilisateur que le logiciel ne suit plus son mouvement est plac dans Infos 4 5 3 Filtre de mouvement La technologie GPS ne permet pas de cr er une application de haute pr cision Dans certaines situations il peut m me arriver que le logiciel soit compl tement inutile a cause de GPS Malgr cela j ai essay d att nuer certains d fauts et de donner l impression d
58. core une chose a changer dans le code c est le point de d part Il ne faut pas commencer en dehors de Vitin raire et pour cela il faut adapter le premier point la direction de l itin raire On trouve cette valeur dans la classe Computation Voici les exemples pour Sierre et Gen ve JBuilder 2006 D vlada HEYs TD Projects Dispatcher src dispatcher Computation jaya File Edit Search Refactor Collaborate View Project Run Team Enterprise Tools Window Help Ce I EC EC CE xlt Obstacle xi Route xlES segment xit SegmentBounds x 4 Serve g x 22 FrMainWindow xlt FrSetFiter x Infos 4 LoadFromShapeFile pese 2 _ AppConfig 35 82 Computation x Console al x 2 amp 4 Exitline ie _ amp 4 FileFiter Dispatcher jpx 5 jrr 86 since 2006 7 sy private void initi Imports E cf Computation 5 5 i i X Sea eres 91 this currentSegmentN this route getCurrentSegmentNi on aP setMovementFilter be 32 this currentPoint Point2D Double route getSegments current egmentN getCo con GP verifyMove Double cu Le inObstacleTab aie stone y t calculateDirection dor gt this currentPoint x l ie exitLineReached Hee a init oy geneve e obstacleBoundsReact 5 this currentPoint x 3 e outOfSegmentBounde 99 so usersTurn ngle 100 4 tableau utilise pour le calcul de direction P angles ector 101 double a
59. de continuer marcher vers le point final du segment Malheureusement on ne peut pas appliquer une telle solution quand il s agit du suivi des humains On ne peut pas dire a une personne de tourner de 112 49 degr s mais on doit utiliser les unit s de mensuration g n ralement connues Normalement chacun peut comprendre et effectuer l Instruction qui dit qu il faut tourner de un quart du tour ou d un moiti du tour En utilisant ces unit s l approximation de l utilisateur sera plus pr cise que d essayer de trouver langle de 112 49 degr s A cause de cela on va consid rer plusieurs directions possibles et chercher celle qui est la plus proche au point final du segment Comment impl menter cette solution Prenons 45 ou T ou un huiti me du tour comme l unit de virage La plupart du temps du d veloppement j ai travaill avec cette valeur et je l ai utilis e pour pr parer les messages pour l utilisateur J ai laiss la possibilit d utiliser d autres valeurs en d finissant la valeur de turnAngleUnit de la classe Route et en ajoutant le mot appropri dans le tableau UNITS_DEG d AppConfig Ensuite dans Computation on rempli anglesVector avec les multiples de 45 45 90 135 180 La valeur d un virage peut tre 180 degr s au maximum car l algorithme prend en compte l orientation gauche droite ce qui donne comme le pire cas l instruction de marcher dans le sens oppos Maintenant le
60. dth public void setPassWidth double aPassWidth Sets the value of the pass Width property Parameters aPassWidth the new value of the pass Width property Drakic Vladimir 24 45 HEVs d cembre 2006 Javadoc de Dispatcher getTurnAngleUnit public double getTurnAngleUnit Access method for the turnAngleUnit property Returns the current value of the turnAngleUnit property setTurnAngleUnit public void setTurnAngleUnit double aTurnAngleUnit Sets the value of the turnAngleUnit property Parameters aTurnAngleUnit the new value of the turnAngleUnit property getCurrentSegmentN public int getCurrentSegmentN Access method for the currentSegmentN property Returns the current value of the currentSegmentN property setCurrentSegmentN public void setCurrentSegmentN int aCurrentSegmentN Sets the value of the currentSegmentN property Parameters aCurrentSegmentN the new value of the currentSegmentN property getSegments public Segment getSegments Access method for the segments property Returns the current value of the segments property setSegments public void setSegments Segment aSegments Sets the value of the segments property Parameters aSegments the new value of the segments property Drakic Vladimir 25 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIE
61. du dispositif Flux de donn es Serveur Novasys Coordonn es envoy es par satellite SMS contenant les ee coordonn es ae ga Mo Ey a i nes g _ Coordonn es en XML Instructions issues par l op rateur Utilisateur r cepteur GPS Op rateur Fait partie de l application Drakic Vladimir 6 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 2 3 Conditions et contraintes de projet Selon les donn es initiales du projet Java est choisi comme le langage de d veloppement pour que l application soit exploitable sur plusieurs plateformes Un autre l ment important est que le concept et l impl mentation de l itin raire doit tre compatible avec le SIG Syst me d information g ographique afin de laisser ouverte la possibilit d une int gration future Ce logiciel est pr vu d tre davantage une librairie r utilisable et ouverte pour le d veloppement futur que de repr senter une application compl te et exploitable sur le march Pour cette raison il est crucial que le logiciel soit bien structur et document en d tail IL est galement important que l application soit pleinement configurable L itin raire sur lequel se d place l utilisateur n est pas une ligne simple mais il comprend une marge autour de laquelle le suivi de l utilisateur est r alis Une fois que l utilisateur d passe les bornes et sort de la zone de l itin raire le contr le de son mou
62. du triangle commence le mener vers la sortie En utilisant la forme triangulaire chaque c t on r duit galement la surface du segment qui peut tre au maximum une moiti de la surface du rectangle et au m me temps on garde les bons caract ristiques de la forme rectangulaire comme la lin arit et la simplicit des calculs De plus ce nouvel objet est un polygone compos des quasi triangles car un triangle parfait implique un point en tant qu entr e et sortie ce qui ne permet pas d inclure la marge de d placement de l utilisateur Avec des quasi triangles il est possible de cr er deux lignes de sortie classe ExitLine partag es avec le segment pr c dent et suivant L image suivante illustre et rend plus compr hensible la solution envisag e Drakic Vladimir 14 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Utilisateur dans le segment de forme triangulaire Les d tails techniques de la classe Segment sont les suivants Les bornes d un segment repr sent es par la classe SegmentBounds sont cr es automatiquement une fois la ligne de segment et les lignes de sortie d finies Le sommet du triangle est orthogonal par rapport au milieu de la ligne de segment et il en est loign de la valeur d finie par Uutilisateur variable maxDistance Pendant Vinstanciation de Segment l appel est fait aux m thodes calculateExitLine calculateVertices et createBounds qui respectivement calculent et cr
63. e Au d but du travail avec les l ments de l itin raire je ne connaissais pas Java 2D et j ai d pens beaucoup de temps pratiquement 3 jours entiers pour d velopper des m thodes math matiques qui existaient d j dans les classes g om triques de Java 2D Les calculs sont bas s essentiellement sur la g om trie analytique et sur l alg bre lin aire de base arithm tique vectorielle angle entre deux vecteurs etc Drakic Vladimir 10 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Voyons maintenant une repr sentation graphique de l itin raire Les noms des l ments son ceux des classes correspondantes Itin raire compos de deux segments point d arriv e bornes du segment ahs ligne de segment ligne de sortie du segment point de d part 4 3 El ments d un itin raire 4 3 1 Route La classe Route d crit l itin raire en entier Si l on imagine le diagramme des classes comme un arbre la Route serait la racine de cet arbre Elle a le r le d un conteneur et ne poss de pas ses coordonn es mais contient la r f rence vers les segments classe Segment qui sont li s aux autres l ments ayant les coordonn es 4 3 2 Segment On peut dire que Segment est l l ment principal d un parcours L itin raire est divis en plusieurs segments qu on cr e typiquement sur les points de d tour ou s il faut r duire la longueur d un segment Un segment est pr
64. e Obstacle contient une variable riskLevel qui d crit la dangerosit de l obstacle Selon le niveau de la dangerosit on peut changer le message donn l utilisateur et s il le faut cr er des avertissements C est une fonctionnalit qui n a pas t tr s exploit e dans cette Drakic Vladimir 19 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS version et qui reste ouverte pour le futur d veloppement Encore une fois les obstacles ne peuvent pas tres des endroits dangereux pour la vie on ne peut pas laisser un trou profond sur la route car l impr cision de la technologie GPS actuelle pourrait co ter la vie a quelqu un 4 4 Coordonn es Savoir ou quelqu un se trouve c est savoir ses coordonn es Dans notre logiciel tout est calcul par rapport a la position de l utilisateur par cons quent les coordonn es ont un r le crucial pour cette application Le syst me de coordonn es dont on a besoin d pend du syst me utilis par l appareil Mambo des calculs n cessaires pour le suivi et de la repr sentation graphique de mouvement en Java L appareil envoie les coordonn es en utilisant le syst me de longitude et latitude qui est le syst me de coordonn es le plus r pandu aujourd hui Apr s avoir analys la future application et apr s avoir effectu des recherches sur l Internet j ai conclu que le syst me g ographique standard de longitude latitude ne convient pas a mes besoins
65. e boolean Pa private ExitLine po private Obstacle ee private double Jeme private java awt geom Line2D Double Drakic Vladimir HEVs d cembre 2006 message Le message communiqu l utilisateur outOfSegmentBounds Si l utilisateur se trouve en dehors des bornes du segment la valeur de outOfSegmentBounds est true si non c est false touchedExitLine Si l utilisateur a franchi une ExitLine ligne de sortie contient la r f rence vers cette ligne si non la valeur est null touchedObstacle Si l utilisateur se trouve dans le p rim tre d un obstacle il a travers les bornes c est la r f rence vers cet obstacle si non la valeur est null turnAngle Si les calculs dans Computation montrent que l utilisateur ne va pas dans la bonne direction c est dire il s loigne du point final un angle de redirection est calcul usersLine La ligne d crite par les points pr c dent et courant de l utilisateur 12 45 Javadoc de Dispatcher Constructor Summary Infos Cr ation d une instance de Infos Method Summary void add java lang String msg Ajout d un message dans Info void clearInfos Met tous les variables a 0 et null java lang String getMessage Access method for the message property lt boolean getOutOfSegmentBounds Determines if the outOfSegmentBounds property is true pe ExitLine getTouchedExitLine Acce
66. e fen tre et le syst me de coordonn es Appuyez sur Edit e et ensuite sur Select Dans notre cas il faut choisir Projected coordinate system UTM WGS 1984 WGS_1984_UTM_Zone_32N prj Avant de confirmer OK final il faut tre sur que tout est bien configur parce que apr s on ne peut pas changer le nom et le type de Shapefile L image montre la configuration correcte I ArcCatalog Arc iew D vlada HE s TD Projects ArcView Testi n i loj xj Bile Edt view Go Tools window Help ase xa smaa aanraai Loca tion D wladaSHEVs TD Projects ArcViewST est1 LA Create New Shapefile 2 xi Stylesheet FGDC ESRI FA r Name Segments Feature Type Polyline E m Spatial Reference Description Projected Coordinate System Name WGS_1984_UTM_Zone_32N Geographic Coordinate System Name GCS_WGS_1984 J Novasys Projects H E Geneve_Gricha H E Sierre _HEYs Sy Testi 3 Dispatcher a DispBuild GraphiesTest E JScienceTest E MSaxisTest TestGeoTools TestZoom a software z T Show Details Edit J Coordinates will contain M values Used to store route data T Coordinates will contain Z values Used to store 3D data H EH H Le gt Cr
67. e logiciel cccesccesccesccesccesceesseesseess 10 4 3 El ments d un itin raire sccicccdeccsadnis seducwoucseuedsadekedesaediaeonsvescceeks 11 4 3 1 ROUTE cate a trea a a oies 11 45 2 DEOMI caicbosserttenssensepengercrenaseanepoemeanerboneelebammebieweedeunenees 11 ASD HDSEACISS 5455 che eee mend sespeeissencences absent attenante 18 AMA Coordonn es sisser cauvecekanciemedenaveutsiatensdaeasedetaycianideeateotaacente 20 4 4 1 Syst me longitude latitude 20 AA UM erreseina Erare EE E EE EOE EEEE OEE 22 4 5 Algorithme de suivi s essessssesseesereessoserscsrossorosroscsroeroerseee 27 4 5 1 Direction de mouvement essssossossescsrosroesoroerossseeerserseee 27 4 5 2 Redirection de l utilisateur 31 4 5 5 Filtre de mouvement sccavsscasastadsstancadvieacwosasecneoteumneosaseeteusss 34 4 6 Logiciels externes utilis s 35 461 6 secerneren R E A tian marcos wane enon meneame ESE 35 AG SGOT OOS eriaren erreak ea aae e dEr 36 AGS AUS E E E E E 37 MOA ISO ni re E E E ce ee 37 4 7 R cup ration et transformation des coordonn es 38 4 7 1 Fichier de POSIONivsc cat esse ous sesnensesdesehsnenn nnne 38 4 7 2 Utilisation du service web MessageService 39 Drakic Vladimir 2 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4
68. e nom de Feature n est pas Obstacle Parameters obstaclesFile Fichier Shapefile contenant les obstacles route Route qui va contenir les obstacles charg s Throws java lang Exception Drakic Vladimir 19 45 HEVs d cembre 2006 Javadoc de Dispatcher LoadFromFile public void LoadFromFile Since 2006 Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 20 45 HEVs d cembre 2006 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class Route java lang Object L dispatcher Route public class Route extends java lang Object Field Summary private int currentSegmentN Le num ro du segment courant private double length private name java lang String Nom de Route private double passWidth La taille du passage entre deux segments private segments Segment Les segments de cet itin raire private double turnAngleUnit Unit de mouvement du message communiqu l utilisateur degr s Constructor Summary Route Route java lang String name double turnAngleUnit double passWidth Cr ation d une instance de Route Method Summary
69. e trouve en dehors des bornes du segment void setMovementFilter boolean aMovementFilter Sets the value of the movementFilter property private double usersTurnAngle R tourne l angle que le vecteur de direction courante de l utilisateur forme avec le vecteur allant jusqu au point final Infos verifyMove java awt geom Point2D Double currentPoint La m thode principale de contr le de mouvement Methods inherited from class java lang Object Drakic Vladimir 2 45 HEVs d cembre 2006 Javadoc de Dispatcher clone equals finalize getClass hashCode notify notifyAll toString wait wait wait Field Detail currentPoint private java awt geom Point2D Double currentPoint La position courante de l utilisateur previousPoint private java awt geom Point2D Double previousPoint La position pr c dente de l utilisateur usersLine private java awt geom Line2D Double usersLine Ligne entre previousPoint et currentPoint currentSegmentN private int currentSegmentN angles Vector private double anglesVector Tableau contenant des multiples de Route turnAngleUnit unit s de mouvement On l utilise pour calculer les instructions pour l utilisateur Exemple Si turnAngleUnit est 45 et l instruction dit tournez un demi tour alors l utilisateur doit tourner de 90 degr s ou deux fois de 45 degr s inObstacleTab private boolean inObstacleTab Tableau des bool ens o on peut voir si l u
70. e zone urbaine ou il peut repr senter un parcours d une randonn e dans la nature Le mode de fonctionnement est simple On d finit un itin raire a l avance Pendant que l utilisateur marche son appareil GPS envoie les coordonn es de sa position vers le serveur interm diaire de l entreprise Novasys Le logiciel r cup re les coordonn es depuis ce serveur les analyse et si n cessaire donne une instruction qui redirige l utilisateur Le logiciel contr le la position de l utilisateur et anticipe quel serait le meilleur prochain mouvement pour qu il arrive a la destination qui avait t fix e Drakic Vladimir 5 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Au cours de son d placement sur l itin raire il peut arriver qu un obstacle emp che le progr s de l utilisateur Dans ce cas il faut informer l utilisateur de l action entreprendre Sur la pr sente version de l application les instructions concernant le mouvement effectuer s affichent sur l cran Ensuite c est une personne l op rateur qui les communique a l utilisateur par t l phone On peut aussi consid rer l op rateur devant l cran comme un utilisateur de l application mais pour viter toute confusion le terme utilisateur dans la suite de ce document signifie l utilisateur final celui qui traverse l itin raire avec l appareil GPS L image suivante illustre le mode de fonctionnement de l ensemble
71. e2 the new value of the exitLine2 property getExitLinel public ExitLine getExitLinel Access method for the exitLinel property Returns the current value of the exitLinel property setExitLinel public void setExitLinel ExitLine aExitLinel Sets the value of the exitLinel property Parameters aExitLinel the new value of the exitLinel property calculateVertices void calculateVertices Drakic Vladimir 34 45 HEVs d cembre 2006 Javadoc de Dispatcher Calcul des points de sommet haut et bas D abord on cherche la droite la pente et l ordonn e perpendiculaire la ligne de segment et qui la coupe au milieu Ensuite on cherche deux points sur cette droite se trouvant maxDistance loin du point de l intersection Ce sont les vertex1 et vertex2 calculateExitLine private void calculateExitLine double passWidth Calcul et cr ation de ligne de sortie ayant la longueur de pass Width d fini dans Route Parameters passWidth La taille du passage entre deux segments D fini la longueur de la ligne de sortie createBounds private void createBounds Cr ation des bornes du segment Les vertices doivent tre calcul s d abord Cette m thode est appel e par calculate Vertices Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 35
72. eates a new shapefile A Maintenant il faut cr er les attributs de Shapefile des segments qui correspondent aux attributs dans la classe Segment On cr e d abord le nom de l attribut qui peut avoir dix caract res au maximum et ensuite on d finie son type Encore une fois il faut se rassurer que les donn es soient correctes car on ne peut pas les modifier une fois qu on les confirme Les attributs a rajouter sont e positionNu Short Integer e maxTurnAng Double e maxDistanc Double Drakic Vladimir 10 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher di Shapefile Properties 21 x Grenman SSS frese SS ne y E IITODO _Important E podsetnik JE Pro La cr ation d un fichier des obstacles est presque identique Le feature type choisi doit tre Polygon Les obstacles ont des attributs suivants e riskLevel Short Integer e typeObstac Text e message Text e SegmentNum Short Integer Drakic Vladimir 11 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Shapefile Properties H E Novasys E 4 Projects ea 0 Dispatcher 9 DispBuild B GraphicsTest JScienceTest MSAxisTest TestGeoTools WTopot _Important Dernier conseil pour le travail avec ArcCatalog essayez de changer un peu les noms des fichiers pour chaque nouvel itin raire Par exemple SegmentsSierre SegmentsCrans ObstaclesCrans etc C est important ca
73. egment Tel que mentionn plus t t les bornes s tendent de la premi re ligne de sortie ligne d entr e vers le sommet vertice au milieu du segment et jusqu la deuxi me ligne de sortie Il en est de m me de l autre cote du chemin Il s agit d un vecteur de quatre lignes Ligne2D cr pendant la construction de Segment Les pentes des lignes d crivant les bornes d pendent de la distance des sommets de la ligne du chemin et qu on trouve dans la variable maxDistance de la classe Segment Avec cette valeur on peut alors r gler l angle form avec la ligne de segment et par cons quent am liorer la navigation de l utilisateur de fa on qu on ne le laisse pas trop s loigner au d but et avant la fin du segment Drakic Vladimir 17 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Il faut tout de m me tre prudent avec les valeurs qui sont ins r es dans maxDistance car si elles sont trop grandes par rapport la taille du segment les sommets sont trop loign s et on diminue l efficacit de guidage automatique Je recommande que la valeur maximale ne d passe pas trop la moiti de la longueur du segment qui cr e l angle de 45 entre les lignes des bornes et le segment Normalement la distance maximale doit tre plus grande ou gale a la moiti de la ligne de sortie car sinon on aurait une situation contradictoire Pour cette raison j ai rajout le contr le de ces valeurs dans la c
74. egments avec ses bornes et ses lignes de sortie et de mettre a jour le chemin parcouru par l utilisateur apr s chaque mouvement L affichage est effectu dans paintComponent la m thode trouv e dans la plupart des composant visuels de Swing qui prend une instance de Graphics comme l argument et qui dessine les figures g om triques sur l cran Pour dessiner les formes d sir es il faut surcharger cette m thode dans le code du composant Swing ce qui est la classe MapDisplay dans notre cas Les deux probl mes principaux de l impl mentation sont les proportions de Vitin raire affich et le syst me de coordonn es graphique employ par Java 2D Le probleme des proportions vient du fait que les coordonn es UTM des composants de Vitin raire ont des tr s grandes valeurs que l on n arrive pas afficher Il faut les diminuer proportionnellement pour les adapter mieux aux dimensions d un cran Autrement dit il faut changer l chelle de Vitin raire Pour r soudre ce probl me il faut d finir la longueur maximale de l itin raire donn e comme l argument du constructeur qui repr sente la taille maximale en pixels Ensuite il faut trouver le reste de la division modulo de chaque coordonn e par la longueur maximale maxRouteLength ce qui nous donne les valeurs que l on peut afficher sur l cran Le deuxi me probl me est que Java 2D emploie le syst me de coordonn es standard utilis dans les ordina
75. es ce segment veillez ne pas oublier Le num ro de la position qui augmente R p tez toute l op ration pour chaque segment de l itin raire Drakic Vladimir 14 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Eile Edit View Insert Selection Tools Window Help Editor gt ral Task create New Feature z Target segments z joe A Oem S amp Bx o i 7 la Ol l Advanced Editing if Aa AH 4 S 4 F elo Oo a O Obstacles Segments E Segments 1 positionNu o maxTurn4ng 45 maxDistanc Display Source Selection oD ews ae i Drawing k cA oO A 1 fo Aral fo e z u A Be br Si vous avez ajout le fichier des obstacles dans ArcView il faut les cr er de fa on suivante d abord dans le menu View Toolbars cochez l option Advanced Editing Choisissez l outil Rectangle dans la barre d outils qui appara t Trouvez la position pour l obstacle et cr ez le rectangle qui repr sente les bornes de l obstacle voir Rapport final Vous pouvez le d placer et le tourner l aide de l outil Rotation trouve dans la barre d outils en haut Il est important que l obstacle se trouve en dedans des bornes du segment Il faut veillez qu il ne sort pas m me si on ne voit pas les bornes Pour tre sut il faut essayer de dessiner les bornes avec l outil Measure ou diminuer la taille de l obstacle
76. g D marrez l application ArcCatalog Dans le panneau gauche il faut choisir le r pertoire pour les fichiers de l itin raire Placez Le pointeur sur ce dossier et cliquez sur le bouton droit de la souris S lectionnez New Shapefile et donner le nom au Shapefile Le fichier des segments sera cr en premier Il est recommand de nommer le fichier segments afin de le m moriser plus facilement ArcCatalog Arc iew D vlada HEYs TD Projects ArcView Testi Ele Edt view Go Tools window Help o S xX le Location D wlada HEVs TD Projects ArcView Testl x Images n E Mambo Novasys Projects i E i E arcview i E Canvas E Geneve_Gricha E Sierre_HEYs En RU Ca vis BA copy ctrlec E A a PA pre PA oa PA ox PA a a PAGE PR Ra AO a Di SA paste Ctrity Gr s x cone ms Rename F2 i 4 l Folder HL text Search E Personal Geodatabase LS 11 700 eee QE 5 podsel gS Properties lt gt Layer PS EE Shapefile Creates a new shapefile Drakic Vladimir 9 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher L itin raire est stock avec ArcG S comme une ligne segment e donc on va choisir choisir Polyline comme la valeur de Feature Type Dernier options dans cett
77. ge correspondant est place dans retInfos et le flag Infos outOfSegmentBounds est mis true La m thode utilise la variable outOfBounds Returns Boolean usersTurnAngle private double usersTurnAngle R tourne l angle que le vecteur de direction courante de l utilisateur forme avec le vecteur allant jusqu au point final Return value l angle en degr s Returns double calculateDirection Drakic Vladimir 6 45 HEVs d cembre 2006 Javadoc de Dispatcher private void calculateDirection double angle Infos instruction Calcule la direction du point courant vers le point final et G n re l instruction donner l utilisateur L angle courant de l utilisateur par rapport au point final doit tre pass comme l argument Dans le tableau angles Vector on cherche la valeur la plus proche l angle donn et on la met dans le param tre instruction Parameters angle l angle entre le vecteur de l utilisateur et le vecteur allant jusqu au point final instruction R sultats de calcul calculateDirectionObstacle private void calculateDirectionObstacle double angle Infos instruction Obstacle obstacle Parameters angle instruction obstacle Since 2006 Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir 7 45 HEVs d cembre 2006 Javadoc de
78. ication On s est mis d accord que Drakic Vladimir 49 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS l application va comprendre une repr sentation graphique au prix d effectuer moins de tests Rencontre avec l ing nieur de Novasys Explication des d tails concernant la connexion avec le serveur de Novasys le format et le contenu des messages renvoy s par Novasys la configuration de Mambo On a d couvert que Mambo ne marche plus L envoie de nouvel appareil va durer au moins une semaine Semaine 6 30 octobre 2006 Rendez vous avec David On a chang des id es concernant le suivi de personne Certaines id es initiales sont modifi es Tests dans ArcView de nouveau concept d itin raire D but de travail sur l algorithme 31 octobre 2006 Toute la journ e de travail sur l algorithme de suivi et sur la forme g om trique de l itin raire Beaucoup des choses modifi es au fur et mesure J essaie de trouver la solution la plus optimale et la plus agr able pour Vutilisateur final 1 novembre 2006 Comme le jour pr c dent j ai travaill la plupart de temps sur l algorithme Travail sur la documentation planning rapport Normalement c est le jour de f ri f te de Toussaint Comme j ai travaill a 100 je serai absent un autre jour pour mes obligations priv es 2 novembre 2006 Rendez vous avec David On a discut de l algorithme Quelque modifications apport es Travai
79. ier segment et 0 et on le trouve dans l attribut positionNu La num rotation commence par z ro car l ensemble des segments cr s avec ArcMap correspond a segments un vecteur des segments trouv dans la classe Route La valeur de l loignement maximal de la ligne de segment se trouve dans le champ maxDistanc et elle est exprim e en m tres Pour approximer cette valeur vous pouvez vous servir de outil Measure ic ne de r gleur trouv dans la bo te a outils Toolbox Pour vous rappeler c est la distance maximale entre la ligne de segment et les bornes donc elle est mesur e par rapport au milieu de la ligne de segment haut et bas de la ligne Sur la base de cette valeur d finissez la grandeur de l angle maximale de virage de l utilisateur dans maxTurnAng Si vous n tes pas sur mettez la valeur 45 On continue de cr er les prochains segments de m me mani re Le point de l entr e de nouveau segment est au m me temps le point de sortie du segment pr c dent Pour cr er la ligne du prochain segment choisissez encore une fois Sketch Tool Positionnez le pointeur sur la ligne pr c demment cr e pr s de son point final Cliquez sur le bouton droit et s lectionnez Snap to Feature Endpoint ce qui va lier le d but du nouveau segment la fin du pr c dent Tirer la ligne jusqu au point final du segment Cliquez pour confirmer la cr ation de la ligne Entrer les valeurs des attributs correspondant
80. ilise les m thodes fournies par JDK quand c est possible Travail sur les m thodes de Computation 14 novembre 2006 D veloppement des m thodes de Computation Rendez vous avec David On a parl des questions cruciales comme les obstacles possibles sur l itin raire cr ation des bornes des segments On a galement modifi certaines m thodes de calcul Les questions mentionn es doivent tre pos es a Me Cochard par e mail 15 novembre 2006 J ai envoy les questions a Me Cochard et j ai recu la r ponse positive donc les hypoth ses pos es hier taient correctes Continu de travailler sur la classe Computation 16 novembre 2006 La m thode de correction de la direction est finie J ai galement travaill sur la partie graphique repr sentation des diff rentes lignes afin de voir mieux le comportement pendant le debugging 17 novembre 2006 Drakic Vladimir 51 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Travail sur les m thodes de Computation Semaine 9 20 novembre 2006 Tests et d bogage des m thodes de Computation Tests sur la repr sentation compl te d un segment Am lioration de MapDisplay Documentation Javadoc des classes cr es 21 novembre 2006 Recherche sur la transformation de coordonn es Etude de format UTM Trouv la biblioth que Java utile pour la transformation Lat Long gt UTM L chelle de l affichage MapDisplay doit tre modifi e 22 novembre 2006
81. imites d un segment Il peut s agir d un objet une roche un arbre les voitures gar es etc limitant le mouvement d une personne Cela exige un changement de la direction L autre type d obstacle est fonctionnel ou interactif dans un sens car il existe des op rations a effectuer afin de d passer l obstacle Il peut s agir par exemple d un passage pi ton o l utilisateur doit ex cuter une s rie d instructions fournies par le logiciel afin de traverser la rue sans risques En fait un objet Obstacle peut avoir d autres r les pas impl ment s dans cette version comme par exemple un panneau des renseignements sur l itin raire J ai impl ment la classe Obstacle de fa on tr s g n ralis e afin de laisser la libert aux futurs d veloppeurs de cr er les r les qu ils souhaitent Il faut seulement respecter la r gle mentionn e avant selon laquelle les obstacles ne peuvent pas pr senter des endroits tr s dangereux car pendant la cr ation de l itin raire on s est assur que l itin raire ne contient pas de telles places Uitilsateur se trouve dans le p rim tre d un des obstacles Dans l application l obstacle est repr sent avec quatre lignes ayant la forme d un rectangle qui en fait signifient les bornes de l obstacle On utilise ces bornes pour savoir si l utilisateur s est rapproch de l obstacle et pour lui donner les instructions avant qu il ne le touche La class
82. in Apr s le chargement de l image et avoir appuy sur zoom utilisez les barres de navigation lat rales avec une direction vers le bas et un peu a droite pour trouver l image zoom e 7 Bouton de connexion Le suivi de un utilisateur commence d s le moment ou il se trouve dans le p rim tre de l itin raire et la connexion avec serveur est tablie Pendant le d placement l appareil GPS de l utilisateur envoi ses coordonn es vers le serveur en permanence Pour effectuer un suivi en temps r el Dispatcher doit demander les nouvelles donn es du serveur aux intervalles de temps courts En appuyant sur ce bouton nous d marrons la communication avec le serveur de Novasys Important cette fonctionnalit ne marche pas correctement dans cette version a cause de probleme de double appel mentionn dans le rapport Il est possible de commencer la connexion seulement une fois Si vous l arr tez et d marrez encore une fois rien ne va se passer Pour r tablir la connexion il faut relancer l application Drakic Vladimir 5 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher 8 Menu Options Dans ce menu on trouve le param trage basique de l application Les param tres de la connexion configurables sont le nom de l utilisateur et le mot de passe utilis s pour l identification sur le serveur Ces donn es sont correctes et il ne faut pas les modifier L autre option utile est l intervalle de temps dan
83. int getCurrentSegmentN Access method for the currentSegmentN property double getLength Drakic Vladimir 21 45 HEVs d cembre 2006 Javadoc de Dispatcher Access method for the length property java lang String getName Access method for the name property double getPassWidth Access method for the pass Width property Segment getSegments Access method for the segments property double getTurnAngleUnit Access method for the turnAngleUnit property void setCurrentSegmentN int aCurrentSegmentN Sets the value of the currentSegmentN property void setLength double aLength Sets the value of the length property void setName java lang String aName Sets the value of the name property void setPassWidth double aPassWidth Sets the value of the pass Width property void setSegments Segment aSegments Sets the value of the segments property void setTurnAngleUnit double aTurnAngleUnit Sets the value of the turnAngleUnit property Methods inherited from class java lang Object JR clone equals finalize getClass hashCode notify notifyAll toString wait wait wait Field Detail name private java lang String name Nom de Route length private double length passWidth Drakic Vladimir 22 45 HEVs d cembre 2006 Javadoc de Dispatcher private double passWidth La taille du passage entre deux segments Cette valeur vaut pour tous les segments de cette
84. ion simplifi e du logiciel vue dans le cahier des charges voir annexe Cahier des charges comprend quatre entit s modules qui regroupent des fonctions similaires Ce sont le module principal la r cup ration des donn es les calculs l algorithme et l affichage NVASYS Utilisateur Algorithme D s le d but du projet j ai essay de d finir les classes les plus importantes et de les structurer dans un diagramme Ceci est tr s important car le diagramme des classes sert de fil conducteur tout au long de travail Le diagramme de classes final est repr sent a la page suivante Drakic Vladimir 9 59 HEVs d cembre 2006 Diagramme de classes SegmentBounds Bcoords Line2D Double Segment BapproachLimit double coords Line2D Double new Line2D Double bounds BpositionNumber int LoadFrom ShapeFile BsSegmentBounds Bm axTurnAngle double 45 BSegmentBounds 1 BimaxDistance double BBloadSe es gments BSsegmentBounds Bvertexi Point2D Double HlcadObstacles vertex Point2D Double previous Segment Segment QSL oadFromFile QSL oadFrom ShapeFile MSegment ExitLine exitLine1 Bsegment BnexiSegmentN int N calculate Vertices 1 calculateExitLine
85. is http www igm univ mlv fr dr XPOSE2003 axis_seng Universit de Qu bec Projections systemes de coordonn es http www unites ugam ca dgeo geo7511 2001 htm section6 htm Vivid Solutions Java Topology Suite http www vividsolutions com jts jtshome htm Wikipedia http fr wikipedia org Drakic Vladimir 46 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 8 Annexes Drakic Vladimir 47 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 8 1 Planification 8 1 1 Planification du travail Drakic Vladimir 48 59 HEVs d cembre 2006 ID Task Name Duration Start Finish Predecesso 11 Sep 06 18 Sep 06 25 Sep 06 02 Oct 06 09 Oct 06 16 Oct 06 23 Oct 06 30 Oct 06 06 Nov 06 13 Nov 06 20 Nov 06 27 Nov 06 04 Dec 06 11 Dec 06 18 Dec 06 25 Dec 06 01 Jan 07 08 Jan 07 15 Jan 07 1 Project GPS Guidance 64 days Mon 25 09 06 Mon 08 01 07 f l 2 Initialisation 1 day Mon 25 09 06 Mon 25 09 06 3 S ance de d marage 1 day Mon 25 09 06 Mon 25 09 06 4 Cadrage 11 days Tue 26 09 06 Thu 26 10 06 2 5 v Etude du SIG 4 days Tue 26 09 06 Fri 29 09 06 6 Ma Recherche sur Java et SIG
86. kic Vladimir 1 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Ce manuel est compos de deux parties Guide d utilisateur et Guide de d veloppeur La premi re partie expose l utilisation et la configuration de application du point de vue d un utilisateur o tout ce fait l aide de l interface du logiciel Donc il n est pas n cessaire de plonger dans le code pour exploiter le logiciel Le guide de d veloppeur explique des param trages avanc s et l utilisation des outils externes comme ArcGIS Il est fortement conseill de lire la documentation de l application avant d utiliser ce manuel Les termes et les concepts de l application sont consid r s connus par le lecteur et ils ne sont pas expliqu s dans le manuel Drakic Vladimir 2 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Guide de l utilisateur Dans cette version de l application j ai laiss la possibilit de d placer l utilisateur en cliquant sur la repr sentation graphique de l itin raire J ai utilis cette option pendant le d bogage et je trouve qu elle peut faciliter les tests du logiciel Je n ai pas impl ment la version ex cutable de l application a cause de certains bogues connus Pour le moment il faut lancer l application JBuilder Les num ros sur l image suivante expliquent en d tail chaque l ment de l interface de l application Dispatcher iojxi 6
87. l sur Valgorithme 3 novembre 2006 Travail sur l algorithme 4 novembre 2006 samedi Travail a 50 Toujours le travail sur le design de l algorithme 5 novembre 2006 dimanche Travail a 50 Algorithme Planification de travail en MS Project Commenc diagramme de classes de l application Semaine 7 6 novembre 2006 Drakic Vladimir 50 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Diagramme de classes Structuration des classes variables et m thodes Documentation des m thodes et des classes 7 novembre 2006 D but de d veloppement du module de calcul J utilise Rational Rose pour la cr ation des classes j y g n re du code et je continue d velopper avec JBuilder Je documente les classes au m me temps 8 et 9 novembre 2006 Absence comme annonce dans l e mail 10 novembre 2006 Travail avec Rational Rose et JBuilder structuration du code cr ation des classes Documentation 11 et 12 novembre 2006 weekend Travail a 50 Travail sur exitLineReached et obstacleBoundsReached les m thodes de la classe Computation Diagramme de classes Semaine 8 13 novembre 2006 J ai d couvert que les m thodes comme celle pour chercher l intersection de deux lignes ou la distance entre une ligne et un point qu elles existent d ja dans JDK dans la classe Line2D Comme cela 3 4 jours de travail sont perdus analyse d veloppement J ai modifi les classes et maintenant j ut
88. lasse Segment et si le rapport entre elles n est pas juste la valeur de maxDistance est gal e la moiti de la ligne de sortie Le calcul des points vertex1 et vertex2 c est a dire sommets est effectu dans la m thode calculateVertices de la classe Segment Si A B et M sont respectivement le point de d part le point final du segment et le point du milieu de la ligne de segment et si a est langle entre la ligne et l axe X on cherche d abord la pente de la droite qui est perpendiculaire a la ligne et qui la coupe au point M A B k tan B A D o on trouve a a arctan k Maintenant on utilise la formule suivante pour calculer les sommets V et W vertex1 et vertex2 dans le code o d est la distance maximale W M d cos W M d sin Le sommet de l autre c t V 2 M W V 2 M W 4 3 3 Obstacles Pour avoir une impl mentation r aliste d une route sur l ordinateur il nous manque encore une couche importante Nous avons bien d fini le chemin et ses bornes mais il est rare de trouver un itin raire vide d l ments qui peuvent ralentir le mouvement J ai d cid d appeler ces objets les obstacles m me s ils Drakic Vladimir 18 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS ne doivent pas toujours avoir forcement le r le n gatif d obstacles au sens strict du terme Les obstacles peuvent tre n importe quels objets se trouvant dans les l
89. lasses SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class ServerConnection java lang Object L dispatcher ServerConnection public class ServerConnection extends java lang Object ServerConnection utilise les classes cr es par Apache Axis http ws apache org axis pour se connecter Novasys et consommer leur service web MessageService asmx Le r sultat de cette connexion est un fichier XML contenant parmi les autres donn es la position courante de l utilisateur sous la forme longitude latitude Field Summary private messageServiceLocator com novasys wstest01 MessageService MessageServiceLocator private messageServiceSoap com novasys wstest01 MessageService MessageServiceSoap private UTMMessage utmMessage Constructor Summary ServerConnection Les instances de MessageServiceLocator et MessageServiceSoap sont cr es avec les donn es appropri es Method Summary UTMMessage getData Effectue l appel au service et r cup re le r sultat XML private transformToUTM double lat double lon UTMMes sage Cette m thode utilise les librairies JScience pour la transformation de coordonn es de la forme longitude latitude vers UTM Drakic Vladimir 39 45 HEVs d cembre 2006 Javadoc de Dispatcher Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait wait
90. les d environnement allez a Panneau de configuration Syst me Avanc Variables d environnement Dans la partie Variables syst me il faut rajouter des nouvelles variables AXIS_HOME c axis 1_4 AXIS_LIB AXIS_HOME lib AXISCLASSPATH AXIS_LIB axis jar AXIS_LIB commons discovery 0 2 jar AXIS_LIB commons logging 1 0 4 jar AXIS_LIB jaxrpc jar AXIS_LIB saaj jar AXIS_LIB log4j 1 2 8 jar AXIS_LIB xml apis jar AXIS_LIB xerceslmpl jar AXIS_LIB wsdl4j 1 5 1 jar T l chargez le parseur Xerces J bin 2 9 0 zip depuis xerces apache org xerces j Il faut copier les fichiers xercesimpl jar et xml apis jar trouv s dans l archive vers c axis 1_4 lib Axis est maintenant pr t pour l utilisation Pour la cr ation des classes Java il faut avoir le fichier WSDL du service en question Dans notre cas c est http wstest01 novasys com MessageService MessageService asmx WSDL Drakic Vladimir 20 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Lancez la console MS DOS et allez dans le r pertoire o vous voulez mettre les classes Tapez la commande en une ligne java cp AXISCLASSPATH org apache axis wsdl WSDL2Java http wstest01 novasys com MessageService MessageService asmx WSDL Si tout s est bien pass l cran doit ressembler ct C WINDOWS System32 cmd exe 0 xj _4 gt java cp ZARISCLASSPATH org apache axis wsdl WSDL2Jaua http ustesq t 1i novas
91. les des mouvements de l utilisateur et des r ponses de c t logiciel C est ce moment que j ai pu apercevoir que cette solution poss de des faiblesses qui sont en contradiction avec le concept de l application D abord les bornes rectangulaires du segment laissent trop de libert de mouvement l utilisateur dans le sens que cette forme n aide pas diriger l utilisateur vers la sortie ce qui est le but de l application Voyons une illustration de ce cas afin de mieux comprendre le probl me Drakic Vladimir 13 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS utilisateur Avec ce cas nous voyons que l utilisateur peut errer dans les coins du rectangle ce qui l loigne de la sortie et cr e la situation d une mauvaise navigation L autre d faut de cette approche est que la zone de sortie entre deux rectangles n est pas clairement d finie Si l on essaie d utiliser les c t s dans ce but le probl me persiste cause des tailles diff rentes des rectangles IL tait donc n cessaire de trouver une solution plus optimale L objet qui me semblait appropri est une forme compos e de deux triangles chaque c t de la ligne de segment ce qui donne un rhombo de Le triangle isoc le satisfait bien la t che de navigation vers la sortie du segment car on laisse au randonneur la possibilit de s loigner de chemin ligne de segment jusqu au milieu du segment o l autre c t
92. mis qui forme le vecteur de mouvement de l utilisateur avec le vecteur allant jusqu au point final voir la documentation private Obstacle obstacles private int positionNumber Drakic Vladimir 27 45 HEVs d cembre 2006 Javadoc de Dispatcher Num ro du segment private Segment previousSegment private vertexl java awt geom Point2D Double Le premier point se trouvant maxDistance loign du milieu de la ligne de segment private java awt geom Point2D Double vertex2 Le deuxi me point se trouvant maxDistance loign du milieu de la ligne de segment Constructor Summary Segment Constructeur par d faut Segment java awt geom Line2D Double coords int positionNumber int totalSegments double maxDistance double maxTurnAngle double passWidth Segment previousSegment Construction et initialisation de Segment partir des param tres Method Summary private void calculateExitLine double passWidth Calcul et cr ation de ligne de sortie ayant la longueur de pass Width d fini dans Route package private void calculateVertices Calcul des points de sommet haut et bas private void createBounds Cr ation des bornes du segment SegmentBounds getBounds Access method for the bounds property java awt geom Line2D Double getCoords Access method for the coords property ExitLine getExitLinel Access method for the exitLinel p
93. ngitude et la latitude sont mises en format plus standard degr s d cimaux Les informations concernant la position courante sont ensuite sauvegard es dans le fichier XML Pour chaque envoi de donn es deux nouveaux fichiers sont cr s A partir des coordonn es de la position le premier fichier nomm DEVIN contient galement des autres informations comme la vitesse et les donn es g ographiques vari es ce qui peut tre utile dans le d veloppement futur de l application Le deuxi me fichier cr ADMIN contient les informations concernant Mambo ce qui n a pas d importance pour Dispatcher lt xml version 1 0 standalone yes gt lt DocumentElement gt lt Position gt lt IdPosition gt f9007517 e9f9 4304 945e f3997295bica lt IdPosition gt lt PositionDateTime gt 1980 01 06T01 01 19 01 00 lt PositionDateTime gt lt Valid gt false lt Valid gt lt Longitude gt 46 2000 lt Longitude gt lt EastWest gt E lt EastWest gt lt Latitude gt 6 15000 lt Latitude gt lt NorthSouth gt N lt NorthSouth gt lt SpeedMSec gt 0 lt SpeedMSec gt lt SpeedKmH gt 0 lt SpeedKmH gt lt SpeedMpH gt 0 lt SpeedMpH gt lt SpeedKnots gt 0 lt SpeedKnots gt lt AltitudeAboveSeaLevel gt 0 lt AltitudeAboveSeaLevel gt lt AltitudeAboveGroundLevel gt 0 lt AltitudeAboveGroundLevel gt lt Heading gt 0 lt Heading gt lt Odometer gt 0 lt Odometer gt lt MagneticVariation gt 0 lt MagneticVariation gt lt MagneticVariationEastWes
94. ngleUnit this route getTurn ngleUnit coe currentPoint 102 anglesVector new double 180 int angleUnit 1 so currentSegmentn 103 f amp DOVER CRs 104 for int i 0 i lt anglesVector length i movementFilter 105 anglesVector i i angleUnit P outOfBounds 106 i allt 107 outOfBounds false i 108 segmentDirection i E Ah 109 if route getSegments j currentSegmentN getObstacles null Long usersLine zs inObstacleTab new boolean route getSegments currentSeqmentN getObstacles 111 112 f f initialisation des directions Drakic Vladimir 19 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Utilisation d Apache Axis Apache Axis est un outil puissant con u pour le d veloppement et l acc s aux services web Dans le cas de Dispatcher on en a besoin pour l acc s et l utilisation du service web MessageService h berg sur le serveur de Novasys Pour accomplir cette tache il faut correctement installer Axis et utiliser l outil wdl2java pour g n rer les classes n cessaires Installation et configuration d Apache Axis T l chargez axis bin 1_4 zip depuis http ws apache org axis J ai utilis la version 1 4 Dans ce tutoriel le chemin d installation est c axis 1_4 Vous pouvez choisir une autre destination mais veillez que le chemin soit correct dans l entier de l installation D compressez le fichier Ensuite il faut mettre a jour les variab
95. nt zoneNumber Le num ro de la zone UTM zoneLetter La lettre de la zone UTM UTMMessage public UTMMessage Constructeur par d faut Met les coordonn es z ro et la zone num ro inexistante Method Detail getZoneNumber public int getZoneNumber Access method for the zoneNumber property Returns the current value of the zoneNumber property setZoneNumber public void setZoneNumber int aZoneNumber Sets the value of the zoneNumber property Parameters aZoneNumber the new value of the zoneNumber property getZoneLetter public char getZoneLetter Access method for the zoneLetter property Drakic Vladimir 44 45 HEVs d cembre 2006 Javadoc de Dispatcher Returns the current value of the zoneLetter property setZoneLetter public void setZoneletter char aZoneLetter Sets the value of the zoneLetter property Parameters aZoneLetter the new value of the zoneLetter property Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir HEVs d cembre 2006 45 45
96. nt troitement li es a JScience R f rences ESRI Shapefile Technical Description http www esri com library whitepapers pdfs shapefile pdf Site de GeoTools http geotools codehaus org Vivid Solutions Java Topology Suite http www vividsolutions com jts jtshome htm JScience http jscience org Drakic Vladimir 37 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Les logiciels test s MapInfo Professional http www mapinfo com JShape http www jshape com OziExplorer http www oziexplorer com 4 7 R cup ration et transformation des coordonn es Les donn es de chaque pas r alis par l utilisateur sont enregistr es dans les fichiers XML sur le serveur de Novasys Nous avons vu pr c demment le processus de l envoi des donn es de l appareil Mambo vers Dispatcher leur destination finale Dans ce chapitre je vais l expliquer plus en d tail IL faut mentionner que la connexion et la transformation se passent principalement dans la m thode getData de la classe ServerConnection 4 7 1 Fichier de position L appareil Mambo est configur de fa on utiliser la norme GPRS pour envoyer les donn es vers le serveur de Novasys La configuration comprend entre autres l adresse IP du serveur son port et le chemin de service web nomm MessageService dans notre cas Du c t Novasys les donn es envoy es par Mambo sont extraites et trait es Par exemple les coordonn es o la lo
97. ntBounds property is true Returns true if the outOfSegmentBounds property is true setOutOfSegmentBounds public void setOutOfSegmentBounds boolean aOutOfSegmentBounds Sets the value of the outOfSegmentBounds property Parameters aOutOfSegment Bounds the new value of the outOfSegmentBounds property getUsersLine Drakic Vladimir 16 45 HEVs d cembre 2006 Javadoc de Dispatcher public java awt geom Line2D Double getUsersLine Access method for the usersLine property Returns the current value of the usersLine property setUsersLine public void setUsersLine java awt geom Line2D Double aUsersLine Sets the value of the usersLine property Parameters aUsersLine the new value of the usersLine property add public void add java lang String msg Ajout d un message dans Info Parameters msg Message a rajouter clearInfos public void clearInfos Met tous les variables a 0 et null Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD Drakic Vladimir HEVs d cembre 2006 17 45 Javadoc de Dispatcher Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY NESTED FIELD CONSTR METHOD DETAIL FIELD CONSTR METHOD dispatcher Class LoadFromShapeFile java lang Object L dispatcher LoadFromSha
98. p rience qui me servira dans ma vie professionnelle 5 2 Faiblesses de l application Le plus grand inconv nient vient de la technologie GPS Comme on a vu dans les chapitres pr c dents l impr cision pose des probl mes pour le logiciel Parfois les donn es envoy es peuvent tre tellement incorrectes qu elles emp chent totalement le suivi de l utilisateur Un autre point faible est que l application n a pas t test e en profondeur parce qu une grande partie de temps pr vu pour les tests a t consacr e au d veloppement de l aspect graphique de l application ce qui a t convenu avec le client Il est possible que par la suite il y ait des bogues qui n ont pas encore t d tect s Drakic Vladimir 43 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 5 3 Non impl ment d veloppement futur L application Dispatcher d velopp e dans le cadre de ce travail de dipl me est un prototype Certaines fonctionnalit s devront soit tre am lior es soit tre d velopp es compl tement afin d arriver un produit abouti Les fonctionnalit s qui n ont pas t prises en compte pour ce prototype et qui devront tre d velopp es sont d crites ci dessous e L avertissement avant de la sortie des bornes du segment A pr sent lVutilisateur ne peut pas savoir qu il se trouve devant les bornes Dans chaque segment il faut cr er une sorte de bornes internes Une fois que l utilisa
99. peFile public class LoadFromShapeFile extends java lang Object Avec les m thodes de cette classe on lit et on recherche dans les fichiers Shapefile les objets Features cr s avec ArcGIS Ce sont principalement les segments et les obstacles qu on charge avec les m thodes loadSegments et loadObstacles Pour lire un Shapefile on utilise les classes des librairies GeoTools Le principe est suivant tous les objets d un Shapefile segments par exemple doivent tre travers s avec un Iterator et les attributs trouv s positionNumber maxDistance sont utilis s pour instancier des classes correspondantes Segment Constructor Summary LoadFromShapeFile Method Summary void LoadFromFile package private static void loadObstacles File obstaclesFile Route route Essaie de charger le fichier donn comme argument package private static void loadSegments File segmentsFile Route route Essaie de charger le fichier donn comme argument Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait wait Drakic Vladimir 18 45 HEVs d cembre 2006 Javadoc de Dispatcher Constructor Detail LoadFromShapeFile public LoadFromShapeFile Method Detail loadSegments static void loadSegments File segmentsFile Route route throws java lang Exception Essaie de charger le fichier donn
100. qui n est pas obligatoire Dans le cas de l itin raire inclus avec l application vous trouverez les fichiers Shapefile dans le r pertoire ArcG S HEVS_Sierre Il est conseill d utiliser les param tres vus sur l image ci dessous Si vous chargez un autre itin raire il ne faut pas oublier de modifier le code expliqu dans ce manuel Cr ation de l itin raire Nom de l itin raire Gare_a_hevs Largeur du passage m fio Image de l arri re plan re Images Empty gif Shapefile de l itin raire A Segments shp Shapefile d obstacles Obstacles shp Charger et sauver Annuler Drakic Vladimir 17 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Confirmez les param tres S il y a des probl mes la fen tre de l avertissement va appara tre expliquant l exception Si tout se passe bien un nouveau fichier texte sera cr e dont le nom est gale au celui de l itin raire et ayant l extension rte Toutes les options choisisses se trouvent dans ce fichier et on peut le modifier la main si on a besoin Voici un exemple de ce fichier fa Lister D vlada HE s TD Projects Dispatcher routes hevs rte File Edit Options Help 100 heus 45 6 11 8 D vulada HEVUs TD Projects Dispatcher Images Empty gif D vlada HEUs TD Projects AarcUiew Sierre_HEUs Segments shp umi Tr s important Il ne faut pas placer Dispatcher dans un chemin contenant des caract res sp ciaux
101. r e sur l image ci dessous l utilisateur est instruit de tourner a droite Drakic Vladimir 32 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS TR gt gt ligne de mouvement de l utilisateur point d part e point d arriv e det i v D v D uy D vyv D Si det u v gt 0 gt point final se trouve gauche Si det u v gt 0 gt point final se trouve droite Le cas o la d terminante est gale z ro a t limin avant de commencer les calculs Enfin en peut placer dans Infos l instruction pr cise pour l utilisateur Une des lignes de sortie a t atteinte La m thode exitLineReached cherche si la ligne de mouvement croise une des lignes de sortie Si oui il faut trouver laquelle celle de l entr e ou celle d arrive Dans le cas le plus commun o la ligne de l arriv e a t atteinte on change simplement la valeur du segment courant dans l instance de Route utilis e et on passe comme cela le contr le au segment prochain Pour la ligne d entr e d pass e on passe le contr le au segment pr c dent Si l utilisateur d passe la derni re ligne d arriv e on lui communique que le parcours de l itin raire est fini L utilisateur se trouve pr s d un obstacle Drakic Vladimir 33 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS Comme cela a t expliqu auparavant dans l application l utilisateur ne touche pas l obsta
102. r la base de donn es d ArcGIS ne permet pas d avoir plusieurs fichiers sous la m me machine ayant les noms identiques Dans ce cas seulement un itin raire sera charg chaque fois ArcMap Une fois travail avec ArcCatalog conclu il remplir nos fichiers des valeurs ArcMap est l outil tr s puissant pour la cr ation des SIG Je n ai appris qu un minimum des fonctionnalit s n cessaires a la cr ation d un itin raire A cause de ce fait il est possible que je ne montre pas la meilleure facon de travailler avec ArcMap Attention pendant le travail avec ArcMap il faut tre extr mement attentif a suivre de pr s chaque instruction donn e Drakic Vladimir 12722 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Lancez ArcMap et choisissez Empty new map Dans le panneau droit d dition cliquez sur le bouton droit de la souris et choisisez Properties Ensuite dans la partie de inf rieure de la fen tre s lectionnez Predefined Projected Coordinate Systems UTM WGS 1984 WGS_1984_UTM_Zone32N Confirmer votre choix Maintenant vous pouvez voir les coordonn es UTM a gauche dans la partie inf rieure du panneau Importer maintenant les fichiers Shapefile comme les couches dans ArcMap depuis ArcCatalog draguez les fichiers un par un dans la partie gauche de ArcMap nomm Layers SierreHEYSmxd ArcMap ArcView Je x File Edit View Insert Selection Tools Window Help Editar gt E Task c
103. ravail Le d tail de la planification des mes t ches est offerte l annexe Planification Le calendrier permettant de suivre la progression d taill e de mon travail se trouve galement en annexe 3 2 Technologies utilis es Pour le positionnement de l utilisateur on utilise l appareil Mambo produit par Falcom une entreprise allemande C est un appareil int grant le t l phone le r cepteur GPS et GPRS Mambo est adapt aux besoins des personnes aveugles et n a pas d cran On peut le configurer soit en utilisant la connexion Bluetooth et le logiciel de configuration soit en envoyant un message SMS avec des commandes Vu que le logiciel doit tre r utilisable il est important que le code soit bien structur est standardis car sinon il devient illisible pour les futurs d veloppeurs Pour cette raison j ai choisi d employer Rational Rose Enterprise Edition pour la cr ation et la g n ration des classes Java Ce logiciel m a galement facilit le d veloppement parce qu il diminue le nombre d erreurs commises et la quantit du code crire Le format du fichier contenant l itin raire est Shapefile et pour sa cr ation la suite ArcG S est utilis e ArcG S est Shapefile sont expliqu s en d tail dans le chapitre Logiciels externes utilis s Drakic Vladimir 8 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4 D veloppement 4 1 Structure de l application La vis
104. reate New Feature x tmt a ie E a osas rex i ere mesne O Obstacles O Segments Display Source Selection Saje naj Drawing k 0 A A a aia z fo Ha rular SEE e7082 10 5127648 63 Meters A l aide des coordonn es affich es et de zooming trouvez la r gion de l itin raire Dans la barre d outils Editor s lectionnez Start Editing Dans la liste d roulante Target s lectionner le fichier des segments Cliquez sur Sketch Tool ic ne de crayon pour commencer r aliser les lignes des segments Cliquez au endroit qui correspond aux coordonn es du point de d part Tirer la ligne jusqu aux coordonn es du point final du segment Cliquez encore une fois pour finaliser la ligne La ligne cr e repr sente la ligne du premier segment de Vitin raire Drakic Vladimir 13 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Important chaque ligne de segment doit tre orient e vers la bonne direction Cela signifie que la ligne doit tre tir e du point d entr e du segment vers le point de sortie du segment Donc il faut suivre la direction et le sens de l itin raire Si la ligne est dessin e a la direction inverse le suivi dans le logiciel ne va pas fonctionner Choisissez Edit Tool ic ne de fl che Cliquez droit sur la ligne de segment et s lectionnez Attributs Il faut entrer les valeurs des attributs Le num ro de position du prem
105. rendre les coordonn es plus pr cises Cet l ment est a prendre en compte lors des d veloppements futurs de l application Dans cette optique le logiciel cr dans le cadre de ce travail de dipl me offre gr ce a son code et sa documentation standard les conditions n cessaires pour le d veloppement futur de l application Drakic Vladimir 45 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 7 R f rences ESRI Shapefile Technical Description http www esri com library whitepapers pdfs shapefile pdf Don BARTLETT A Practical Guide to GPS UTM http www dbartlett com Dr Sergei ANDRONIKOV Introduction to GIS lecture notes http geog gmu edu PEOPLE fall2004 Sergei GEOG311 htm Java 2D Home Page http java sun com products java media 2D JOVANOVIC A Slobodan Savremeni francusko srpski recnik JScience http jscience org JShape http www jshape com LIPKOVSKI Aleksandar Linearna algebra i analiti ka geometrija MapInfo Professional http www mapinfo com Online French Dictionary http www wordreference com OziExplorer http www oziexplorer com Site de Apache Axis http ws apache org axis Site de GeoTools http geotools codehaus org Sp cifications OpenGIS http www opengeospatial org Sun Mycrosystems Java 2D Graphics Tutorial http java sun com docs books tutorial 2d index html UNIVERSITE DE MARNE LA VALLEE pr sentation du projet Ax
106. rique o laxe du cylindre croise perpendiculairement l axe des p les de l ellipso de terrestre au centre de l ellipso de L UTM est galement un syst me de r f rence g ospatiale permettant d identifier n importe quel point sur notre plan te En pratique pour couvrir la surface de la Terre on la d coupe en 60 fuseaux de 6 degr s en s parant l h misph re Nord et l h misph re Sud Soit au total 120 zones 60 pour le Nord et 60 pour le Sud On d veloppe alors le cylindre tangent a l ellipso de le long d un m ridien pour obtenir une repr sentation plane http fr wikipedia org Drakic Vladimir 24 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS M ridien central d un fuseau zone est le m ridien passant au milieu du fuseau et le d coupant en deux moiti s UTM Zone Numbers 110309 DA 06 0607 0909 10 41 1 134415 16 AT 1 18 20242223 24 96 96 27 289090 A1 42 HA ALAS AB AT 36 39 AO 4 AA AS A AS AB AP AD AU ED B1 SD 83 SABE ED ET 68 69 60 HELL eee ar Se UE AR A Tire dj TE TE E ETT PERL aT T aT ge FT HT PEPER ISTEP DR PRT ETES LE CEINT Eh A TR PETT T TT R EST BEE ds CETTE TTE He ee EAP TU EPS ARE slojeublsaq uoz ALN P ire AS Ss So SS re TM Tce oe Set SS ae NS mS oo Universal Transverse Mercator UTM System Swe Mp Seas Lun eat Len Peter H Dans of t34 Comment utilise t on les coordonn es du syst me UTM Dans UTM on peut pr senter
107. roperty ExitLine getExitLine2 Access method for the exitLine2 property double getMaxDistance Access method for the maxDistance property double getMaxTurnAngle Access method for the maxTurnAngle property Obstacle getObstacles Access method for the obstacles property Drakic Vladimir 28 45 HEVs d cembre 2006 Javadoc de Dispatcher int getPositionNumber Access method for the positionNumber property java awt geom Point2D Double getVertexl Access method for the vertex1 property java awt geom Point2D Double getVertex2 Access method for the vertex2 property id setCoords java awt geom Line2D Double aCoords Sets the value of the coords property void setExitLinel ExitLine aExitLinel Sets the value of the exitLinel property void setExitLine2 ExitLine aExitLine2 Sets the value of the exitLine2 property void setMaxDistance double aMaxDistance Sets the value of the maxDistance property void setMaxTurnAngle double aMaxTurnAngle Sets the value of the maxTurnAngle property void setObstacles Obstacle aObstacles Sets the value of the obstacles property void setPositionNumber int aPositionNumber Sets the value of the positionNumber property Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait
108. rtaines erreurs qui paraissent n gligeables peuvent provoquer le comportement impr visible de l application La partie de la cr ation concr te des segments s effectue avec ArcG S Quand m me il faut configurer le logiciel de fa on que le suivi soit pr cis R cup ration des coordonn es de l itin raire La premi re phase du travail comprend la collection des coordonn es de l itin raire La fa on la plus simple est de se promener sur le parcours avec Mambo allum ce qui va cr er les fichiers des coordonn es sur le serveur Pour r cup rer les donn s l application s utilise de mani re habituelle On se connecte Novasys et Dispatcher va chercher et afficher les coordonn es trouv es L autre solution est d utiliser un syst me comme Google Earth et d y trouver la r gion de l itin raire J ai utilis le site http mapper acme com ce but o on peut choisir entre diff rents syst mes de coordonn es et sauvegarder les informations facilement en g n rant l URL correspondant Cr ation d un itin raire dans ArcGIS D abord les composants d un itin raire doivent tre cr s et catalogues l aide de ArcCatalog Avec cette application appartenant la suite ArcG S nous allons d finir la structure de chaque composant Les nouveaux l ments auront le format Shapefile expliqu dans le rapport Drakic Vladimir 8 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher ArcCatalo
109. s La variable indiquant si l utilisateur se trouve en dehors des bornes private previousPoint java awt geom Point2D Double La position pr c dente de l utilisateur private Route route Drakic Vladimir 1 45 HEVs d cembre 2006 Javadoc de Dispatcher R f rence vers la route actuelle private double segmentDirection L orientation du segment de gauche vers droite gt de droite vers gauche gt private usersLine java awt geom Line2D Double Ligne entre previousPoint et currentPoint Constructor Summary Computation Route route Cr e une instance de Computation Method Summary private void calculateDirection double angle Calcule la direction du point courant vers le point final et G n re l instruction donner l utilisateur Infos instruction private void calculateDirectionObstacle double angle Infos instruction Obstacle obstacle private ExitLine exitLineReached V rifie si l utilisateur a franchi une des deux lignes de sorti du segment courant boolean getMovementFilter Determines if the movementFilter property is true private void init Initialisation des variables de la classe Computation private Obstacle obstacleBoundsReached Contr le si l utilisateur se trouve dans le p rim tre d un obstacle private outOfSegmentBounds java lang Boolean Contr le si l utilisateur s
110. s dans le Shapefile e un fichier SHX qui stocke l index de la g om trie http fr wikipedia org Pour plus de d tails voir le document ESRI Shapefile Technical Description a Vadresse http www esri com library whitepapers pdfs shapefile pdf Travail avec le format Shapefile On peut voir ici le concept d utilisation de Shapefile Les instructions d taill es de travail avec Shapefile se trouvent dans le Guide d utilisation en annexe de ce document Cr ation avec ArcGIS Il existe plusieurs pas n cessaires pour la cr ation d un fichier Shapefile D abord il faut d finir sa structure dans ArcCatalog Ensuite il faut choisir le type de la forme qui peut tre Point Polyline Polygon MultiPoint MultiPatch On choisi galement le syst me de coordonn es pour chaque Shapefile Un Shapefile d termin par son triplet des fichiers shp shx et dbf ne repr sente pas un seul objet mais un ensemble de tous les objets de m me type On aura donc un Shapefile pour tous les polygons un autre pour tous les lignes etc On a la possibilit de rajouter des attributs a chaque Shapefile Ils peuvent avoir des valeurs num riques ou textuelles Chaque objet de ce Shapefile aura les attributs auxquels on peut affecter des valeurs Pour visualiser le Shapefile et cr er ses objets on utilise ArcMap S il y a plusieurs Shapefiles ils sont repr sent s comme des couches diff rentes de une mappe cr e avec ArcMap
111. s haut dans ce document ila fallu repr senter les structures de la vie r elle gt sous une forme adapt e a l ordinateur Pendant la p riode de l analyse j ai envisag de nombreuses solutions qui ont t d abord discut es avec le professeur David Russo puis s lectionn s sur la base d une comparaison entre ses avantages et ses d savantages L id e est de cr er des formes g om triques qui correspondent au mieux aux entit s g ographiques d un itin raire et qui permettent de r aliser les fonctionnalit s attendues Au m me temps il m a fallu prendre en compte la contrainte des ressources informatiques savoir concevoir une application qui soit adapt e au mat riel disposition N ayant pas d exp rience dans le travail avec le graphisme et ne connaissant pas les techniques permettant de consommer moins de ressources il tait important d viter de surcharger le logiciel avec des objets trop complexes Pour cette raison les figures g om triques sont r alis es avec les classes de Java 2D une API incluse dans JDK voir Aspect graphique permettant la cr ation et la manipulation des objets graphiques bidimensionnels Les coordonn es des classes comme Segment Obstacle ou SegmentBounds sont repr sent es comme plusieurs objets de la classe Line2D de Java 2D Cette classe comprend plusieurs m thodes utiles comme intersection contains ou ptLineDist qui rendent le travail plus facil
112. s lequel Dispatcher demande les coordonn es de serveur Il exploite chaque fois le service web MessageService qui est d di a cette tache Drakic Vladimir 6 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Guide du d veloppeur Dans ce guide j explique le param trage avanc et la cr ation des nouveaux itin raires Ces op rations sont d sign es pour les d veloppeurs car elles demandent la compr hension et la modification du code Logiciels externes Afin de pouvoir d velopper et modifier le Dispatcher il faut installer quelques applications et plusieurs librairies Les librairies n cessaires viennent avec Dispatcher dans le r pertoire lib Les applications n cessaires sont e JBuilder 2006 avec jdk1 5 0 http www borland com e ESRI ArcView 9 1 http www esri com e Apache Axis 1 4 http ws apache org axis Les autres librairies et logiciels qui vient avec Dispatcher e GeoTools 2 2 http geotools codehaus org GeoTools n cessite e Java 3D http java sun com products java media 3D e Java Advanced Imaging http java sun com javase technologies desktop media jai e JTS Topology Suite http www vividsolutions com JTS JTSHome htm e JScience 3 2 http jscience org Drakic Vladimir 7 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Cr ation d un nouvel itin raire Cette fonctionnalit n cessite un suivi strict des instructions expos es ici parce que ce
113. s lignes partant de la position courante sous les angles de anglesVector sont construites et on cherche celle qui prolong e a linfini de chaque c t coupe la ligne de sortie le plus pr s au point final Drakic Vladimir 31 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS A B point pr c dent et point courant de l utilisateur demi droites formant 45 avec mouvement demi droite la plus proche au point final L instruction n est pas encore pr te car il faut dire de quel c t tourner gauche ou droite Ce probl me s est montr plus difficile qu il ne le semblait au d but J ai trouv qu il faut tenir compte de deux facteurs le sens de mouvement de Vutilisateur par rapport la ligne de segment approchement ou loignement et au point final et l orientation du segment qui peut tre plut t de gauche droite ou plut t de droite a gauche On calcule le sens de mouvement de l utilisateur en comparant les distances entre l objet de rep rage point final ligne de segment et les points d finissant la ligne de direction courant et pr c dent Le sens d pend galement de l orientation du segment Finalement pour trouver le cot ou il faut tourner on calcule la d terminante de deux vecteurs ayant l origine au point de d part Ces vecteurs sont la ligne de segment et le vecteur allant jusqu au point courant de l utilisateur nomm s v et u respectivement Dans la situation illust
114. s potentiels o la fa on habituel de guider n est pas valable Drakic Vladimir 44 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 6 Conclusion Ce travail de dipl me permet de d montrer la faisabilit d un dispositif destin aux personnes malvoyantes qui soit bas sur la technologie GPS et Java Le prototype cr poss de des fonctionnalit s de base qui permettent l utilisateur de trouver son chemin en d passant les obstacles ventuels gr ce aux indications du logiciel et d un op rateur externe Au niveau de la gestion du projet j ai pu mettre en pratique les connaissances acquises tout au long de mes tudes l HEVs La taille du projet a n cessit une planification des tapes et un bon d coupage des t ches r aliser Ce travail m a permis de me confronter une situation professionnelle r elle qui implique notamment de g rer la relation avec un client et ses exigences Ce projet a requis des connaissances au niveau du graphisme 2D Java de l utilisation des services web ainsi que du calcul et de l exploitation de donn es spatiales Il m a galement permis de conna tre en profondeur le concept de Syst me d information g ographique SIG et les notions de cartographie et de g ographie qui lui sont li es Nous avons vu que la technologie GPS qui reste encore impr cise limite les performances du dispositif et ceci malgr les alternatives que j ai mises en place pour
115. ss method for the touchedExitLine property Obstacle getTouchedObstacle Access method for the touchedObstacle property i SY 7 double getTurnAngle Access method for the turnAngle property er java awt geom Line2D Double getUsersLine Access method for the usersLine property gt _ SISIA void setMessage java lang String aMessage Sets the value of the message property m IOS void setOutOfSegmentBounds boolean aOutOfSegmentBounds Sets the value of the outOfSegmentBounds property ea void setTouchedExitLine ExitLine aTouchedExitLine Sets the value of the touchedExitLine property void setTouchedObstacle Obstacle aTouchedObstacle Sets the value of the touchedObstacle property i gt lt NSS void setTurnAngle double aTurnAngle Sets the value of the turnAngle property void setUsersLine java awt geom Line2D Double aUsersLine Sets the value of the usersLine property Methods inherited from class java lang Object clone equals finalize getClass hashCode notify notifyAll toString wait wait wait Drakic Vladimir 13 45 HEVs d cembre 2006 Javadoc de Dispatcher Field Detail message private java lang String message Le message communiqu l utilisateur Cela peut tre une instruction comme Tournez d un quart de tour a gauche ou un avertissement comme Vous tes en dehors de limites Les messages se trouvent d
116. st me des coordonn es g ographiques de longitude et latitude De plus UTM et tr s souvent utilis par les appareils GPS R f rences http fr wikipedia org Universit de Qu bec Projections syst mes de coordonn es http www unites ugam ca dgeo geo7511 2001 htm section6 htm Dr Sergei ANDRONIKOV Introduction to GIS lecture notes http geog gmu edu PEOPLE fall2004 Sergei GEOG311 htm Don BARTLETT A Practical Guide to GPS UTM http www dbartlett com Drakic Vladimir 26 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 4 5 Algorithme de suivi Ce chapitre d crit la partie centrale du projet celle du suivi et de la navigation d un utilisateur du syst me impl ment e dans la classe Computation A continuation chaque cas est analys s par ment et son impl mentation est expos e A la base nous avons la situation o une personne marche depuis le point de d part D vers le point final F tout en respectant les contraintes comme les obstacles ou les limites de l itin raire Comme il s agit d une personne malvoyante qui ne conna t pas cet itin raire le logiciel doit savoir gt reconna tre le mouvement de l utilisateur d cider si le mouvement est valable et pr parer les instructions ad quates pour l utilisateur En prenant tous les cas possibles de mouvement dans un segment de la route l algorithme devrait avoir une forme similaire celle ci Si la ligne de sortie atteinte
117. t maxTurnAngle Voir le membre maxTurnAngle passWidth Voir le membre pass Width previousSegment La r f rence vers le segment pr c dent Segment public Segment Constructeur par d faut Il faut plut t utiliser l autre constructeur plus explicit Method Detail getCoords Drakic Vladimir 31 45 HEVs d cembre 2006 Javadoc de Dispatcher public java awt geom Line2D Double getCoords Access method for the coords property Returns the current value of the coords property setCoords public void setCoords java awt geom Line2D Double aCoords Sets the value of the coords property Parameters aCoords the new value of the coords property getPositionNumber public int getPositionNumber Access method for the positionNumber property Returns the current value of the positionNumber property setPositionNumber public void setPositionNumber int aPositionNumber Sets the value of the positionNumber property Parameters aPositionNumber the new value of the positionNumber property getMaxTurnAngle public double getMaxTurnAngle Access method for the maxTurnAngle property Returns the current value of the maxTurnAngle property setMaxTurnAngle public void setMaxTurnAngle double aMaxTurnAngle Sets the value of the maxTurnAngle property Parameters aMaxTurnAngle the new value of the maxTurnAngle property Drakic Vladimir 32 45 HEVs d cembre 2006 Javadoc de Dispatcher getM
118. t e ou diminu e Apres le changement de l chelle il faut mettre jour tout les dimensions en appelant updateSize et createAndScale Le d faut toujours pr sent est qu apr s la modification d chelle l itin raire ne se trouve pas a la bonne position ce qui rend le plan de la r gion inutile La class MapDisplay reste ouverte pour les am liorations Ce que j ai cr repr sente l affichage de base mais si l on veut une application ayant un fort aspect graphique il faut investir beaucoup de temps R f rences Java 2D Home Page http java sun com products java media 2D 4 8 3 Fen tre principale J ai laiss la description de cet l ment pour la partie finale consacr e au d veloppement car tous les autres composants de l application ont t expliqu es jusqu maintenant La fen tre principale impl ment e dans la classe FrMainWindow est le point d entr e dans l application et sert de liaison entre l algorithme de suivi la connexion et l affichage Elle correspond parfaitement au module principal dans l organisation modulaire de l application vue dans le cahier des charges et dans le chapitre Structure de l application La fen tre principale initie la connexion avec Novasys envoie les coordonn es vers Computation pour l analyse et finalement elle affiche les messages pour l utilisateur et fait appel MapDisplay pour mettre jour l affichage graphique Il est
119. t XML il faut choisir Le parseur ad quat Deux possibilit s habituelles sont le parseur DOM et le parseur SAX La premi re d cision tait d utiliser DOM cause de la petite taille de fichier analyser J ai commenc l impl mentation l aide des tutoriaux trouv sur l Internet Bient t le Drakic Vladimir 39 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS travail est devenu trop complexe pour la tr s petite quantit d information recherch e A la fin j ai trouv qu il est plus ad quat de cr er un micro parseur de quelques lignes de code L analyse fonctionne de la mani re suivante le r sultat r cup r ant rieurement est d abord transform en String avec casting On cherche les valeurs des variables lt Longitude gt et lt Latitude gt simplement en utilisant les m thodes de String indexOf et substring Si les cordonn es sont trouv es il faut les transformer Transformation des coordonn es Pour la transformation du syst me de longitude et latitude vers UTM j ai utilis le package JScience L utilisation est assez simple car on y trouve les classes LatLong et UTM avec la m thode latLongToUtm ce qui suffit pour les besoins de ce projet UTMMessage A ce point les donn es sont pr tes d tre envoy es a la classe qui fait appel a getData normalement la fen tre principale UTMMessage est la classe qui encapsule les coordonn es UTM du dernier mouvement Il est
120. t gt lt MagneticVariationEastWest gt Drakic Vladimir 38 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS lt NumberOfSatellitesUsed gt 0 lt NumberOfSatellitesUsed gt lt Position gt lt DocumentElement gt 4 7 2 Utilisation du service web MessageService Pour r cup rer le fichier de la position il faut faire appel au service web de Novasys qui apr s l identification fourni les donn es demand es Il s agit de la consommation d un service web NET partit de l application Java Cette connexion avec Novasys m a pos beaucoup de probl mes et j ai consacr une grande partie du temps sa r alisation Le plus grand souci est qu il existe beaucoup d inconnues dans ce processus et qu il est difficile de situer o est l erreur Par exemple le probl me peut venir cause des mauvais param tres de connexion de fausse configuration de Apache Axis ou des probl mes avec le parseur mais l erreur peut exister aussi du c t de serveur ce qui s est av r juste parfois Pour utiliser correctement un service web il faut conna tre son interface qu on trouve dans le fichier WSDL et qui est MessageService wsdl dans notre cas WSDL est le langage qui d crit l interface d un service web J ai essay d abord de r aliser manuellement la communication avec MessageService mais j ai chou apres plusieurs essais Sur les diff rents sites et forums j ai appris qu il existe un
121. t partie de la g ographie appliqu e M me sous ces circonstances je ne connais que tr s peu de concepts de ce domaine et je pense que leur pr sentation par mes propres mots ne serait pas suffisamment exhaustive et pourrait m me cr er la confusion chez le lecteur A cause de cela je cite surtout les notes de cours de Syst me d information g ographique trouv es sur le site de l Universit du Qu bec et crites de fa on assez compr hensible pour les non initi s Voyons d abord quelques termes fr quemment utilis s Le g o de Figure math matique complexe cherchant reproduire la forme r elle de la Terre correspondant la surface moyenne des oc ans niveau moyen des mers et son prolongement sous les terres merg es Tenant compte de la force de gravit le g o de s ajuste diff remment aux masses d eau et aux masses continentales La surface r elle de la Terre s carte plus ou moins du g o de moyen selon les variations locales du relief http www unites uqam ca L ellipso de C est une approximation math matique du g o de d finie partir de mesures g od siques et de la diff rence entre le rayon quatorial moyen grand axe de l ellipso de et le rayon polaire de la terre petit axe de lellipsoide gt http www unites uqam ca Dans notre cas on utilise l ellipsoide du syst me g od sique WGS84 World Geodetic System Drakic Vladimir 22 59 HEVs d cembre 20
122. tacles On y utilise les classes ShapefileDataStore FeatureSource Feature et FeatureCollection de GeoTools On r cup re les objets en traversant tout les fichiers et on compare les noms des attributs connus avec ceux trouv s dans les fichiers 4 6 3 JTS Java Topology Suite de Vivid Solutions est une API des fonctions spatiales 2D et il est utilis pour le d veloppement des applications qui travail avec des spatial datasets JTS impl mente les sp cifications OpenGIS http www opengeospatial org sous la licence LGPL Certaines m thodes de GeoTools font appel aux classes de JTS comme Coordinate MultiLineString et Polygon Les librairies ne viennent pas ensemble avec GeoTools donc il faut les t l charger s par ment depuis le site de Vivid Solutions 4 6 4 JScience C est une librairie compr hensive pour Java pr vu pour l utilisation par la communaut scientifique La librairie est open source sous la licence BSD et chacun peut essayer de l am liorer L id e des cr ateurs est de cr er une synergie entre toutes les sciences naturelles et sociales en les int grant dans la m me architecture Les possibilit s de la librairie son assez vastes mais dans le cadre de ce projet je ne l ai utilis e que pour la transformation des coordonn es longitude latitude recues de Mambo vers les coordonn es UTM utilis es pour les calculs Units On trouve ici les classes et des constantes li es aux mesures Elles so
123. ter property Parameters aMovement Filter the new value of the movementFilter property init private void init Initialisation des variables de la classe Computation La m thode est appel e pendant la instanciation et apr s le changement du segment Par d faut la valeur de previousPoint est gale au point de d part u segment courant Le tableau anglesVecteur est rempli avec des multiples de turnAngleUnit La taille de ce tableau d pend de turnAngleUnit Les valeurs de inObstacleTab sont mises a faux c est a dire l utilisateur ne se trouve dans aucun obstacle outOfBounds est galement mis a faux verifyMove public Infos verifyMove java awt geom Point2D Double currentPoint La m thode principale de contr le de mouvement Le point courant est compar au point pr c dent afin de trouver la direction Cette m thode fait appel aux autres m thodes de la classe afin de trouver si l utilisateur est d pass la limite s il toujours marche vers la fin du segment de I itin raire ou si il y a un obstacle devant lui D pendant des r sultats obtenus l instruction appropri e est pass e au module principal de l application Si le filtre de mouvement est actif les pas diff rences entre deux points plus petits que MIN MOVEMENT ne sont pas trait s Return value Infos avec les nouvelles donn es ou null si le point a t refus par le filtre de mouvement Parameters currentPoint Nouvelle position de l utilisateur
124. teur d passe une de ces lignes le logiciel l averti qu il est presque sorti de la zone du segment e Zoom Fonctionnalit de zoom n est pas encore impl ment e malgr le temps consacr Pendant l agrandissement l itin raire ne se trouve pas au bon endroit par rapport a l image de l arri re plan e L nigme d appels doubles Pour certaines fonctionnalit s le Action Listener est appel deux fois Un exemple est zoom o l chelle incr mente ou d cr mente deux fois si on appuie sur le bouton de zoom Je n ai toujours pas trouv la solution e T l chargement du plan de l itin raire Au lieu d adapter l image du plan manuellement il peut tre possible de t l charger depuis Novasys la partie du plan correspondante aux coordonn es de l itin raire IL s agit alors d automatiser le processus de l int gration du plan e D veloppement d un outil pour la cr ation de l itin raire La r alisation d un itin raire serait simplifi e si on pouvait cr er un outil d di cette t che Ce logiciel serait adapt aux caract ristiques de Dispatcher mais il garderait au m me temps le format de fichiers Shapefile cause de la compatibilit avec SIG e Am liorations de l algorithme de suivi Une meilleure reconnaissance des mouvements de l humain Reconnaissance des fausses donn es GPS plus avanc e e Itin raires inhabituels IL faut prendre en compte les cas exceptionnel
125. teurs o l axe y a le sens inverse par rapport la repr sentation math matique habituelle autrement dit y grandit en bas La bonne chose est que Graphics2D la classe de base pour tout ce qui est li au Drakic Vladimir 41 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS graphisme fournit la possibilit de changer le point d origine du syst me de coordonn es l aide des m thodes translate et scale Concernant les donn es du dernier mouvement les coordonn es de ce point sont modifi es dans FrMainWidnow pour qu elles soient adapt es au nouveau syst me de coordonn es Pour la meilleure orientation le plan de la r gion qui comprend la zone de l itin raire est affich derri re les l ments Java 2D Dans le cadre de mon projet l adaptation d un plan existant a un itin raire se fait de mani re manuelle Il faut que les coordonn es de l itin raire soient en accord avec les coordonn es du plan ce qui exige un peu de bricolage de l image du plan Zoom Au moment de l criture de ce chapitre cette fonctionnalit n tait pas totalement impl ment e parce qu elle n est pas prioritaire Le principe de zoom est d effectuer une transformation affine des objets graphiques en utilisant la m thode scale de la classe Graphics2D La m thode scale prend comme les arguments l chelle de l objet transformer Pour agrandir ou r duire l image la valeur de l chelle est augmen
126. tilisateur se trouve dans un obstacle valeur true La taille est gale au nombre d obstacles dans le segment courant outOfBounds Drakic Vladimir 3 45 HEVs d cembre 2006 Javadoc de Dispatcher private boolean outOfBounds La variable indiquant si l utilisateur se trouve en dehors des bornes movementFilter private boolean movementFilter D termine si le filtre des pas de mouvement est actif segmentDirection private double segmentDirection L orientation du segment de gauche vers droite gt de droite vers gauche gt movementDirection private double movementDirection Indique si l utilisateur s loigne ou rapproche la ligne du segment route private Route route R f rence vers la route actuelle infos private Infos infos Constructor Detail Computation public Computation Route route Cr e une instance de Computation Cr e la liaison entre route locale et route donn e comme argument La plupart des op rations d initialisation est effectu e dans init Parameters route Instance de Route C est l itin raire utilis Method Detail getMovementFilter Drakic Vladimir 4 45 HEVs d cembre 2006 Javadoc de Dispatcher public boolean getMovementFilter Determines if the movementFilter property is true Returns true if the movementFilter property is true setMovementFilter public void setMovementFilter boolean aMovementFilter Sets the value of the movementFil
127. tion Normalement apr s l tablissement de la connexion vous allez voir le d placement de l utilisateur en temps r el sans influencer l affichage Parce que ici il s agit d un prototype de l application demandant encore de tests j ai laiss la possibilit de simuler le mouvement de l utilisateur en cliquant avec la souris sur la r gion d affichage 3 Zoom in out Les boutons utilis s pour agrandir ou diminuer l affichage de l itin raire Le d faut de cette fonctionnalit est que zoom in ne positionne pas l itin raire au bon endroit par rapport l image de derri re plan Drakic Vladimir 4 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher 4 Coordonn es Les coordonn es qui se trouvent au dessous de panneau graphique ont la forme du syst me UTM repr sent e avec northing et easting Les valeurs affich es montrent la position sur la carte du pointeur de la souris 5 Indicateur de la connexion Cette ic ne montre l tat de la connexion qui peut tre active ou inactive 6 Chargement d un itin raire La proc dure de chargement d une route est tr s simple il faut choisir l option Ouvrir dans le menu Itin raire et ensuite choisir le fichier correspondant Les donn es de l itin raire se trouvent dans le type de fichier dont l extension porte le nom rte route Important Pour que les objets soient affich s il faut appuyer une fois sur le bouton de Zoom
128. u elles ne sont pas visibles sur l cran Etant donn que le travail sur le graphisme prendrait du temps nous sommes arriv s a l accord que en cas de Drakic Vladimir 40 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS manque du temps j effectuerai moins de tests que pr vu au d but du projet Suite cet accord j ai pu commencer int grer le graphisme dans mon application 4 8 1 Le graphisme en Java Les objets graphiques ont t cr s et affich s avec Java 2D Java 2D est une librairie graphique permettant de cr er des figures g om triques en deux dimensions Elle fait partie de la plateforme Java SE et par cons quent elle est fournie avec JDK Les classes utilis es dans Dispatcher comme Line2D ou Point2D repr sentent les formes g om triques et impl mentent l interface Shape Graphics2D est la classe de base pour tout ce qui est li l affichage des formes 2D On dessine les formes avec draw et on effectue les transformations avec des m thodes comme transform et translate 4 8 2 Impl mentation de l affichage La classe MapDisplay est impl ment e comme un composant graphique une sorte d cran qu on peut coller aux autres composants Elle h rite de JPanel et impl mente l interface Scrollable ce qui permet de d filer l image scroll si elle plus grande que le cadre du composant L id e de base est d afficher les composants statiques de la route comme les s
129. vement s arr te et le suivi n est pas effectu jusqu ce qu il n y retourne dedans L itin raire est cr l avance par le d veloppeur et est statique enregistr sur une application externe Pendant la cr ation d un itin raire il faut s assurer qu il n y ait pas d l ments dangereux sur le chemin de l utilisateur Ces objets comprennent trous surfaces d eau lacs rivi res etc et tous les autres endroits qui peuvent mettre en jeu la vie de l utilisateur Les l ments dangereux sont cart s mais les obstacles pouvant se trouver sur le chemin doivent tre pris en compte par l application Les obstacles ne doivent pas pr senter des objets dangereux pour la vie Les obstacles trouv s sur l itin raire peuvent tre soit des objets emp chant le passage comme un arbre une roche ou des voitures gar es soit des objets qui exigent une action de la part de l utilisateur comme le passage pi ton o il faut attendre le feu vert Les messages envoy s l utilisateur doivent tre cr s de fa on compr hensible humain Initialement le logiciel ne pr voyait pas la repr sentation graphique de l itin raire En accord avec le client il a t d cid qu il faut cr er un affichage de base de l itin raire et des mouvements effectu s par l utilisateur Drakic Vladimir 7 59 HEVs d cembre 2006 Dispatcher Suivi avec GPS 3 D marche 3 1 Calendrier et planification du t
130. ys com MessageService MessageService asmx WSDL log4j WARN No appenders could be found for logger Corg apache axis 1i18n ProjectR esourceBundle gt log4j WARN Please initialize the log4j system properly C axis 1_4 gt Vous allez trouver la structure des r pertoires cr e com novasys wstestO1 qui contient les fichiers GetMessageResponseGetMessageResult java MessageService java MessageServiceLocator java MessageServiceSoap java MessageServiceSoap 12Stub java MessageServiceSoapStub java PutMessage java PutMessageResponse java PutXMLToDB java PutXMLToDBResponse java Avec JBuilder il faut importer cette structure dans notre projet comme un nouveau package Dans le code on utilise directement seulement les classes MessageServiceLocator MessageServiceSoap et GetMessageResponseGetMessageResult Cet aspect j ai expliqu dans le rapport alors ici je expose uniquement les lignes dans le code Drakic Vladimir 21 22 HEVs d cembre 2006 Manuel d utilisation de Dispatcher Construction MessageServiceLocator serviceLocator MessageServiceSoap serviceSoap GetMessageResponseGetMessageResult result serviceLocator new MessageServiceLocator serviceSoap serviceLocator getMessageServiceSoap Utilisation nom de login est l IMEI de Mambo doivent tre connus result serviceSoap getMessage LOGIN IMEI Pour les d tails de la connexion voir le code sour

Download Pdf Manuals

image

Related Search

Related Contents

Ergotron WM Low Profile Wall Mount, XL  Ficha Técnica weber.tec imper F  Samsung GALAXY R User Manual  2015-04-22-BA_Gurt_Riemen_DE_01  User Manual  ɾ ″ Wood-Gas Stove – Operating Instructions  USER`S MANUAL  Siemens 200 Cordless Telephone User Manual  システム工学とその応用  DVD-R7783  

Copyright © All rights reserved.
Failed to retrieve file