Untitled - Université de Montpellier

Transcription

Untitled - Université de Montpellier
Remerciements
Au terme de ce travail, j’aimerais adresser mes remerciements à toute personne
ayant contribué, de près ou de loin, à sa réalisation.
Je témoigne toute ma gratitude à la société BSD CONCEPT SARL, qui m’a fait
partager un environnement de travail convivial et une ambiance collaborative très
agréable.
Je remercie plus particulièrement M. Nicolas TREHEL, mon chef de projet. J’ai
beaucoup appris grâce à lui et à son aide considérable au cours de ces quelques
mois.
Que le corps professoral et administratif de l’université Montpellier II et surtout M.
Eric Bourreau, mon encadrant, trouvent ici ma reconnaissance, pour tout le travail
effectué durant mes années d’études.
Enfin, une pensée spéciale pour ma famille, mes proches et aussi à toutes les
personnes qui m’ont aidé de façon directe ou indirecte durant mon cursus.
Elimane NDIAYE
Page 2 sur 45
Table des matières
Remerciements ....................................................................................................................................... 2
CHAPITRE 1 : ............................................................................................................................................ 6
Introduction............................................................................................................................................. 7
1. Présentation de l’entreprise ............................................................................................................ 7
1.1 Les origines de BSD Concept ................................................................................................. 7
1.2 L’origine du nom Heredis ...................................................................................................... 8
1.3 Historique .............................................................................................................................. 8
1.4 Marché .................................................................................................................................. 8
1.4.1 Positionnement sur le marché français .............................................................................. 9
1.4.2 Positionnement à l’international........................................................................................ 9
1.5 Les clients .............................................................................................................................. 9
1.6 Les associations ................................................................................................................... 11
1.7 Les différents produits......................................................................................................... 11
1.7.1 Le logiciel Heredis ............................................................................................................. 11
1.7.2 Les applications mobiles................................................................................................... 11
2. Présentation du projet : ................................................................................................................ 11
2.1 Description du projet :......................................................................................................... 11
2.2 Objectifs du projet: .............................................................................................................. 12
2.3 Parties prenantes: ............................................................................................................... 12
2.4 Planification du travail: ........................................................................................................ 12
3. Méthodologie de projet ................................................................................................................ 13
3.1 Méthode agile..................................................................................................................... 13
3.2 SCRUM ................................................................................................................................. 14
3.3 Heredis................................................................................................................................. 16
4. Gestion de projet ........................................................................................................................... 17
4.1 Jira Agile............................................................................................................................... 17
4.2 Tortoise SVN ........................................................................................................................ 18
CHAPITRE 2 : .......................................................................................................................................... 19
Etude préliminaire et recherche de solutions techniques .................................................................... 20
1. Openstreetmap ............................................................................................................................. 20
2. Coder une carte ............................................................................................................................ 21
3. Les tuiles ........................................................................................................................................ 21
4. Une bibliothèque JavaScript .......................................................................................................... 22
Elimane NDIAYE
Page 3 sur 45
4.1 Leaflet .................................................................................................................................. 22
4.2 OpenLayers ......................................................................................................................... 22
5. Pourquoi le choix de leaflet et non openlayers? ........................................................................... 22
6. Cahier des charges......................................................................................................................... 23
7. Aspect général de la fonctionnalité .............................................................................................. 24
8. L’entête de l’application ................................................................................................................ 25
9. Zone affichage carte ...................................................................................................................... 25
10. Maquette de l’application ........................................................................................................... 26
Chapitre 3 .............................................................................................................................................. 27
Outils de développement, technologies utilisés et réalisation ............................................................. 28
1. Outil de développement................................................................................................................ 28
2. Technologies utilisées.................................................................................................................... 28
2.1 JSON..................................................................................................................................... 28
2.2 Leaflet : ................................................................................................................................ 28
2.3 Markercluster ...................................................................................................................... 28
2.4 LeafletSlider ......................................................................................................................... 29
2.5 Html 5 .................................................................................................................................. 29
2.6 CSS ....................................................................................................................................... 29
3. Réalisation ..................................................................................................................................... 29
3.1 Fonction recherche.............................................................................................................. 29
3.2 Liste des individus................................................................................................................ 29
3.3 Liste des lieux : .................................................................................................................... 30
3.4 Marker cluster (regroupement de markers) ....................................................................... 30
3.5 Click sur un markersCluster ................................................................................................. 31
3.6 Répartition géographique ................................................................................................... 31
3.7 Modes de représentation .................................................................................................... 31
3.8 Limitation des évènements ................................................................................................. 32
3.9 Barre de progression ........................................................................................................... 32
3.10 Affichage de la répartition géographique à l’écran ........................................................... 32
CHAPITRE 4 : .......................................................................................................................................... 34
Expérimentations .................................................................................................................................. 35
1. Essaies réalisés ............................................................................................................................. 35
2. Résultats obtenus .......................................................................................................................... 35
Conclusion ............................................................................................................................................. 37
Elimane NDIAYE
Page 4 sur 45
1. Difficultés rencontrées : ................................................................................................................ 37
2. Apports personnels ....................................................................................................................... 37
3. Apports pour l'entreprise .............................................................................................................. 37
Annexes - Rapport technique ................................................................................................................ 38
1. Affichage carte............................................................................................................................... 39
1.1 Coquille HTML5 .................................................................................................................. 39
1.2 Import de Leaflet ................................................................................................................ 39
1.3 Import du markercluster .................................................................................................... 39
1.4 Création de notre fichier JavaScript .................................................................................. 40
1.5 Initialisation et import de fond de carte............................................................................ 40
1.6 Fonction création d’un objet MarkerCluster ..................................................................... 41
1.7 Affichage carte ................................................................................................................... 41
2. Résultat obtenu ............................................................................................................................ 42
Glossaire ................................................................................................................................................ 44
Résumé .................................................................................................................................................. 45
Elimane NDIAYE
Page 5 sur 45
CHAPITRE 1 :
Contexte général et objectifs du stage
« Dans ce chapitre sont présentés la structure d’accueil (BSD CONCEPT) ainsi que leurs activités.
Suivra une vue générale du projet en définissant ses objectifs et la méthodologie suivie pour assurer
son bon déroulement. »
Elimane NDIAYE
Page 6 sur 45
Introduction
Ce rapport présente le travail effectué dans le cadre du stage de fin d’études pour
l’obtention du diplôme de Master en informatique spécialité « architecture et
ingénierie du logiciel et du web » délivré par l’Université Montpellier II. J’ai effectué
ce stage dans l’entreprise BSD Concept SARL basée à Montpellier. Cette entreprise
conçoit et réalise principalement un logiciel de généalogie qui est leader sur le
marché français : Heredis.
Le sujet qui m’a été proposé s’intitule « répartition géographique», qui pour objectif
de développer une fonctionnalité multiplateforme (PC, Mac, IOS, Android) à l’aide
d’un serveur OpenStreetMap permettant montrer sur une carte, la répartition des
événements généalogiques (naissances, mariages, décès, ect…) avec la répartition
de ces données dans le temps et de nombreuses options.
Le présent mémoire est constitué de quatre chapitres détaillant les étapes du
déroulement du projet :
Le premier chapitre présente le contexte général et des différents objectifs du stage.
Le second chapitre comprend l’étude préliminaire et la recherche de solutions
techniques utilisées pour la réalisation du projet.
Le troisième chapitre présente les outils de développement et les technologies
adoptés afin de mettre en œuvre le projet. Ainsi nous avons mis l’accent sur les
étapes suivies pour sa mise en œuvre. Le dernier chapitre est consacré à la
réalisation des essais et les résultats obtenus.
1. Présentation de l’entreprise
1.1 Les origines de BSD Concept
L’aventure a commencé en 1994, lorsque Bernard DAVID, informaticien et passionné
de généalogie, a créé le logiciel « Heredis » pour un membre de sa famille qui
voulait, pour sa généalogie, un logiciel simple et intuitif qu’il ne trouvait pas.
Suite à l’utilisation du logiciel par le membre de la famille, d’autres personnes s’y sont
intéressées et ont demandé à Bernard et Sylvette DAVID de le commercialiser.
Ils ont donc créé une SARL comportant leur initiales, « Bernard et Sylvette DAVID »,
c’est ainsi que « BSD Concept » a vu le jour.
BSD Concept possède un code NAF et est reconnu comme étant un éditeur de
logiciels applicatifs.
Elimane NDIAYE
Page 7 sur 45
1.2 L’origine du nom Heredis
Il vient du mot latin heres, heredis (au génitif) qui a donné son nom au logiciel. En
voici la définition :
*hērēs (haerēs), ēdis, **héritier, héritière, légataire. **rejeton (d’un arbre).
1.3 Historique
Débutant son activité en 1994, la société BSD Concept, S.A.R.L. au capital de
15 000€, connait au fur et à mesure des années un chiffre d’affaire croissant qui a
atteint le million cette année et dont 20% représente les ventes de versions
Macintosh.
En 2009, le nombre de salarié a dépassé la barre de la dizaine pour se maintenir
actuellement à 11 salariés dont l’un d’entre eux en télétravail.
Avec un concurrent direct sur le marché et des idées toujours innovantes, l’entreprise
continue de s’agrandir et développe de nouvelles versions pour Windows et
Macintosh, ainsi qu’un site internet dédié à la généalogie qui a évolué au fur et à
mesure des années et des versions du logiciel.
Le premier janvier 2014, Heredis fêtait ses 20 ans d’existence.
1.4 Marché
Depuis quelques années, on observe deux grandes tendances sur le marché. D’une
part, les téléchargements des logiciels dit « embarqués » depuis le site internet de
Heredis qui permet aux clients de travailler directement depuis leur ordinateur. Et
d’autre part, les logiciels « online » où les clients se connectent sur un site internet
pour travailler en ligne sur des fichiers et récupérer des données.
Le modèle économique est, quant à lui différent. D’un côté, le logiciel et ses
différentes mises à jour sont achetés ce qui est la source principale de revenu et de
l’autre, le client paye un abonnement annuel, plus léger mais plus régulier.
En général, le client débutant commence par les logiciels en ligne, plus simple
d’utilisation et moins couteux. Ensuite, à cause du nombre d’options qui sont
beaucoup plus réduites que dans le logiciel, il décide d’acheter le logiciel. L’utilisateur
est ensuite libre de publier ses recherches sur des sites de partage. A noter que les
deux manières de travailler tendent à converger avec le développement des
applications sur mobile.
Elimane NDIAYE
Page 8 sur 45
1.4.1 Positionnement sur le marché français
En France, deux acteurs se partagent le marché du logiciel de généalogie, BSD
Concept avec son logiciel Heredis et son concurrent CDIP avec son logiciel
Généatique.
BSD est leader sur le marché français et sa position semble s’accroître, pour
plusieurs raisons :
CDIP se développe sur d’autres logiciels qui n’ont pas de lien avec la généalogie
(Scrapbooking) et investi dans ce secteur.
Il n’a pas d’évolution technologique majeure : aucun téléchargement du logiciel n’est
proposé, aucune présence à l’international et aucun développement sur mobile.
1.4.2 Positionnement à l’international
A l’international, deux zones sont principalement visées : l’Europe et les États-Unis
qui ont un très gros marché et qui permettraient à Heredis d’accroître son expansion.
Le logiciel Heredis est très peu connu à l’étranger et est plus cher que les
concurrents. C’est pourquoi, l’entreprise a choisi de diminuer fortement son prix pour
devenir compétitif. Cette baisse de prix à l’étranger a également engendré une
baisse de son prix en France afin d’être cohérent avec ses produits.
Pour son développement à l’international, BSD Concept mise sur sa version
Macintosh, à travers la plate-forme de téléchargement Apple Store qui est une vitrine
internationale très importante. Les contraintes techniques imposées par l’Apple Store
ont été importantes mais désormais le produit est référencé et les ventes
commencent à décoller. Avec son entrée dans l’Apple Store, Heredis est présent au
niveau mondial, hormis l’Italie qui possède déjà un logiciel ayant le même nom.
A noter que les concurrents principaux à l’international tels que FamilyTreeMaker et
Ancestry ne sont pas présents sur Apple Store, ce qui laisse davantage de chance à
Heredis pour s’implanter et acquérir de nouveaux utilisateurs.
Pour son internationalisation, le choix s’est d’abord porté sur Macintosh car les
acteurs Windows étant présents depuis longtemps avec une bonne notoriété. Il a été
jugé judicieux d’acquérir de nouveaux acteurs Macintosh.
1.5 Les clients
La généalogie est un marché de niche, avec des utilisateurs passionnés qui sont
tous des particuliers. Chaque année, environ 20 000 licences sont vendues en
France dont un noyau principal composé d’environ 10 000 clients. Ces derniers
Elimane NDIAYE
Page 9 sur 45
achètent régulièrement les nouvelles versions ce qui est un point fort pour
l’entreprise car cela permet d’assurer un chiffre d’affaires régulier.
Aujourd’hui, BSD Concept compte plus de 300 000 utilisateurs créant ainsi une
communauté très importante.
Elimane NDIAYE
Page 10 sur 45
1.6 Les associations
Plus de 500 associations de généalogie sont affiliées avec BSD Concept/Heredis.
Elles disposent des versions Windows et/ou Macintosh ainsi que des guides de
formation afin de former leurs adhérents au logiciel.
La découverte du logiciel par les associations peut ainsi inciter de nouvelles
personnes à acheter le logiciel afin qu’ils puissent l’utiliser chez eux.
1.7 Les différents produits
1.7.1 Le logiciel Heredis
Jusqu’à la version 12 de Heredis, BSD Concept vendait son logiciel en commerce
avec un manuel utilisateur et un DVD. Tout a été dématérialisé à partir de Heredis 12
et BSD Concept vend uniquement son produit en téléchargement pour les deux
plates-formes. Il existe deux versions du logiciel, standard ou professionnel et les
mises à jour des anciennes versions sont également disponibles en téléchargement.
1.7.2 Les applications mobiles
Les applications mobiles sont gratuites et disponibles sur les plates-formes de
téléchargement d’applications mobiles. Pour le moment, BSD Concept distribue une
application pour iOS et d’ici la fin de l’année, elle distribuera une application pour
Android.
Basée à Montpellier, au Millénaire, l’équipe Heredis compte une dizaine de
développeurs. Leurs spécificités : passionnés par le monde informatique, ils se sont
tous convertis à la généalogie dès leur entrée chez Heredis et travaillent tous les
jours en étroite collaboration avec les utilisateurs et une équipe de bêta-testeurs.1
2. Présentation du projet :
2.1 Description du projet :
Une fonctionnalité similaire de la répartition géographique existe déjà dans Heredis.
Cependant, il s'est rapidement avéré que non seulement cette fonctionnalité ne
1
(Heredis, Societe, l'équipe Heredis, 2014)
Elimane NDIAYE
Page 11 sur 45
Phase 1 : Etude préliminaire et recherche de solutions techniques
Il s’agit de la phase de lancement du projet. Je l’ai entamé par une familiarisation de
l’ergonomie du logiciel Heredis et une étude des besoins réels et librairies qui
existent dans le domaine de la cartographie et qui sont susceptibles d’intervenir à la
généalogie. Par la suite, Confronter les solutions trouvées au cahier de cahier
fonctionnel afin de détecter les éventuels écarts qualitatifs et quantitatifs. Chaque
solution est analysée en terme de rentabilité et d’avantages/ inconvénients pour le
projet.
Phase 2 : Réalisation et mise en œuvre
Cela consiste à mettre en œuvre l’application. Cette phase est amorcée par la
préparation des outils de développement. S’en suit la partie codage de l’application
puis la partie test et validation.
Phase 3 : expérimentations :
C’est la phase finale du projet. Elle consiste à intégrer la fonctionnalité dans
HEREDIS pour réaliser des démonstrations afin de tester l’application et de recueillir
d’autres suggestions.
3. Méthodologie de projet
3.1 Méthode agile
Selon Claude Aubry, auteur de Scrum, le guide pratique de la méthode agile la plus
populaire :
« Les méthodes agiles représentent un mouvement novateur qui vise à apporter plus
de valeur aux clients et aux utilisateurs, ainsi qu’une plus grande satisfaction dans
leur travail aux membres de l’équipe.
Le but affiché d’une méthode agile est de maximiser la valeur ajoutée : le
développement s’effectuant par itérations successives, il est possible, à la fin de
chaque itération, de changer les priorités en faisant en sorte que les éléments
apportant le plus de valeurs soient réalisés en premier. »
Dans son ouvrage, Claude Aubry détaille les principes et pratiques des méthodes
agiles et la manière dont elles fonctionnent. Il décrit également comment utiliser la
méthode SCRUM.
Elimane NDIAYE
Page 13 sur 45
3.2 SCRUM
Extrait de l’ouvrage de Claude Aubry :
« Le nom vient du rugby. On prononce « screum » pas « scrume », ni « scroum ».
Scrum signifie mêlée au rugby. Scrum utilise les valeurs et l’esprit du rugby et les adapte aux projets
de développement. Comme le pack d’un ballon porté au rugby, l’équipe chargée du développement
travaille de façon collective, soudée vers un objectif précis. Comme un demi de mêlée, le Scrum
Master aiguillonne les membres de l’équipe, les repositionne dans la bonne direction et donne le
tempo pour assurer la réussite du projet. »
Cette méthode s'appuie sur le découpage d'un projet en boîtes de temps, nommés
« sprints ». Les sprints peuvent durer entre deux semaines et un mois (avec une
préférence pour deux semaines). Avant de démarrer un nouveau sprint, l'équipe
réalise une rétrospective : elle analyse ce qui s'est passé durant ce sprint, afin de
s'améliorer pour le prochain.2 Au sein de BSD Concept, les sprints sont planifiés
toutes les 3 semaines.
Figure 1 - Vue globale de la méthode SCRUM
Scrum utilise une approche itérative et incrémentale pour le développement d’un
produit.
Incrémental
Incrémental est utilisé pour mettre en évidence l’accroissement du produit obtenu à
la fin de chaque sprint. Un processus incrémental permet de construire un produit
morceau par morceau, chaque nouvelle partie venant s’ajouter à l’existant.
Pour l’écriture de ce mémoire, j’ai utilisé une approche incrémentale : j’ai fait un
plan initial et j’ai rédigé chapitre par chapitre
2
(Wikipedia, Scrum (méthode), 2014)
Elimane NDIAYE
Page 14 sur 45
Itératif
Itérer est l’action de répéter. Dans le développement de logiciel, le terme itération est
utilisé pour désigner une période de temps dans laquelle sont effectuées des
activités, qui seront répétées dans les prochaines itérations. Le terme est souvent
associé à processus.
Un processus itératif permet de revenir sur ce qui a été fait, dans le but de l’améliorer
ou de le compléter. Cela part de l’idée qu’il est difficile, voire impossible de bien faire
la première fois. Le feedback collecté sur le résultat d’une itération permet de faire
des améliorations dans la suivante. On cesse d’itérer quand la qualité obtenue est
jugée satisfaisante.
Pour l’écriture de ce mémoire, j’ai utilisé une approche itérative : j’ai diffusé le
premier jet à certaines personnes et grâce à leur feedback, j’ai produit une
nouvelle version.
Itératif et incrémental
Scrum combine les deux approches avec la notion de sprint :
 A l’issue du sprint, il y a un incrément de produit qui est réalisé,
 Le feedback sollicité sur cet incrément permet de le perfectionner dans un
prochain sprint.
En résumé, un sprint est une itération qui produit un nouvel incrément (incrémental)
et peut aussi enrichir un incrément d’un sprint précédent (itératif).3
BSD Concept utilise donc une méthode incrémentale itérative pour réaliser ses
projets.
3
(Aubry, 2010)
Elimane NDIAYE
Page 15 sur 45
3.3 Heredis
L’objectif durant une période de projet est qu’une fois celle-ci terminée, le projet soit
« vendable » même si des fonctionnalités ont pu être annulées par faute de temps ou
par manque de personnes pour les réaliser.
Avant de débuter une nouvelle version du logiciel, l’équipe Heredis se regroupe pour
définir le produit et énoncer les nouvelles fonctionnalités à développer. Lorsqu’une
version est définie, les fonctionnalités de la version suivante le sont aussi. Il ne faut
pas attendre qu’une version soit terminée pour réfléchir à la suivante. Les
développements des versions sont faits en parallèles.
0
Vendu
Heredis X
Définition
du produit
d1
f1(x)
d2
…
…
f2(x)
Heredis X+1
Définition
du produit
Note :
d1 : définition de la fonction 1.
f1(x) : développement de la fonction 1.
Développement de Heredis X+1
Figure 2 - Fonctionnement de SCRUM pour le développement des versions d'Heredis
L’intégration du projet est faite en continu. Des build4 sont réalisés quotidiennement
pour avoir constamment une version fonctionnelle. Il est très important d’avoir
toujours une version « vendable » et fonctionnelle.
Intégration en continue
début
d1
fin
f1(x)
d2
f2(x)
d3
f3(x)
Figure 3 - Intégration normale
4
Un « build » est une version exécutable d’une partie du système ou du système entier.
Elimane NDIAYE
Page 16 sur 45
Il se peut que certaines tâches prennent plus de temps que d’autres car des
problèmes sont décelés et/ou des corrections de bugs sont nécessaires .
Intégration en continue
début
d1
fin
r1
f1(x)
d2
f2(x)
d3
f3(x)
Note :
r1 : retard sur la fonction 1.
Figure 4 - Intégration avec retard
Lorsque qu’une fonction est réalisée, il se peut que d’autres idées soient ajoutées à
cette dernière. Elle est alors améliorée en boucle jusqu’à ce qu’elle soit terminée.
Une fonctionnalité est considérée comme terminée soit parce que la totalité de la
fonction a été réalisée soit parce qu’il manque du temps pour la terminer.
4. Gestion de projet
Lorsque de nouveaux développeurs sont arrivés dans la société pour créer les
nouvelles versions de Heredis, il a été nécessaire de mettre en place des outils de
gestion de projet afin d’avoir un suivi des évolutions du logiciel au fur et à mesure de
son développement.
4.1 Jira Agile
Figure 5 - Logo Jira Agile
Jira est un système de suivi de bugs, un système de gestion des incidents, et un
système de gestion de projets.5
JIRA Agile révèle toute la puissance de la méthode agile. Création et estimation de
"user stories" (récits utilisateurs), élaboration de tableaux de tâches (sprint backlog),
5
(Wikipedia, Jira, 2013)
Elimane NDIAYE
Page 17 sur 45
identification de l’engagement et de la vélocité de l’équipe, visualisation de l'activité,
rapports sur l'avancement …6
4.2 Tortoise SVN
C’est un gestionnaire de version, client de SVN (i.e. Subversion).
Subversion fonctionne donc sur le mode client-serveur, avec :

Un serveur informatique centralisé et unique où se situent :
 les fichiers constituant la référence (le "dépôt" ou "repository" en anglais),
 un logiciel serveur Subversion tournant en "tâche de fond".

Des postes clients sur lesquels se trouvent :
 les fichiers recopiés depuis le serveur, éventuellement modifiés localement
depuis,
 et un logiciel client, ici Tortoise SVN, permettant la synchronisation, manuelle
et/ou automatisée, entre chaque client et le serveur de référence .7
Une charte de codage est employée par l’ensemble de l’équipe de développeur :

Chaque fichier comporte un en-tête définissant son nom, une brève description,
son numéro de version, la dernière date de modification, l'auteur et une indication
sur le projet auquel il appartient (cf. Erreur ! Source du renvoi introuvable.)
6
(Atlassian, 2013)
7
(Wikipedia, Apache Subversion, 2013)
Elimane NDIAYE
Page 18 sur 45
CHAPITRE 2 :
Etude préliminaire et recherche de solutions techniques
« Dans ce chapitre sont présentés l’étude préliminaire et la recherche de solutions techniques
utilisées pour la réalisation du projet. »
Elimane NDIAYE
Page 19 sur 45
Etude preliminaire et recherche de
solutions techniques
Etant totalement étranger dans le domaine de la généalogie et des SIG il me fallait
d’une part comprendre le fonctionnement du logiciel Heredis et d’autre part
comprendre les librairies permettant de réaliser des cartes openstreetmap, afin que
la fonctionnalité, une fois réalisée, puisse répondre aux attentes de l'entreprise. J’ai
eu tout d’abord accès à la dernière version du logiciel (heredis 2014 version pro sous
Windows) pour me familiariser avec l’ergonomie du logiciel. Ainsi, mon projet devrait
s’intégrer naturellement au logiciel pour qu’il ait logique de fonctionnalité dans celuici.
J’ai par la suite, recherché la répartition géographique dans les différents logiciels de
généalogies présents sur le marché afin d me faire une idée. Ceci m’a demandé
d’être critique face à la même fonctionnalité des concurrents pour pouvoir répondre
du mieux possible aux désirs des utilisateurs et à la facilité de l’utilisation de ma
fonctionnalité.
Et d’autre part étudier et comprendre les librairies permettant de réaliser des cartes
openstreetmap, afin que la fonctionnalité, une fois réalisée, puisse répondre aux
attentes de l'entreprise.
1. Openstreetmap
Les cartes libres publiées au sein du projet OpenStreetMaps sont de plus en plus
populaires et plusieurs sociétés font usage de ces dernières après avoir abandonné
les interfaces de programmation de Google Maps. En effet, OpenStreetMap est
gratuit et se présente sous la forme d'une énorme base de données répertoriant les
Elimane NDIAYE
Page 20 sur 45
cartes géographiques tombées dans le domaine public. Il s'agit par exemple des
données provenant du satellite Landsat 7, des cartes du littoral fournies par le
gouvernement américain, celles du cadastre français publiées par la direction
générale des Finances publiques ou encore de l'imagerie distribuée par Microsoft.
« OpenStreetMap (OSM) est un projet fondé en 2004 destiné à réaliser une carte du
monde, sous licence « libre ». Cela signifie, que tout le monde est libre d'utiliser,
d'améliorer, de distribuer ou d'effectuer des travaux dérivés à partir des cartes,
donnant ainsi une liberté bien plus grande que les solutions telles que Google
Maps. »
2. Coder une carte
Coder une carte requiert deux choses :
Des tuiles et une bibliothèque javascript. Les tuiles forment la base de la carte, et des
couches (layers) sont ajoutées par-dessus pour afficher des points, des reliefs,
zones, popups, etc. par-dessus les couches utilisées.
3. Les tuiles
Ce sont les blocs qui constitueront la carte. Ces blocs sont chargés en fonction de
la zone de la carte affichée. Typiquement, ce sont les tuiles Mapnik qui est un
logiciel libre de rendu de carte sont utilisées par OSM. Elles ressemblent à cela :
Elimane NDIAYE
Page 21 sur 45
4. Une bibliothèque JavaScript
C’est un ensemble de fonctions JavaScript prédéfinies pour exploiter les tuiles et
les couches qui se superposeront dessus.
4.1 Leaflet
Leaflet est API Cartographique OpenSource développée en JavaScript par
Vladimir Agafonkin et de nombreux contributeurs permettant de créer des cartes
interactives pour présenter vos données géographiques et qui mise son succès
sur sa simplicité et sa facilité d'utilisation. Sa taille faible (34kB) lui permet d’être
particulièrement adaptée aux usages mobiles.
4.2 OpenLayers
OpenLayers est une API Cartographique OpenSource développée en JavaScript
par une communauté de développeurs permettant de créer des cartes interactives
pour présenter vos données géographiques.
5. Pourquoi le choix de leaflet et non openlayers?
Le tableau ci-dessous montre un comparatif entre leaflet et opensLayers:
Leaflet
Leaflet
OpenLayers
OpenLayers
 Développé par des géomaticiens

le code est moins bien structuré et moins
facile à prendre en main.

Développé par des informaticiens

Avantage :

Code facile à prendre en main pour
un développeur

Avantage :
Elimane NDIAYE
o
Gestion de la géographie (Système
de projection, etc.)

Page 22 sur 45


Inconvénients :
o
Simple
o
Puissant
o
Développement plus compliqué
o
Système de plug-in
o
Documentation pauvre

Inconvénient :
o
Certaines limitations sur la gestion
de la géographie
Compatibilité OpenLayers 3 (Limitation
WebGL) :
o
o

Compatibilité :
o
o
Desktop :

Chrome

Firefox

Safari 5+

IE 7+
o
Desktop :

Chrome 8+

Firefox 4+

Safari 5.1 +

IE 11
Mobile :


Chrome Android 3.1
Code : environ 40 lignes
Mobile :

Safari iOS 3+

Android browser 2.2+

Chrome (iOS, Android)
4+

IE 10/11 Windows 8

Rendu intelligent des polylignes et
polygones

Accélération matérielle iOS

Code pensé pour l’évolution

Code : environ 30 lignes
Suite à cette comparaison, on peut dresser un premier bilan. Le code Leaflet est
plus simple à prendre en main et permet la réaliser des cartes plus rapidement
qu'OpenLayers.
Il nous faut une trentaine de ligne de code avec Leaflet pour réaliser une carte
qu'avec OpenLayers il faut une quarantaine de ligne de code il n'y a pas de pop-up
sur les points. Il est tout à fait possible de rajouter les pop-up sur les points en
OpenLayers mais le code est alors uniquement du JavaScript sans lien avec l'API et
donc ne présente que peu d'intérêt.
6. Cahier des charges
La première étape nécessaire avant de se lancer dans un tel projet a été d'établir un
cahier des charges afin de réunir l'ensemble des fonctionnalités que devait proposer
la nouvelle version de la répartition géographique.
Elimane NDIAYE
Page 23 sur 45
Bien que la plupart des fonctionnalités fussent présentes dans les versions
antérieures du logiciel, le but est également d'apporter des nouveautés afin de
faciliter l'utilisation de cette fonctionnalité par les utilisateurs du logiciel.
Dans cette partie, nous allons résumer le cahier des charges en présentant une
utilisation classique de la répartition géographique, et les fonctionnalités qu'elle doit
présenter.
 Afficher la répartition géographique des individus d'une généalogie sur des
cartes OpenStreetMap.
 les filtres disponibles :
 limitation des individus : Tous les individus / Individus marqués uniquement /
Personnage central.
 limitation des événements : Tous les événements / Evénements majeurs
uniquement.
 Une option permettant de cartographier les événements par période ou par
génération.
 Un bouton permettant de lancer un diaporama.
 Prévoir un bandeau latéral à droite dans lequel on affichera la liste des lieux
avec le nombre d'événements par lieu.
 Prévoir un bouton pour voir la fréquence d'événements pour un lieu sur PC.
 Sur PC, compléter la vérification des lieux pour ajouter les lieux non "géo
localisés".
7. Aspect général de la fonctionnalité
Apres avoir réalisé différents modèles, j’ai eu une réunion avec mon chef de stage
afin de choisir quel modèle allait être développé en fonction des utilisateurs actuels
du logiciel Heredis. Le modèle aura la forme suivante :

Un menu à gauche : verticalement fixe à l’affichage à l’écran, composé de trois
sois menu dépliables :


Répartition géographique :
 Tous les individus
 Les ascendants
 Les descendants
 Les individus marqués
Modes de représentation :
 Par densité
 Par période
 Par génération


Limitation des évènements :
 Tous les évènements.
 Evènements majeurs
Menu droite : Cette partie est verticalement fixe à l’affichage à l’écran et contient
deux boutons suivants :
Boutons individu
Elimane NDIAYE
Bouton lieux
Page 24 sur 45
Bouton recherche:
Un combo box :
 Tous les lieux
 Les lieux plus représentés
 Lieux non
 Les lieux visibles.
Bouton recherche
Liste des lieux
8. L’entête de l’application
Cette zone est cachée par défaut. Elle est visible que lorsque clic sur le bouton radio
« descendant, menu droite ». Elle dispose d’un slider qui permet de lancer le
diaporama et de cartographier les événements par période ou par génération.
9. Zone affichage carte
Cette zone représente une balise « div » de taille définie avec un «id="map"». C’est
dans cette balise que notre carte s’affichera.
Elimane NDIAYE
Page 25 sur 45
10. Maquette de l’application
Clic bouton lieux
Clic bouton individus
Clic bouton lieux
Par période
Clic sur un lieu
Elimane NDIAYE
Page 26 sur 45
Chapitre 3
Réalisation
« Le présent chapitre présente les outils de développement et les technologies adoptés afin de mettre
en œuvre le projet. Ainsi nous avons mis l’accent sur les étapes suivies pour sa mise en œuvre. »
Elimane NDIAYE
Page 27 sur 45
Outils de developpement, technologies
utilises et realisation
Maintenant que nous avons pris connaissance du fonctionnement du logiciel
Heredis, de l'énoncé et les besoins fonctionnels et techniques du projet, nous allons
présenter les outils qui nous ont permis de développer la fonctionnalité et les étapes
de développement des éléments les plus importants.
1. Outil de développement
NetBeans est un environnement de développement intégré (EDI), placé en open
source par Sun en juin 2000sous licence CDDL et GPLv2 (Common Development and
Distribution License). En plus de Java, NetBeans permet également de supporter différents
autre langages comme C, C++, JavaScript, XML, PHP et HTML. Il comprend toutes les
caractéristiques d'un IDE moderne (éditeur en couleur, projets multi-langage, refactoring,
éditeur graphique d'interfaces et de pages Web).
2. Technologies utilisées
2.1 JSON
Le logiciel HEREDIS génère un fichier json qui me permet de représenter les
données sur les cartes, afficher la liste des individus, la liste des lieux.
2.2 Leaflet :
Suite à la comparaison entre leaflet et openlayers, nous avons décidé de coder notre
fonctionnalité avec l’API leaflet de par sa simplicité de son code pensé à l’évolution.
2.3 Markercluster
C’est une extension de leaflet qui nous permet de réaliser des points d’intérêts de
belles animations sur les marqueurs.
Elimane NDIAYE
Page 28 sur 45
2.4 LeafletSlider
C’est une extension de leaflet pour affichage d’une barre latérale. La barre est
cachée par défaut. Quand l’utilisateur clic sur un lieu ou un individu, la barre s’ouvre
et affiche l’ensemble des évènements associés à ce lieu ou à ce lieu ou individu.
2.5 Html 5
Le langage HTML (Hypertext Markup Language) est le format de données conçu
pour représenter les pages web. C’est un langage descriptif qui permet de structurer
et de mettre en forme le contenu des pages, d’inclure des ressources multimédias
dont des images, des formulaires de saisie, et des éléments programmables. Il
permet de créer des documents interopérables avec des équipements très variés de
manière conforme aux exigences de l’accessibilité du web.
2.6 CSS
w3.org « Les feuilles de style en cascade (CSS) permettent d’ajouter facilement du
style (polices, couleurs, espacement, etc.) à des documents Web. »
L’utilisation de ce langage permet :
 La séparation entre la structure de la page et sa présentation
 La portabilité du contenu (écran PC, mobile ou imprimante)
 La réduction de la taille et la complexité du code HTML
3. Réalisation
Après avoir réalisé différentes maquettes, j’ai eu une réunion avec mon chef de stage
et l’ensemble de l’équipe afin de choir quel modèle allait développer en fonction des
attentes des utilisateurs actuels de heredis. C’est donc à ce moment que j’ai la
réalisation de la fonctionnalité.
3.1 Fonction recherche
La fonction recherche va chercher tous les d’individus (ou tous les lieux) dont le nom
contient la valeur saisie par l’utilisateur (exemple : si l’on saisit “Ab” la liste des
individus (ou des lieux) est automatiquement mise à jour et affiche que les individus
(ou que les lieux) ayant un nom contenant “Ab”). La liste est toujours trier par ordre
alphabétique.
3.2 Liste des individus
Le bouton individus, dans le menu droit, permet de voir la liste des individus et le
nombre d’évènements récences pour chaque individu. La liste qui est affichée
dépend du choix de l’utilisateur par rapport à la limitation des évènements. Si
l’utilisateur coche l’option « tous les évènements » alors la liste de tous les individus
Elimane NDIAYE
Page 29 sur 45
du fichier est affichée, si l’option « évènements majeurs » est choisie dans ce cas la
liste des individus ayant au moins un évènement majeur est affichée.
3.3 Liste des lieux :
Le bouton lieux affiche la liste des lieux et le nombre
d’évènements recensés dans chaque lieu en fonction
de la limitation des évènements. D’autres options s’y
ajoutent :

Tous les lieux : permet de lister tous les lieux par
ordre alphabétique

Lieux plus représentés : Trie la liste en fonction
des nombres évènement recensé dans chaque lieu.

Lieux non placés
certains
lieux
ne
sur la carte : Il arrive que
soient
pas
localisés.
Par
conséquent, les coordonnées (latitude, longitude)
seront nulles et ne seront pas placés sur la carte.
Cette option permet de voir tous les lieux qui ne sont
pas placés sur la carte.

Les lieux visibles : En zoomant sur la carte,
certains marqueurs vont disparaitre sur la zone
d’affichage
à
l’écran.
Cette
option
permet
à
l’utilisateur de voir tous les qui sont visibles sur la
carte.
3.4 Marker cluster (regroupement de markers)
Notre application peut afficher un jeu de données conséquent en fonction du nombre
d’individus et d’évènements dans le fichier généalogique. Pour plus de lisibilité, j’ai
utilisé le plugin markerCluster qui me permet de regrouper les markers en clusters.
Chaque cluster est associé à une couleur en fonction de son nombre de marqueurs :
- Couleur verte : cluster inférieur à 10 marqueurs.
- Couleur jaune : cluster inférieur à 100
marqueurs
- Couleur orange : Au-delà de 100 markers
Elimane NDIAYE
Page 30 sur 45
3.5 Click sur un markersCluster
Les marqueurs sont regroupés sous forme de cluster (un cercle coloré à l’intérieur
duquel est affiché le nombre de marqueurs contenant le cercle). Un clic sur un
marker permet à l’utilisateur de voir la liste de tous les évènements associés à
chaque lieu et à chaque individu. La fonction est rendue possible grâce la méthode
getAllChildMarkers() qui me permet de récupérer toutes les latitudes et longitudes
présentes sur le cluster. Ce qui me permettra de récupérer les lieux et les individus
qui ont eu un évènement à ces lieux.
3.6 Répartition géographique
Cette partie les options de paramétrage suivantes sont proposées à l’utilisateur :
 Tous
les individus : Permet d’afficher tous les individus du fichier
généalogique de l’utilisateur.
 Les
ascendants : Représentation individuelle centrée sur un individu et ses
ancêtres.
 Les descendants : Représentation individuelle centrée sur un individu et ses
descendants.
 Les individus marqués : Les informations concernant les individus nés il y a
moins d’un siècle sont interdites à la diffusion sans accord préalable de
l’individu lui-même. Il a fallu donc intégrer dans le logiciel un moyen de pouvoir
enlever certaines personnes lorsque l’utilisateur veut créer un arbre ou
exporter sa généalogie, c’est la confidentialité. Grace à une recherche
multicritère incluse dans Heredis, il est facile d’appliquer une confidentialité
sur certains individus, qui pourront lors de construction d’arbres ou d’exports
ne pas apparaitre. Au contraire, lorsqu’une généalogie commence à être
relativement importante, l’utilisateur ne veut pas forcément voir apparaitre
tous les individus de son fichier par exemple. Ainsi, toujours grâce à la
recherche multicritères, l’utilisateur peut aisément marquer une partie de sa
généalogie et choisir de n’afficher que les individus marqués dans un arbre.
3.7 Modes de représentation
 Densité : Cette option permet d’afficher tous les évènements sous forme de
custer.
 Par période : Affiche les évènements d’une période donnée (année début, année
fin) et de lancer un diaporama
 Par génération : Affiche les évènements d’une génération donnée et de lancer
un diaporama
Elimane NDIAYE
Page 31 sur 45
3.8 Limitation des évènements
Possibilité d’afficher tous les évènements.
Possibilité de limiter aux seuls événements majeurs (Mariage, Naissance, Baptême,
Décès).
3.9 Barre de progression
Le chargement de la fonctionnalité peut nécessiter un certain temps d’attente qui
dépend du nombre d’individus à afficher. Afin de faire patienter les utilisateurs lors du
chargement, j’ai réalisé une barre de progression qui indique l’avancement du
chargement.
Cette barre de progression est aussi utilisée lors du chargement de certains
paramètres qui nécessitent un rechargement de la page et donc de relancer tous les
calculs.
3.10 Affichage de la répartition géographique à l’écran
Le but de mon stage était d’afficher sur l’écran la fonctionnalité que je réalise.
L’interface devait donc prendre une place importante dans mon travail. Si je tiens
Elimane NDIAYE
Page 32 sur 45
compte du fait qu’une grande partie des utilisateurs du logiciel Heredis ne sont pas
des utilisateurs assidus de matériel informatique, il faut d’autant plus faire attention à
la facilité d’utilisation et à l’ergonomie d’application à réaliser.
Lors du choix des positionnements des menus, boutons, case à cocher, a été
essentiel dans le déroulement de mon stage. A cette fin, j’ai eu plusieurs réunions
avec mon chef de projet et toute l’équipe de développement.
Une option positionnée en haut à droite sur la carte permettra aux utilisateurs
d’afficher un fond de carte en noir et blanc, un fond de carte en gris ou le fond de
carte par défaut de openstreetmap.
Elimane NDIAYE
Page 33 sur 45
CHAPITRE 4 :
Expérimentations
« Ce chapitre présente les essais réalisés afin de tester l’application. Il présente également les
résultats obtenus. »
Elimane NDIAYE
Page 34 sur 45
Experimentations
1. Essaies réalisés
L’application elle est intégrée à la version 2015 d’Heredis afin de pouvoir réaliser des
essais expérimentaux. L’objectif de ces essais est d’évaluer la fiabilité, l’exactitude
des données affichées par l’application et le temps d’exécution. Ces essais
permettent aussi de connaitre les limites de l’utilisation de notre application et les
facteurs influençant l’exactitude des données affichées.
Plusieurs fichiers plus ou moins volumineux sont testés, afin d’estimer leur temps
d’exécution et les données affichées.
2. Résultats obtenus
Le seul problème rencontré était le temps d’exécution de la fonctionnalité. Le plus
gros fichier qui a été testé contenait 125000 individus. Son temps d’exécution
dépasse la minute, ce qui est relativement long. J’ai donc tenté de réduire le temps
de calcul et de trouver dans mon code les fonctions qui nécessitaient le plus de
temps et essayer de réduire le temps d’exécution.
Planning
Les différentes taches du projet ont été planifiées sur le diagramme de Gantt
suivant :
Elimane NDIAYE
Page 35 sur 45
Elimane NDIAYE
Page 36 sur 45
Conclusion
A l'heure de l'écriture de ce rapport, les fonctionnalités principales de l’application ont
été grandement effectuées à savoir la limitation des évènements, réparation par
densité, répartition géographique (affichage tous les individus, les ascendants,
descendants, les individus marqués), la fonction de recherche automatique,
affichage de la liste des individus, liste des lieux avec le nombre d’évènements qui
est associé à chaque individu ou lieu, les lieux plus représentés et les lieux visibles
sur la carte.
1. Difficultés rencontrées :
Maintenant que le projet est achevé, nous pouvons objectivement revenir sur les
points noirs et les difficultés que nous avons rencontrés et qui nous ont ralentis
durant toute la durée de notre travail collectif.
Commençons tout d'abord avec le premier problème. La principale difficulté auquel il
a fallu faire face lors de ce stage a été la méconnaissance de l'univers complexe de
la généalogie dans lequel ce projet prenait place. Jusqu'à présent, dans tous les
projets effectués dans le cadre scolaire, les énoncés étaient souvent très clairs et
permettaient d'établir des schémas de conception sans documentation
supplémentaire. Pour ce stage, il a été nécessaire de me familiariser avec toute la
terminologie de la généalogie afin de pouvoir réaliser projet.
2. Apports personnels
Ce stage en entreprise m'a énormément apporté, autant du point de vue personnel
que professionnel. Tout d'abord, ce stage m'a plongé dans diverses situations, qui
sont autant de bonnes expériences pour le futur : le développement d'un projet en
équipe et surtout le fait d'avoir mené un important projet de sa conception à ses
tests, encore en cours. Bien qu'ayant déjà été confronté à de telles situations
pendant la période scolaire, le vivre dans un cadre professionnel est quelque chose
de totalement différent.
3. Apports pour l'entreprise
Lorsque la nouvelle fonctionnalité de la répartition géographique sera terminée, les
utilisateurs de la version de HEREDIS 2015 vont pouvoir bénéficier de beaucoup
plus de fonctionnalités, de confort et de lisibilité de ce que leur proposait l'ancienne
version.
Elimane NDIAYE
Page 37 sur 45
Annexes - Rapport technique -
Elimane NDIAYE
Page 38 sur 45
1. Affichage carte
1.1 Coquille HTML5
La balise « body » qui représente le corps de la page contient une balise « div » de
taille définie avec un «id="map"». C’est dans cette balise que notre carte s’affichera.
<html>
<head>
<title>Leaflet la simple</title>
<meta http-equiv="Content-Type"content="text/html; charset=latin1">
</head>
<body>
<div id="map""></div>
</body>
</html>
1.2 Import de Leaflet
Pour pouvoir utiliser Leaflet, il faut importer cette bibliothèque dans notre fichier
HTML. Ceci peut se faire de deux manières :

Soit en téléchargeant le fichier JavaScript de Leaflet disponible ici
leafletjs.com/download.html). L’importation se fait ensuite simplement en
rajoutant entre les balises <head> de la page HTML :
<script src="js/leaflet.js"></script>

