Home
Projet de Fin d`Études - Département Informatique
Contents
1. la gestion de donn es distantes et l affichage Dans l optique d implanter une carte lors de l ex cution du projet 1l a fallu tudier les solutions qui s offraient nous et surtout r pondre au questions suivantes Comment tracer une carte avec les donn es d OpenStreetMap Comment r cup rer ces donn es afin de tracer ce qui nous int resse JMapViewer JMapViewer est une librairie Java permettant d int grer une carte OSM dans une application Java Les donn es utilis es pour afficher des informations sur une carte sont les donn es directement issues d OpenStreet Map Prenons un exemple nous voulons tracer les fronti res d un pays comme la France En regardant dans la documentation de la librairie http 1osm openstreetmap de doc index html org openstreetmap gui imapviewer JMapViewer html Nous constatons qu une solution s offre nous nous pouvons effectivement utiliser la classe MapPolygonimpl afin de dessiner le polygone qui repr sente les fronti res de la France Or en regardant le constructeur MapPolysonImpl ICoordinate points nous remarquons que nous avons besoin de l ensemble des points composant la fronti re de la France C est ici qu intervient TAPI Overpass 10 Overpass API Overpass est une API lecture seule qui renvoie les donn es demand es par l utilisateur l aide de requ tes sp ciales L utilisateur effectue ces requ tes et TAPI renvoie
2. t implant e En effet elle contient la m thode getArea qui va pr cis ment faire ce qui a t d crit plus haut 18 lt lt Java Class gt gt jMapViewerUtilities d jMapViewerUtilities aet rea String List lt Coordinate gt msetCoordinates String List Coordinate gt void sgetCoordinates String List lt Coordinate gt slinkFileToQueryiString String void s associatedFileToQuery String Strin R cup rer une zone est donc fastidieux car 1l faut syst matiquement agencer les noeuds r cup r s pour les remettre dans le bon ordre Nous avons donc impl ment un syst me de sauvegarde de r ponses aux requ tes de TAPI Overpass dans le bon ordre Pour cette sauvegarde nous avons d cid de proc der de la fa on suivante Un fichier ixt overpassQueries listQueries contient l ensemble des requ tes d j enregistr es ainsi que le nom du fichier associ contenant la r ponse la requ te en question c est dire l ensemble des points repr sentant la zone dans le bon ordre chaque ligne de ce fichier listQueries tant de la forme queries lt gt nomDuFichier Associ Lors de l appel la fonction getArea si la r ponse la requ te a d j t enregistr e localement ce qu on v rifie avec la m thode associatedFileToQuery on ne fait pas appel l API Overpass mais on r cup re les donn es en local complexit lin aire donc bien plus rapide gr ce la m
3. thode setCoordinates Si ce n est pas le cas on fait appel l API Overpass pour r cup rer les coordonn es souhait es dans le bon ordre et si le temps de traitement est trop long plus de 500 ms avant de renvoyer le r sultat on fait appel aux m thodes setCoordinates et linkFileToQuery pour enregistrer le r sultat de la requ te en local avec comme nom de fichier un UUID g n r al atoirement afin de pouvoir y acc der plus rapidement les fois suivantes Les m thodes setCoordinates getCoordinates linkFileToQuery et associatedFileToQuery ont t d clar es private afin de ne pas toucher manuellement au rangement des donn es en local Seule la m thode getArea acc de ces m thodes txt overpassQueries premi res lignes du fichier listQueries E 00000143 d4b6 9542 0000 0143d4b754c4 00000143 d4b8 d56a 0000 0143d4b8e112 rel name Midi Pyr n es gt out lt gt 000001 E 00000143 d4cd fe83 0000 0143d4ce0292 43 d4b6 9542 0000 0143d4b754c4 00000143 d4ce ef97 0000 0143d4cef2c2 rel name Toulouse admin level 8 gt out 00000143 d4ef Odca 0000 0143d4ef162e lt 700000143 d4b8 d56a 0000 0143d4b8e112 E listQueries 19 HI Difficult s rencontr es Pour aller plus loin Difficult s rencontr es La premi re difficult que nous avons rencontr e tait la question des licences et des droits des API Nous avions en effet pr vu de nous orienter vers les API et outils de
4. Google Maps au d but de notre projet mais leur utilisation n est pas libre et soumise certaines restrictions qui nous g naient dans notre projet mais surtout qui auraient pu devenir un vrai probl me par la suite si le projet INCOME d cidait de r utiliser notre code dans un programme plus large Nous avons tent de joindre Google en vain et nous avons donc r solu ce probl me en nous orientant vers le projet libre OpenStreetMap qui nous permettait d utiliser librement des outils similaires ceux de Google Maps Une deuxi me difficult fut celle de la documentation du projet et des APT issues d OpenStreetMap En particulier aucun sch ma XML n tait disponible pour les r ponses des diff rentes API utilis es Nominatim et Overpass et nous avons donc du cr er nos propres sch mas qui sont assez larges mais sans doute pas tout fait complets De plus le projet tant communautaire certaines zones g ographiques sont moins bien r f renc es que d autres avec peu de donn es Cela ne nous a pos aucun probl me majeur dans le cadre de notre d monstration car nous sommes dans la zone urbaine de Toulouse qui est relativement bien d crite mais cela reste un probl me en g n ral pour l utilisation de cette API Enfin l affichage des donn es a parfois pu nous poser probl me encore une fois cause du manque de documentation et d exemples en ligne davantage pour TAPI Overpass et l affichage de zone
5. e pour notre projet Ainsi l architecture est compos e d un serveur REST auquel peuvent se connecter des clients pour acc der aux diff rents services du serveur voir partie 2 3 3 Producteur Consommateur Producteur ue Producteur Serveur REST Figure 3 Sch ma de l architecture centralis e 12 REST Nominatim API Enregistrement Client a i Serveur OpensStreetMap REST Service 1 o 2 gt Maan Overpass API Client OpenStreetMap JMapViewer Affichage Figure 4 Sch ma du d roulement d un appel La figure 4 montre les processus d appel aux diff rentes API et les services qui entrent en jeu lors de l ex cution de notre projet 13 5 igure UML Fi iagramme D 2 2 3 plon Bus abell1as buus ebell e pion bums amangjas Gums amangsah plon bums aangjas buus hsansieb proa uug apoo Aqunonjas Guug apoo Auno yaf pion Bus Aqunosyss Guug qunona plon Bus apoasoqes Guug aponsodaf pion Bus aesies uus aesie6 plox Buus Qunosyes Guug Aqunonyef pion Bus ti91es bums Aah pion bulms pooynogublanyas Gus poounogubianjah plon Bus peoyes bus peoyef pron fuus asnopas bumsd asnoHah suedssauppy bums GusGus bus Bus bus Guns bus bus Guns bus bus syedssappu bus apoa Ajunod o bus Auno o bus apoaysod o uS 348S 0 Bus Auno
6. l on entend par chelle g ographique associ e un consommateur En ayant pris en compte cette probl matique on comprend l int r t d utiliser un syst me dit multi chelle En effet chaque consommateur sera d fini par ses informations g ographiques qui vont correspondre plusieurs couches g ographiques d finissant de mani re unique un point de la Terre Le projet s articule de la mani re suivante e Obtention des informations de g olocalisation d un terminal fixe ou mobile e Transformation de ces informations en informations de plus haut niveau adresse ville c est dire en couches g ographiques e Tests d appartenance d un ensemble d l ments distribu s g ographiquement une m me chelle g ographique c est dire d terminer la plus petite chelle g ographique commune d un ensemble d l ments e Affichage des informations sur une carte Notre projet s appuie sur la r cup ration et l utilisation des coordonn es GPS savoir latitude et longitude en format d cimal Le sch ma suivant propose une vision simpliste de la gestion d informations de localisation dans notre API pai Puce GPS Service mobile API utilis es GPS ES EEN ELAR oTi Figure 1 Sch ma de l acheminement des donn es Une fois r cup r es les coordonn es GPS sont utilis es dans les diff rentes API que nous utilisons afin d obtenir dans un premier te
7. lt relationz dosm gt Il est important de noter une chose les balises lt node gt au d but du fichier indiquent les points qui composent la fronti re voulue les balises lt way gt les chemins et enfin la balise lt relation gt repr sente la fronti re en tant qu objet OSM Or si nous prenons simplement la liste des points partir des balises lt node gt comme il semble l gitime de faire alors le trac obtenu ne sera pas viable car les balises lt node gt sont organis es en fonctions de leur identifiant et non en fonction de leur succession dans la fronti re Il en va de m me pour les balises lt way gt Or dans la balise lt relation gt contenant elle m me des balises lt way gt faisant r f rence aux balises lt way gt vue pr c demment l ordre de ces balises est le bon en termes de succession dans la fronti re Il faut donc proc der en partant du bas du fichier 1 avec la balise lt relation gt on r cup re l ordre des way 2 avec chaque balise lt way gt ind pendante qui n est pas dans la balise lt relation gt on r cup re le bon ordre des nodes 3 partir des balises lt node gt restantes ind pendantes on r cup re les coordonn es de chaque point dans le bon ordre pour l affichage que l on va enregistrer dans une java util List C est pour cette raison que la classe JMapViewerUtilities a
8. setS trokelnew Basic troke 43 style setFont font i MapPolygon frontieres new MapPolygonImpl laverAreas name nodes style Add the area to the map remove rea name areas put name frontieres map addMapPolygon frontieres public void removeArea String name 4 if Careas containsKey name map removeMapPolygon areas get name areas remove name Le syst me de couche ou layer permet de regrouper plusieurs objets dessiner points zones cercles dans un m me calque Afin de pouvoir supprimer l un de ces objets facilement par la suite pour l effacer de la carte chaque fois que nous en ajoutons un nous l enregistrons dans une HashMap afin de pouvoir le r cup rer facilement gr ce son identifiant 17 Avant de pouvoir dessiner la zone proprement parler il nous faut la liste des coordonn es qui en composent la fronti re Ces points sont r cup r s gr ce l API Overpass En reprenant le sch ma vu plus haut rel name Toulouse admin_level 7 gt out TKI i Meli d 1 kah a ILA dl a i j i lt osm version 0 6 generator Overpass API gt node id ref1 lat x1 lon y1 gt lt node id ref2 lat x2 lon y2 lt way id 1d2 gt nd ref ref2 gt nd ref refl gt nd ref ref3 gt lt Way gt lt way id id1 gt lt Way gt lt relation id idAelation gt lt way refs id1 5 lt way ref u id2 gt
9. 9 o us a6ellla c us Aia o ug qunqns o bus pooysnoqyfiau o uS 333S o u peos o ung asnoy o syuawejgjux Jaqwaw plox Bus amas Gums awah bus alo sjuawejgwux saqw w 6 lt lt S5E BAB gt gt 0 Jaqugu plon lt BuS ale2S gt deluseH sIuauoduo ssasppyas lt uus aeoc denuseH suauoduos ssayppya Guug aouesUIa122SUMOUYISaIIELUS aje ajeasumbuwisajjews Gum uso pion egajeosoag edsip lyedale2S089 Jepou e Pon bums pnas bums pnabh pion bums uonas Guug uo ef pion Bus he nes Guus he nef BUS pi o Bung u0 o uus el a Bus bums ujedalesoan lt bums aleas gt dewuseH uedaleasoao 0 Buus uns yedalrsos e lt uS ale2S gt deNUSEH sjugu0dwod ssasppe o syuewajgux suwel gun syuewajgux Juoyersi plox Buus pres 312 ONICINE EENS 31235 JOOHHNOBHOIAN PS aunas A TS AID ELENEN EEN SIE2S AHLNNOD Jk jur an enef ui ajeos E Jul ane p 8E2S LNIOd fy pue plon bulms jawas Euus Jewef BUS Jal 0 SJUBU A JUN pu lt lt SSB BARIS gt syuewejgux aleISs lt lt U0 eJaWnUuz BARf gt gt Uenpeelyulsyedele2S 089 9 Buus ales LanDealyusuedele2S089 9 pna pioA lt 19gwawsjsin agwanjas lt J qw w gt s T qw ya us p o L O aleas Meme plon Bus pres plox Buus pres uus pne6 Guus pnab pion a
10. Coordinatez void removeArea string void draw ircdlel string Color Color double double double wod removeLircde sString void drawPoint String Color double double jwoid removePointistring void drawToulouseSuburb intint Color Color void amp main String l void 16 Une des fonctionnalit s qui nous int resse particuli rement est la possibilit de tracer des polygones En effet c est avec ce genre de m thode que nous pourrons repr senter des zones g ographiques et ainsi tre capable d afficher les chelles g ographiques que nous avons cr es ainsi que les informations obtenues gr ce aux deux services d crits plus haut dans ce rapport ce titre nous avons cr des m thodes de dessin de zone drawArea de cercle drawCircle et de point drawPoi int qui permettent de dessiner chaque objets facilement notamment d finir un style graphique particulier Le code suivant repr sente les m thodes drawArea et removeArea private Layer layerAreas new Layer LayerAreas i private HashMap lt String MapPolygonz areas new HashMap lt String MapPolygon gt public void drawArea String name Color borderColor Color innerlolor List lt Coordinatez nodes T Style style new Style Color myColor new Color innerColor getRed innerColor getGreen innerColor getBlue 50 Font font new Font Calibri Font B LD 20 stvle setColor borderColor style setBackColor myColor stvyle
11. Maps constitue une base de donn es tr s fournie et semble le choix id al tant au niveau de la fiabilit qu au niveau du contenu L API Google Geocoding fournit un moyen direct d acc der au services de g ocodage et de g ocodage invers via des requ tes HTTP Nous nous int ressons 1c1 au service de g ocodage invers Ce service est support en utilisant en param tres les coordonn es GPS 1 e latitude et longitude Par exemple la requ te suivante contient les valeurs de latitude et longitude de la rue Charles Fourier vry http maps googleapis com maps api geocode xml lating 48 624422 2 44438 amp sensor true Ici le format de retour est le format XML mais peut tre chang en JSON Le r sultat obtenu est comme suit T lt GeOoCcOodeResponse gt lt status COK lt status T lt result gt lt type street address lt type lt formatted address gt 5 Rue Charles Fourier 91000 vry France lt formatted address gt caddress_component gt long _name gt 5 lt long _name gt lt short name gt 5 lt short name gt lt type gt street number lt type gt lt address component gt T lt address component long name gt Rue Charles Fourier lt long name lt short name gt Rue Charles Fourier lt short name gt lt type route lt typez lt address component T lt address component lt long name gt vry lt long name gt lt short name gt vry lt short name gt lt typerlocality lt tvpe gt lt type political l
12. Projet de Fin d tudes ASR 2013 2014 Sondes g ographiques pour syst mes r partis multi chelles TELECOM SudParis RTL Rapport d activit tudiants Luc Cl ment Arnaud Saunier Encadrants Claire Lecocq Sam Rottenberg Chantal Taconet Mardi 26 janvier 2014 Tables des mati res Introduction I Contexte du projet 1 1 INCOME 1 2 Pr sentation du projet IT D veloppement 2 1 Environnement de d veloppement 2 2 Description et cas d utilisation des API 2 2 1 Relatives la gestion de l adresse IP 2 2 2 Relatives la g olocalisation 2 2 3 Relatives la gestion de donn es distantes et l affichage 2 3 Architecture utilis e 2 3 1 Architecture centralis e 2 3 2 Diagrammes UML Figure 5 2 3 3 Services fournis par le serveur 2 3 3 1 Enregistrement d un client 2 3 3 2 D termination de la plus petite chelle commune 2 3 3 3 D couverte des terminaux proximit 2 3 4 Affichage des r sultats HI Difficult s rencontr es Pour aller plus loin IV Manuel d utilisation Conclusion Bibliographie Introduction La gestion des donn es de contexte est synonyme de pr occupation majeure dans le d veloppement des applications de demain En effet les applications sensibles au contexte repr sentent un march important pour le d veloppement futur des applications mobiles Celles ci utilisent des informations de contexte de haut niveau d abstraction elles m mes trait es et
13. S5R BAB gt gt wso pioa uonejas uonejayas uonejas uonejaya pioa lt Kem gt si emas lt emysr7 enel 0 pioa lt apou gt si7 apoyjas lt pou gt s T poyja piox easykejdsip sjuaweajgjux Ws0 6 lt lt S52 9 BARf gt gt 14 2 3 3 Services fournis par le serveur 2 3 3 1 Enregistrement d un client Le premier service propos par le serveur est tout simplement l enregistrement sur le serveur d un chent Le prototype du service est le suivant GET Produces text plain Path addGeoScalePath public String addGeoScalePath QueryParam name String name QueryParam lat String lat QueryParaml lon String lon Les trois arguments sont pass s comme cha nes de caract res l identifiant du client enregistrer sa latitude et sa longitude Ce service renvoie success si le client a bien t enregistr sur le serveur 2 3 3 2 D termination de la plus petite chelle commune Ce service calcule partir d une liste d identifiants de clients le plus petit chemin d chelles commun entre tous les clients enregistr s parmi ceux de la liste pass e en argument ainsi qu une liste des identifiants pass s en argument qui n taient pas enregistr s sur le serveur Par plus petit chemin d chelles commun il faut comprendre un GeoScalePath comprenant comme address components l ensemble des instances d chelles communes tous les cl
14. de contexte e Production des informations de plus haut niveau d abstraction e Acheminement des informations aux applications ambiantes INCOME a pour ambition de fournir des m thodes et des outils pour la gestion de contexte multi chelle et de r pondre aux verrous associ s INCOME cible le niveau infrastructure pour des applications grand public sensibles au contexte d ployer grande chelle en termes de nombre de sites de d ploiement et de nombre d utilisateurs Pour ce type d application les informations de contexte disponibles l utilisation varient en fonction des dimensions g ographique et temporelle Dans ces conditions des strat gies de d ploiement autonomiques des entit s de gestion de contexte sont essentielles Ces strat gies permettront de r soudre automatiquement les probl mes li s l instabilit et l ouverture de l environnement tout en respectant un ensemble de contraintes de qualit de service ou de s curit http www irit fr income 1 2 Pr sentation du projet Dans le cadre du projet INCOME notre projet s inscrit dans une approche g ographique du syst me avec des mesures de localisation et dans le d veloppement de sondes g ographiques multi chelles La probl matique est la suivante comment prendre en compte les chelles g ographiques associ es un consommateur dans l change de donn es avec des producteur s consommateur s Il faut donc d terminer ce que
15. e2s ale2gies PIOA lt PU gt S11 PAISS lt pu gt siT pais u pi o sjusewejgux ajess ajeosa uns pi 0 syuewejgjux ujedale9s 099 pou g FRO uo e191 6 Menpeeryu sy ede 22S089 Keng lt lt 55SR BARIS gt lt lt 5SR BARBIS gt lt lt 55SR BARBIS gt lt lt S58 1 BARI gt gt lt lt 5SR BARIS gt A KI F0 WeduOWWOTSa IEUSO KE d81EIS080 S I FO uopela suedssesppy lt lt S5B 1 BABF gt gt LO suedssasppe plox suedssauppy suedssalppyias suedssauppy suedssaippra Bus suedssaippy aposoabesienss 9 pion Buus hinsayes Euus hnsema Jepososbesianai BUS 4jnsal o sjuewejgjux a po30 s1 A31 lt lt 552 7 EARf gt gt plon lt bulS gt sIN sujegajeasoa9pjumauyunjas lt uushs17 sedale2Sos9pIumouquna pion ue48 82S089 UEdUOWLON S8IIELS 8S Wed8182S089 jeduoumuonsalewusa Nsmuedaleasoan plon lt ujeda e9s0899 gt sIM isImas lt ujedale9s089 gt 1sim4sImab sjusweajgux SU 48 2296 089 6 lt lt S52 9 BAUS gt gt lt bums gt sIm edas asuodsaydIS yedajeagoag us yedaeos03 SmUedaleagoag Hangeayusyedaeogo eayusyedaegoai a suods ydAS UNOdASIeguowwonsaews buus Buus uus us yedereososoppe LJenuasoso e Jesuodsay49s uus uuso lt u gt SUIEd8IE2S089PIUMOUXUN 0 sjuawajgjux esuodseyd9s A lt lt 552 7 BABf gt gt JONES 19Mas099 0 lt lt
16. explor e 2 2 2 Relatives la g olocalisation Apr s avoir r cup r les coordonn es GPS d un terminal 1l faut tre capable d en d duire les informations qui nous int ressent c est dire les chelles g ographiques qui sont des informations de plus haut niveau Pour ce faire plusieurs API ont t tudi es en particulier leur service de reverse geocoding Le reverse geocoding ou g ocodage invers consiste tout simplement effectuer l inverse du g ocodage trouver partir de coordonn es GPS plusieurs informations 1 un point d int r t accompagn de son adresse une adresse compl te avec num ro une adresse partielle sans num ro un arrondissement ou une commune un d partement une r gion un pays I SN OR ND tout autre zonage m tier consid r c est dire des zones plus sp cifiques zone d activit etc On distingue alors parmi ces l ments la topologie qui suit 1 les adresses issues d un noeud 2 les adresses issues d un chemin 3 les adresses issues d une relation ou zone Cette fonction de reverse geocoding tant centrale dans notre projet nous avons d chercher des API efficaces r pondant ce besoin et nous avons retenu deux API de g olocalisation savoir Google Geocoding API et Nominatim API du projet OpenStreetMap Google Geocoding API L API Google Geocoding fait partie des services propos s par Google Maps Google
17. ients incrimin s condition qu ils n existent pas pour ces clients des niveaux d chelles plus larges diff rents par exemple ce service ne renvoie pas l chelle ville si les deux clients comparer se trouvent tous les deux dans une ville de m me nom mais dans des r gions ou pays diff rents Nous utilisons deux classes s rialisables SCPQuery et SCResponse comme classes d arguments et de retour pour que JaxB puisse les marshaller automatiquement en XML Le prototype du service est donc le suivant POST Produces application xml Consumes application xml Path smallestCommonPath public SCPResponse smallestCommonPath SCPQuery 1dGeoScalePaths throws JAXBException 2 3 3 3 D couverte des terminaux proximit Ce service permet un client de r cup rer l ensemble des noeuds se trouvant dans la m me instance d chelle pass e en argument d un client dont l identifiant est galement pass en argument L algorithme de ce service est relativement simple le serveur parcourt la HashMap et ajoute un client la liste des clients proximit si pour chaque chelle du client de r f rence plus large ou gale l chelle de r f rence le client tudi poss de les m mes chelles avec des instances d chelles identiques celles du client de r f rence 15 Nous avons galement cr deux classes s rialisables comme pour le service de d termination de la plus pet
18. ite chelle commune GeoScalePathsInAreaQuery et GeoScalePathList comme classes d arguments et de retour pour que JaxB puisse les marshaller automatiquement en XML Le prototype du service est le suivant GPOST ialah en ee akak onsumes application xml Path geoscalepathanarea public GeoScalePathlist geoScalePathsnarea GeoscalePhthsInAreaquery query throws JAXBException 2 3 4 Affichage des r sultats L affichage des r sultats sur une carte visible pour l utilisateur se fait l aide de la librairie JMapViewer Les outils et m thodes mis disposition nous permettent de cr er des objets simples point ligne zone sur une carte toujours en prenant en argument les coordonn es GPS La classe java DisplayMap instancie une carte et met en place les l ments n cessaire la navigation dans celle ci par l utilisateur Nous vous invitons regarder la documentation de la librairie ainsi que la classe DisplayMap de notre projet lt lt Java Classz gt DisplayMap MapViswer serial VersionUID long a treeMap JMapViewerTree o zoomValue JLabel o mperpLabelYalue JLabel o layerPoints Layer a points HashMap lt String MapMarkerDot gt o layerAreas Layer areas HashMap lt String MapPolygonz o laverCircles Layer a circles HashMap lt sString MapMarkerCirclez amp DisplayMap m Map JMapViewer m update oomParameters void processCommand JMVCommandEvent void drawArea String Color Color List lt
19. le permettait Nous avons d velopp notre projet via l IDE Eclipse cependant pour une utilisation plus universelle il serait pr f rable d utiliser l outil Maven et ainsi cr er des scripts de compilation 21 IV Manuel d utilisation Voir le paquetage tests du projet ainsi que la Javadoc Comme dit pr c demment Maven n a pas t utilis dans le cadre de ce projet donc les seuls besoins pour ex cuter notre code sont un environnement Java les librairies Jersey et JMapViewer Pour lancer en local 1l suffit de lancer la classe Publisher qui lancera le serveur local puis lancer une classe qui implante une connexion celui ci Exemple static final String REST URI http localhost 9990 My erver public static void main String argsi 1 Client client Client createlnew DefaultllientConfig URI uri UriBuilder from riC REST_URD build WebResource service client resource urti Certaines classes n ont pas besoin de serveur pour tre test es notamment en ce qui concerne l affichage d l ments sur une carte cf paquetage tests Pour les d monstrations r alis es lors de la pr sentation D monstration 1 Lancer Publisher java Lancer Clients java Lancer Graphic java et Graphic2 java Passer d une tape la suivante en appuyant sur entr e dans la console de Clients java o Graphic affiche un point de vue externe avec la position de chaque client le suburb dans lequel se t
20. les donn es correspondant ces requ tes A contrario de TAPI principale Overpass est essentiellement destin e la consommation de donn es Les requ tes sont au format XML ou au format Overpass OL format propre TAPI cf Bibliographie Dans le cadre de notre projet nous testons les requ tes dont nous voulons retrouver les donn es via l interface d Overpass Turbo cf Bibliographie Figure 2 afin de v rifier la v racit de celles ci Puis nous utilisons le syst me de liens permanents pour les requ tes implant es dans le code Exemple de lien permanent http overpass api de apr interpreter data requ te rel name Toulouse admin_level 7 gt out mL nee i i Aii a m ai pu ijITE Gi A WU CIE l u ETICO Uir lt osm version 0 6 generator Overpass API gt anode id ref1 lat x1 lon y1 lt node id ref2 lat x2 lon y2 gt lt way id id2 gt end ref ref2 gt lt nd ref refl gt end ref ref3 gt lt way gt gway id id1 gt lt Way gt lt relation id idAelation gt lt way ref id1 gt lt Way refs id2 gt relations dosm gt Figure 2 gauche un exemple de requ te droite le sch ma de retour de TAPI au format XML Le traitement de ces donn es est abord dans la partie 2 3 4 de ce rapport 11 2 3 Architecture utilis e 2 3 1 Architecture centralis e Nous avons choisi une architecture centralis
21. mps les informations de g olocalisation et dans un second temps apr s traitement par notre API les informations de plus haut niveau Ensuite les algorithmes implant s dans notre API vont permettre de d terminer les niveaux d chelle communs entre plusieurs clients jusqu n clients Enfin ces informations pourront tre utilis es pour la gestion de donn es de contexte ou tout simplement pour tre affich es sur une carte 11 D veloppement 2 1 Environnement de d veloppement Le projet a t d velopp sous Eclipse en langage Java et a utilis des API Java dont les d tails seront donn s dans la suite Nous avons principalement d velopp sous les syst mes d exploitation Mac OS X et Linux et un peu sous Windows Les librairies n cessaires l ex cution du projet sont les librairies JMapViewer pour l affichage de cartes cf 2 2 3 et Jersey pour le service REST cf 2 3 1 Voir la bibliographie pour les sources 2 2 Description et cas d utilisation des API 2 2 1 Relatives la gestion de l adresse IP La gestion de l adresse IP d un terminal pour en d terminer ses coordonn es GPS a t tudi mais n a pas t implant dans la version finale du projet En effet dans la version finale les coordonn es GPS sont entr es en dur la fois pour un gain de temps mais galement pour un gain de pr cision Cependant une possible solution est TAPI REST publique freegeoip
22. net freegeoip net est financ par la communaut et est libre d utilisation jusqu 10000 requ tes par jour L utilisation de ce genre TAPI est tr s simple il suffit d implanter une requ te HTTP GET dans le code de la mani re suivante Appel en REST l adresse freegeoip net format 1p ou hostname Exemple de requ te REST et de r ponse adresse http freegeoip net xml r ponse lt Responsez lt Ip gt 157 159 110 46 lt Ip gt lt CountryCode gt FR lt CountryCodez gt lt CountryName gt France lt CountryName gt lt RegionCode A6 lt RegionCodez gt lt RegionNamez gt ile de France lt RegionName gt lt City vry lt City gt lt ipCode gt lt Latitude gt 46 65328 lt Latitudez lt Longitude gt 2 4405 lt Longitudez lt MetroCode gt lt AreaCode gt lt Response gt Un inconv nient important de ce genre de service est la pr cision de celui c1 En effet l adresse IP enregistr e est celle du noeud de raccordement d abonn s du fournisseur d acc s internet correspondant au r seau internet auquel le terminal est connect Ainsi les coordonn es renvoy es correspondront au noeud de raccordement d abonn s et non la position pr cise du terminal Il en va de m me pour r cup rer la position d un terminal mobile C est pourquoi 1l devrait tre plus efficace d utiliser la puce GPS du terminal mobile directement Cette solution n a pas t test e et est laiss e in
23. obtenues partir d informations de contexte brutes issues de l environnement de l utilisateur Ce rapport est organis de la mani re suivante tout d abord sera pr sent le contexte du projet savoir le projet INCOME puis seront expos es les tapes de d veloppement du projet justifiant les choix d architecture effectu s et d taillant les diff rentes fonctions mises en place ensuite seront mis en avant les diff rents commentaires sur le travail rendu entre autres les am liorations possibles pour le projet et les difficult s rencontr es lors de la r alisation et enfin un manuel d utilisation pour garantir la maintenabilit du code I Contexte du projet 1 1 INCOME Le projet INCOME INfrastructure de gestion de COntexte Multi chellle pour l Internet des Objets est un projet financ par l Agence Nationale de la Recherche ANR dans le cadre du programme Infrastructures mat rielles et logicielles pour la soci t num rique dition 2011 Soutenu par plusieurs organismes tels que les p les de comp titivit Aerospace Valley et Systematic c est cependant l Institut de Recherche en Informatique de Toulouse qui en est le responsable ceci s ajoutent les partenaires que sont Artal et Telecom SudParis Le projet a pour objectif de fournir infrastructure intergicielle pour la gestion de contexte multi chelle pour l Internet des objets offrant les services suivants e Acquisition des donn es
24. rouve L on et un cercle autour de Chantal o Graphics affiche le point de vue de L on qui ne souhaite partager ses donn es de contexte qu avec les clients situ s dans son suburb on ne voit donc sur la carte que L on son suburb et les clients qui se trouvent dans son suburb D monstration 2 Lancer Publisher java Lancer Clients java Lancer Graphic3 java Passer d une tape la suivante en appuyant sur entr e dans la console de Clients java o Graphic3 affiche l ensemble des protagonistes ainsi que la plus petite chelle commune entre Sophie et Amel Dans la d monstration selon l tape 1l peut s agir de la r gion Midi Pyr n es de la ville de Toulouse ou bien des suburb 1 ou 5 de Toulouse 22 Conclusion Ce projet tait une opportunit pour nous de d velopper nos comp tences en Java notamment dans la gestion SAPI et la gestion de donn es qui en sont issues mais surtout cela nous a donn la chance de participer un projet d envergure plus importante qu est INCOME L usage permanent de Git nous a galement permis de nous familiariser avec cet outil indispensable Les objectifs atteints Nous avons pu atteindre les objectifs qui nous avaient t donn s et m me approfondir certains points et nous avons rendu un code fonctionnel accompagn d une d monstration et d une javadoc compl te Le travail restant e Portage du code sous Andro d ou autres syst mes d exploitation mobile e In
25. s que pour l utilisation de la librairie JMapViewer Notamment nous avons trouv que les zones ou r gions taient tr s mal d crites par TAPI Overpass et donc peu facile dessiner sur la carte Pour aller plus loin Notre projet part du constat selon lequel l utilisateur dispose des coordonn es GPS des terminaux qui l int ressent Nous avons mentionn plus haut dans le rapport la possibilit d int grer la gestion de l adresse IP des terminaux afin de r cup rer les coordonn es GPS requise pour notre API Cette voie n a pas t approfondie tant donn le temps limit accord ce projet Nous voulions nous concentrer sur la partie la plus importante c est dire le traitement des donn es et la construction de TAPI proprement parler Les identifiants utilis s pour caract riser chaque terminal se connectant au serveur sont les noms que l utilisateur donne ceux ci Or on peut imaginer donner des identifiants automatiquement de mani re unique chaque terminal sans avoir internvenir Pour cela l adresse MAC peut tre utilis e seule ou associ e un UUID La classe Test MAC implante la r cup ration de l adresse MAC de la machine 20 Nous pouvons galement imaginer tendre ce projet avec la gestion des terminaux mobiles ce gul n cessiterait de d velopper des sondes en langage mobile tel gu Android Cette id e est l origine un des r sultat du projet demand si le temps nous
26. sparte gt lt house gt MAISEL IT Sudparis lt house gt lt road gt Rue Charles Fourier lt road gt lt neighbourhood gt Les Epinettes lt neighbourhood gt lt city gt vryv lt city gt lt county gt vry lt county gt lt state le de France lt state gt lt postcode 910l1l1l lt postcodez country code gt fr lt country code gt lt addressparts gt lt reversegeocode gt On constate que le r sultat obtenu semble plus simple que celui obtenu avec TAPI Google Geocoding Cette API n tant pas plus compliqu e voire plus simple utiliser que les API de Google Maps et poss dant l avantage de faire partie d un projet libre OpenStreet Map elle comprend d autres API et outils int ressants alors nous avons d cid de l utiliser dans notre projet L utiisation de cette API est en effet assez simple nous l appelons de la fa on suivante String RESI URI http nominatim openstreetmap org reverse ClientConfig config new DefaultClientConfigl Client client Client createlconfig WebResource service client resource REST URI reversegeocode geocodeResponse service path xml queryParaml lat lat queryParaml lon lon queryParaml zoom 18 queryParaml addressdetails 1 get reversegeocode class Ainsi l aide de JaxB nous r cup rons directement une instance de la classe reversegeocode que nous avons d velopp e sur le sch ma de r ponse de l API 2 2 3 Relatives
27. t gration du code ou adaptation au projet INCOME Remerciements Nous tenons remercier particuli rement nos encadrants e Claire LECOCQ e Sam ROTTENBERG e Chantal TACONET 23 Bibliographie JMap Viewer http svn openstreetmap org applications viewer jmapviewer Jersey https jersey java net Google Geocoding https developers google com maps documentation geocoding hl fr Nominatim http wiki openstreetmap org wiki Nominatim http wiki openstreetmap org wiki Nominatim FAQ http wiki openstreetmap org wiki Nominatim Development overview Overpass Turbo http overpass turbo eu Overpass API http overpass api de http wiki openstreetmap org wikt Overpass API D p t Git du projet oit ssh fusionforge int evry fr var lib gforge chroot scmrepos git asr geo probes asr geo probes git INCOME http www irit fr income 24
28. t typez lt address component gt vT lt address component lt long name gt Essonne lt long name gt lt short name gt 9l1 lt short name lt type administrative area level 2 lt type gt lt typerpolitical lt typez lt address component vT lt address component lt long name gt le de France lt long name gt lt short name gt IDF lt short name gt lt type administrative area level 1 lt type gt lt typerpolitical lt type gt lt address component T lt address component long name gt France lt long name gt lt short name gt FR lt short name lt type country lt type gt z lt tvperpolitical lt tvpez lt address component v lt address component gt long name gt 91000 lt long name gt mlh mik namas OO cm ee mm Comme on peut le constater le sch ma XML qui semble op rer ici parait relativement compliqu C est une des raisons qui nous a pouss s ne pas choisir cette API De plus l utilisation de cette API n est pas libre et est soumise une r glementation qui ne convient pas au projet que nous avons men Nous avons envoy une requ te Google France en esp rant un retour favorable afin d utiliser TAPI sans restriction dans un cadre purement ducatif mais aucune r ponse ne nous est parvenue Projet OpenStreetMap Le projet OpenStreetMap a pour but de constituer une base de donn es g ographiques libre du monde en utilisant le syst me GPS et d autres donn es libres et ainsi perme
29. ttre aux utilisateurs d exploiter des carte du monde librement Le projet a t lanc en 2004 par Steve Coast l University College de Londres D but 2013 le projet a atteint son millioni me contributeur En effet ce projet est bas sur l intervention et la collaboration de tout utilisateur volontaire De la m me mani re que Google Maps OpenStreetMap propose de nombreux services et API certains pour contribuer au projet API d dition et d autres pour utiliser les donn es du projet Dans le cadre du projet plusieurs l ments vont nous int resser les API Nominatim et Overpass ainsi que la librairie JMapViewer qui seront d velopp s dans la partie suivante cf 2 2 3 Nominatim API l instar de Google Geocoding API Nominatim fournit un moyen direct d acc der au services de g ocodage et de g ocodage invers via des requ tes HTTP La requ te suivante effectue la m me op ration que l on a vue pr c demment savoir interroger le service ici OpenStreetMap pour avoir un retour d adresse http nominatim openstreetmap org reverse format xml amp lat 48 624499 amp lon 2 44438 amp zoom 1l8 amp addres sdetails 1 Ainsi le r sultat obtenu en XML lt reversegeococode timestamp Mon 27 Jan 14 16 22 14 querystring format xml amp osm type N amp lat 48 62442241 v lt result place id 55837526 osm type way osm ij MAISEL IT Sudparis Rue Charles Fourier Les Eg lt j result gt v lt addres
Download Pdf Manuals
Related Search
Related Contents
Turntable Technical Handbook Samsung DS-21G5 User's Manual Copyright © All rights reserved.
Failed to retrieve file