Soit en accédant directement en ligne à la bibliothèque
<script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script>

Il convient aussi d’ajouter le fichier de style CSS propre à Leaflet via la ligne :
<link rel= "stylesheet" href="css/leaflet.css"></script>
1.3 Import du markercluster
<script src="js/leaflet.markercluster.js" type="text/javascript"></script>
<script src="js/leaflet.markercluster-src.js" type="text/javascript"></script>
Il convient aussi d’ajouter le fichier de style CSS propre au plugin markercluster
Elimane NDIAYE
Page 39 sur 45
<link href="css/MarkerCluster.Default.css" rel="stylesheet" type="text/css" />
1.4 Création de notre fichier JavaScript
Apres avoir créer la structure de notre page htlm, nous allons maintenant mettre en
place le script JavaScript qui nous permettra de configurer notre carte. Pour plus de
lisibilité, le code est écrit dans un fichier appelé carte.js séparé du code HTML et
dans ce cas-là le header doit aller pointer vers ce fichier comme ceci :
<script src="js /carte.js"></script>
1.5 Initialisation et import de fond de carte
Les fonds de carte que nous avons sont issus de openstreetmap, mapbox et stamen.
map = new L.Map('map');
var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a>
contributors';
var osm = new L.TileLayer(osmUrl, {
attribution: osmAttrib
});
var noiretblanc = new L.StamenTileLayer("toner");
var mbAttr = 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a>
contributors, ' + '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
mbUrl = 'https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png';
var grayscale = L.tileLayer(mbUrl, {
id: 'examples.map-20v6611k',
attribution: mbAttr
});
baseMaps = {
"Grayscale": grayscale,
"OSM": osm,
Elimane NDIAYE
Page 40 sur 45
"Fond noir et blanc": noiretblanc
};
map.addLayer(grayscale);
map.addControl(new L.Control.Layers(baseMaps, {}, {
position: 'topleft'
}));
sidebar = L.control.sidebar('sidebar', {
closeButton: true,
position: 'right'
});
map.addControl(sidebar);
afficheAllMarkers(values);
1.6 Fonction création d’un objet MarkerCluster
function createMarkers() {
markers = new L.MarkerClusterGroup();
}
1.7 Affichage carte
function afficheAllMarkers(tab) {
var i=0;
var title;
var tableauDate=[];
createMarkers();
for (key in tab["Individus"]) // parcourir chaque pour recuperer la latitute et la longitude
{
var ev = tab["Individus"][key]["Individu"][1]; //ici on recupere le deuxieme objet de chaque individu
qui correspond l'objet Evenement
for (key2 in ev["Evenements"]) // parcourir les lieux de chaque evenement pour recuperer la
latitute et la longitude
Elimane NDIAYE
Page 41 sur 45
{
var lat = (ev["Evenements"][key2]["lieu"]["Latitude"]);
var long = (ev["Evenements"][key2]["lieu"]["Longitude"]);
if((lat!=="0.0")&&(long !=="0.0"))
{
title = "<div class=\"bulles\"><h1>" + tab["Individus"][key]["Individu"][0]["Nom"] + " " +
tab["Individus"][key]["Individu"][0]["Prenom"] + "</h1></div><div class=\"bulles\"><div
class=\"pin\"><img src=\"images/markers/marker-event-famiss.png\" alt=\"\" /></div><h2>" +
ev["Evenements"][key2]["lieu"]["pays"] + "<span> - " + ev["Evenements"][key2]["lieu"]["ville"] +
"</span></h2><p style=\"margin-bottom:10px;\"></p></div>";
var marker = new L.Marker(new L.LatLng(lat, long), {
icon: myIcon
});
markers.addLayer(marker);
tableauDate[i]=ev["Evenements"][key2]["Annee"];
i=i+1;
}
}
}
tabDate=tableauDate.sort();
map.addLayer(markers);
map.fitBounds(markers.getBounds());
}
2. Résultat obtenu
Elimane NDIAYE
Page 42 sur 45
Elimane NDIAYE
Page 43 sur 45
Glossaire
SIG : Système d’information géographique.
JSON : Acronyme
données textuelles.
de
"JavaScript
Object
Notation
"
est
un format
de
AJAX : Acronyme de " Asynchronous JavaScript and XML", technologie permettant
d'appeler de manière dynamique un script PHP sur un serveur.
IDE : Acronyme de " Itegrated Development Environment ".
API : Acronyme de "Application Programming Interface", ensemble de classes,
fonctions ou méthodes permettant d'interagir avec un logiciel.
CSS : Acronyme de "Cascading Stylesheet", langage du web permettant d'attribuer
un design à un bloc ou en ensemble de blocs.
Framework : Ensemble d'outils représentant une base stable sur laquelle construire
un logiciel.
HTML : Acronyme de "Hypertext Markup Language", langage de structuration de
sites web.
IDE : Acronyme de "Integrated Development Environment", environnement de travail
rassemblant de nombreux outils visant à aider le programmeur.
Javascript : Langage de programmation web s'exécutant coté client permettant de
modifier une page web sans rechargement de la page.
jQuery : Langage de programmation web, surcouche de Javascript.
Elimane NDIAYE
Page 44 sur 45
Resume
Ce rapport présente le travail effectué dans le cadre du stage de fin d’études pour
l’obtention du diplôme de Master en génie informatique spécialité « architecture et
ingénierie du logiciel et du web » délivré par l’Université Montpellier II. Ce projet
intitulé «répartition géographique», a pour objectif de développer une fonctionnalité
multiplateforme (PC, Mac, IOS, Android) à l’aide d’un serveur OpenStreetMap
permettant montrer sur une carte, la répartition des événements généalogiques
(naissances, mariages, décès, ect…) avec la répartition de ces données dans le
temps avec de nombreuses options.
Ce stage m'a permis de découvrir l'univers de la généalogie, son lexique et ses
mécanismes, et m'a donné l'opportunité de gérer entièrement un projet dans un
contexte professionnel pour la première fois. Ce fut une expérience réellement
enrichissante que de surmonter les obstacles qui se dressaient sur le projet, et une
belle entrée dans la vie active.
Elimane NDIAYE
Page 45 sur 45