Vous êtes sur la page 1sur 47

Résumé

Ce mémoire traite une problématique majeure dans notre pays qui se résume en un seul
mot : la géolocalisation des enfants et des personnes âgées. En effet notre recherche nous a guidé
à proposer des solutions relativement efficaces vue sa mobilité et son usage très adapté à ces
catégories de tranche d’âges. Le développement d’une application Android de géolocalisation
offre l’ergonomie d’utilisation et répond aux besoins pratiques lors de ce projet. Différents outils
et techniques ont été exploités pour permettre à aboutir à des résultats plus adéquats.

Mots-clés : géolocalisation, application Android, GPS, suivi d’un enfant, GSM.

i
Abstract
This report addresses a major problem in our country which is the geolocation of children
and elder people using smart phones. Actually, our research led us to propose a relatively
effective solution regarding to its mobility and very suitable use for these categories of ages.
The development of a location-based Android application offers the ergonomics of use and
meets the practical needs fixed in the beginning of this project. Various tools and techniques
have been exploited to achieve more adequate results.

Keywords : geolocation, child tracking, GPS, GSM, Android application.

ii
Table des matières
Résumé ......................................................................................................................................... i

Abstract ....................................................................................................................................... ii

Table des matières...................................................................................................................... iii

Liste des tableaux ........................................................................................................................ v

Liste des figures ......................................................................................................................... vi

Liste des sigles .......................................................................................................................... vii

Dédicaces ................................................................................................................................. viii

Remerciements ........................................................................................................................... ix

Introduction générale .................................................................................................................. 1

Chapitre 1 : Développements d’applications sous Android ........................................................ 3

Introduction ............................................................................................................................. 3
Plateforme Android ................................................................................................................. 3
Architecture de la plateforme Android ................................................................................... 3
Développement sous Android ................................................................................................. 4
L’environnement de développement sous Android ............................................................ 4
Structure d’un projet ............................................................................................................... 7
Composantes d’une application Android ............................................................................ 9
Exploitation des fonctionnalités d'Android........................................................................... 10
Les capteurs ....................................................................................................................... 10
Conclusion ............................................................................................................................ 12
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS .......................................................... 13

Introduction ........................................................................................................................... 13
Le réseau 3G ......................................................................................................................... 13
Architecture du réseau 3G ................................................................................................ 14
Définition de la géolocalisation ............................................................................................ 15
Les techniques de géolocalisation ..................................................................................... 16

iii
Le système de géolocalisation par GPS ............................................................................ 16
Principe de fonctionnement : la trilatération ..................................................................... 20
Conclusion ............................................................................................................................ 21
Chapitre 3 : Mise en application de la géolocalisation ............................................................. 22

Introduction ........................................................................................................................... 22
Méthodologie et conception .................................................................................................. 22
Le langage de modélisation .............................................................................................. 22
Les diagrammes de modélisation ...................................................................................... 23
Description des classes ..................................................................................................... 24
Le diagramme d'activité .................................................................................................... 27
Le diagramme de séquence ............................................................................................... 27
Schéma synoptique de la solution de la géolocalisation ....................................................... 28
Technologies utilisées ........................................................................................................... 28
Les logiciels utilisés : ........................................................................................................ 29
La Notion MVC ................................................................................................................ 30
Description fonctionnelle de la solution proposée ................................................................ 30
Partie I : L’inscription de la personne à localiser ............................................................. 31
Partie II : Envoi des coordonnées GPS à la base de données ........................................... 31
Partie Ш : Récupérations des coordonnées GPS de la base de données ........................... 32
Partie IV : Représentation des coordonnées sur Google Maps ......................................... 33
Conclusion générale .................................................................................................................. 37

Bibliographie................................................................................................................................ i

iv
Liste des tableaux
Tableau 1: Les capteurs embarqués. ........................................................................................ 11
Tableau 2: Les cas d’utilisation du système ............................................................................ 23
Tableau 3: La description de la classe « USER » .................................................................... 25
Tableau 4: La description de la classe « INVITATION »....................................................... 26
Tableau 5: La description de la classe « INVITATION_RESPONSE »................................. 26

v
Liste des figures
Figure 1: L’architecture de la plateforme Android. ................................................................... 4
Figure 2: Le SDK Android. ....................................................................................................... 6
Figure 3: L’arborescence d'un projet. ........................................................................................ 7
Figure 4: Le repère associé aux capteurs. ................................................................................ 11
Figure 5: Architecture du réseau 3G. ....................................................................................... 14
Figure 6: Les coordonnées géographiques............................................................................... 15
Figure 7: La constitution du système GPS............................................................................... 17
Figure 8: Le segment spatial .................................................................................................... 18
Figure 9: Répartition des stations du segment de contrôle. ..................................................... 19
Figure 10: La position donnée par 1 satellite. .......................................................................... 20
Figure 11: La position donnée par 2 satellites. ........................................................................ 20
Figure 12: La position donnée par 3 satellites. ........................................................................ 21
Figure 13: Diagramme de cas d'utilisation .............................................................................. 24
Figure 14: Diagramme d'activité du cas : Afficher la position d’une personne ...................... 27
Figure 15: Schéma synoptique de la solution de la géolocalisation ........................................ 28
Figure 16: Architecture générale de l'application .................................................................... 29
Figure 17: Schéma synoptique d’interaction entre activités et services et API et Base de données
................................................................................................................................................... 31
Figure 18: SDK Manager......................................................................................................... 33
Figure 19: Boite de dialogue pour créer un projet ................................................................... 34
Figure 20: Les différents API existants ................................................................................... 34
Figure 21: Clé API « SHA-1» Fingerprint............................................................................... 35

vi
Liste des sigles
API: Application Programming Interface
PHP: PHP Hypertext Preprocessor
GPS: Global Positionning System
GSM: Global System for Mobile communications
3G: 3rd Generation
IDE: Integrated Development Environment
SDK: Software Development Kit
JDK: Java Development Kit
MVC: Model–view–controller
JSON: JavaScript Object Notation
XML: Extensible Markup Language

vii
Dédicaces

Le tout puissant, mon créateur


A mon père,
En signe d’amour, de reconnaissance et de gratitude pour tous
Les soutiens et les sacrifices dont il a fait preuve à mon égard

A ma mère,
Ma raison d’être, ma raison de vivre, la lanterne qui éclaire
Mon chemin et m’illumine de douceur et d’’amour

A mes frères et mes sœurs

A mes amis, et à tous mes proches

viii
Remerciements
C’est parce que nous avons beaucoup estimé tous ceux qui nous ont écoutés, conseillés,
critiqués et encadrés que nous tenons à leur faire part de toute notre gratitude, et
particulièrement, nous tenons à remercier à travers ces courtes lignes :

Notre encadrant professionnel Monsieur HACHEMI Rabie qui nous a encadré et qui
nous a fait l’honneur de nous diriger tout au long de sa réalisation. Sa modestie et sa gentillesse
n’ont d’égales que ses grandes qualités professionnelles. Qu’il soit assuré de l’expression de
notre profonde gratitude.

Monsieur CHAIB Yusuf qui nous a suggéré le sujet de ce projet et qui nous a aidé
énormément en nous donnant des conseils sur comment parler en public et pour son soutien
aussi bien moral que technique.

Monsieur TAHRAOUI Samir qui nous a beaucoup aidé dans nos recherches et
réalisation.

Nos Familles dont nous ne nous permettrons pas d’oublier de les remercier, pour leur
soutien à la fois moral et matériel durant toute notre carrière et surtout durant les moments
difficiles.

Notre dernier mot s’adresse à tous les membres du jury pour l’honneur qu’ils nous font
de participer à l’examen de notre projet. Sans oublier tous nos professeurs à l’INTTIC pour la
formation de qualité qu’ils nous ont prodiguée tout au long de notre cursus universitaire.

ix
1
Introduction générale

Introduction générale
Dans la dernière décennie, les applications de la géolocalisation, tant individuelles que
professionnelles, ont connu un succès sans précédent. Initialement limité au domaine militaire,
l’usage de ces techniques s’est révélé au grand public grâce, en partie, au développement des
réseaux satellitaires.
Cette généralisation de la géolocalisation est également due au développement de
différentes technologies telles que les réseaux mobiles, les systèmes de navigation (GPS), le
réseau Wi-Fi, l’adressage IP. Chacune de ces technologies permet de récupérer les coordonnées
géographiques d’un objet (smartphone, une tablette, une automobile, une station de base d’un
réseau mobile, un ordinateur connecté à Internet, … etc.) avec une certaine précision1.
En raison de ses nombreuses retombées, différent secteurs professionnels ont eu recours
à la géolocalistion dans le but d’optimiser les coûts ou d’accroître la sécurité. Ainsi, la
géolocalisation est utilisée pour lutter contre les vols, automatiser les systèmes de guidage,
surveiller les employés pendant les heures de travail, … etc. Quant aux applications
individuelles, la géolocalisation est notamment utilisée pour le suivi et la sécurité des personnes
ou des biens personnels.
Dans le domaine du web, la géolocalisation est également très répondue. Certains sites
web, tels que les sites d’achat en ligne ou les réseaux sociaux, utilisent la position géographique
du visiteur afin de fournir des résultats plus adéquats, ou de proposer des publicités ayant une
relation avec la zone géographique ciblée.
Dans le cadre de notre projet de fin d’études, on s’est proposé de réaliser une application
permettant à l’utilisateur de géolocaliser des personnes ayant besoin d’être suivies tels que les
enfants et les personnes âgées de sa famille. Pour cela on va créer une base de données avec
MySQL, et développer une API avec le langage PHP permettant de faire un lien entre cette base
de données et notre application, afin d’enregistrer la position géographique d’un membre de la
famille.

1
La géolocalisation par adresse IP qui n’utilise pas l’approximation ou la précision.
2
Introduction générale

Notre mémoire sera répartit sur 3 chapitres. Le chapitre 1 donne une description sur la
plateforme Android. Ensuite le chapitre 2 donne une vue générale sur les techniques utilisées de
géolocalisation. Le troisième chapitre est consacré pour notre application Android. Et enfin on
va terminer par une conclusion générale.
3
Chapitre 1 : Développements d’applications sous Android

Chapitre 1 : Développements d’applications sous Android

Introduction
Le Smartphone est un compagnon de tous les instants et un véritable ordinateur de poche
pour gérer le quotidien, s'informer, se divertir. Il comporte aussi un ensemble de capteurs
embarqués ou connectés. Le Smartphone a donc une place à part dans la galaxie des appareils.
Pourtant, les utilisateurs savent très peu de choses sur ce qui se passe à l'intérieur de ces boîtes
noires. Ainsi, dans ce chapitre nous allons essayer de voir les concepts de base des Smartphone
en nous intéressant plus précisément à la plateforme de Google Inc. Android.

Plateforme Android
Android est un système d'exploitation pour Smartphones, tablettes tactiles, PDA et
terminaux mobiles. C'est un système open source, utilisant le noyau Linux, conçu par Android,
une startup rachetée par Google, et annoncé officiellement le 5 novembre 2007. D'autres types
d'appareils possédant ce système d'exploitation existent, par exemple des téléviseurs, des
montres, des autoradios et même des voitures. [1]

Android est gratuit, pour les constructeurs d’appareils souhaitant l’utiliser, et


partiellement open-source. Concrètement, ce système d’exploitation s’appuie sur un noyau
Linux optimisé pour un usage mobile, et sur une machine virtuelle Java assez fortement
modifiée. Le développement se fait donc en Java, mais sur cette JVM spécifique à Android.

Il est possible d’utiliser divers IDE pour développer et compiler une application Android,
mais Google fournit un IDE c’est Android Studio.

Architecture de la plateforme Android


L’architecture de la plateforme Android se décline, selon une démarche bottom up, en
quatre principaux niveaux que sont :

 le noyau linux
 les librairies et l’environnement d’exécution,
4
Chapitre 1 : Développements d’applications sous Android

 le module de développement d’applications


 les différentes applications. [1]

Figure 1: L’architecture de la plateforme Android.

Développement sous Android

L’environnement de développement sous Android


Afin de développer des applications sous Android, un ensemble d’outils est nécessaire.
Vue que les procédures d’installation de ces outils sont assez longues et fastidieuses, alors les
décrire, pas à pas, risquerai de prendre énormément de place et ainsi beaucoup de pages. Alors,
on se contentera juste d’évoquer les outils et leur intérêt.

Le JDK (Java Developpment Kit)

Les applications développées pour Android étant essentiellement écrites en langage java.
Un langage de programmation orienté objet qui a la particularité d'être très portable. Cela
5
Chapitre 1 : Développements d’applications sous Android

signifie qu'un programme Java, fonctionnant sur Windows (par exemple), pourra facilement
tourner sur Mac ou GNU/Linux. Cette petite prouesse vient du fait que Java s'appuie sur une
machine virtuelle pour s'exécuter (appelée la JVM). Pour avoir une JVM sur votre ordinateur, il
vous faut télécharger le JRE.

La JVM ne lit pas directement le code Java. Elle lit un code compilé (le bytecode). Pour
passer du code Java, que le développeur écrit, au code compilé, lu par la JVM, des outils
spéciaux sont nécessaires. Ces outils sont inclus dans le JDK. De plus, le JDK contient le JRE
(et donc la machine virtuelle), ce qui est bien pratique. Pour résumer, on dira que :

 Pour un simple utilisateur de Java : il doit avoir le JRE ;


 Pour un développeur : il aura besoin des outils du JDK [2];

Le SDK (Software Development Kit) Android


6
Chapitre 1 : Développements d’applications sous Android

Un SDK, c'est-à-dire un kit de développement logiciel, est un ensemble d'outils que met
à disposition un éditeur afin de permettre de développer des applications pour un environnement
précis. Le SDK Android permet, donc, de développer des applications pour Android et
uniquement pour Android. Au premier lancement du SDK, un écran semblable à la figure
suivante s'affichera :

Figure 2: Le SDK Android.


7
Chapitre 1 : Développements d’applications sous Android

L'IDE Android Studio

Android Studio est un environnement de développement pour développer des applications


Android. Il est basé sur IntelliJ IDEA.

Android Studio est annoncé le 15 mai 2013 lors du Google I/O et une version "Early Access
Preview" est disponible le jour même1.

Le 8 décembre 2014, Android Studio passe de version bêta à version stable 1.0.
L'environnement devient alors conseillé par Google, et Eclipse est délaissé.

Android Studio permet principalement d'éditer les fichiers Java et les fichiers de
configuration d'une application Android.

Il propose entre autres des outils pour gérer le développement d'applications multilingues et
permet de visualiser la mise en page des écrans sur des écrans de résolutions variées simultanément.

Structure d’un projet


Le système de construction d’un programme Android est organisé sous la forme d’une
arborescence de répertoires spécifiques à un projet, exactement comme n’importe quel projet
Java. Les détails, cependant, sont spécifiques à Android. Voici un rapide tour d’horizon de la
structure d’un projet :

Figure 3: L’arborescence d'un projet.


8
Chapitre 1 : Développements d’applications sous Android

Tout comme bon nombre de technologies actuelles, les sources d’une application
Android possèdent une structure bien définie qui doit être respectée. Ces arborescences
permettent non seulement de rendre les projets plus lisibles et organisés, mais aussi de simplifier
le développement.

Lors de la création d’un nouveau projet, voici l’arborescence qui est automatiquement
générée :

 src : répertoire contenant l’ensemble des sources du projet. Il contient les classes, de type
activité, qui gèrent entre autres le cycle de vie, mais aussi les classes permettant de piloter
les différentes fonctions de l’application ;

 gen : répertoire contenant l’ensemble des fichiers générés par le plugin correspondant à
l’environnement de développement. Ne doit pas être modifié.

 androidManifest.xml : fichier XML décrivant l’application et ses composants, tels que les
activités, les services, etc. Lors de la création d’une activité, une erreur courante pour un
premier projet Android est d’oublier de la déclarer dans le fichier Manifest. C’est une étape
indispensable pour le fonctionnement de l’application. Le Manifest est, en quelque sorte, la
carte d’identité de l’application, et permet d’autoriser l’exécution des activités et autres
actions de l’application.

 res : répertoire contenant toutes les ressources telles que les images, les vues de l’interface
graphique, etc., nécessaires à l’application. Ce répertoire est structuré par défaut de la
manière suivante :

• res/drawable : contient les ressources de type image ;


• res/layout : contient les descriptions des interfaces graphiques au format XML (les vues) ;

• res/xml : contient les fichiers XML supplémentaires (non présents par défaut) ;
• res/menu : contient la description des menus, composants très courants d’une vue ;

• res/values : contient diverses ressources, telles que les textes, qui sont empaquetées sans
aucun traitement.
9
Chapitre 1 : Développements d’applications sous Android

Au moment de la compilation du projet, l’application finale est générée au format APK,


dans le répertoire bin de l’arborescence. C’est ce fichier qu’il faut ensuite déployer sur les
équipements, afin de pouvoir faire tourner l’application.

Composantes d’une application Android


Une application Android se compose de plusieurs éléments. Dans ce qui suit, nous allons
essayer de découvrir les plus importants :

Les Activités

Une activité est la composante principale pour une application Android. Elle représente
l’implémentation et les interactions des interfaces.

Plusieurs choix se proposent pour mettre en place l'interface visuelle :

 Utiliser un fichier XML pour décrire l’interface ;


 Créer les éléments de l'interface à l'intérieur du code java ;

Les Services

Un Service est, en fait, un programme tournant en tâche de fond et n’ayant pas


d’interface graphique. L’exemple commun illustrant cette notion, est celui du lecteur mp3. Un
lecteur mp3 ne nécessite pas, pour la plupart du temps, d’interface graphique et doit tourner en
tâche de fond, laissant la possibilité aux autres applications de s’exécuter librement. Un service
peut être lancé à différents moments :

 Au démarrage du téléphone ;
 Au moment d’un événement (arrivée d’un appel, SMS, mail, etc.) ;
 Lancement de l’application ;
 Action particulière dans application.

Les BroadcastReceivers

Un BroadcastReceiver, comme son nom l’indique, permet d’écouter ce qui se passe sur
le système ou sur votre application et de déclencher une action que vous aurez prédéfinie. C’est
souvent par ce mécanisme que les services sont lancés.
10
Chapitre 1 : Développements d’applications sous Android

Les Content providers

Les ContentProvider sont, comme l’exprime leur nom, des gestionnaires de données.
Ils permettent de partager l’information entre applications.

Les Intents

Les Intents sont des objets permettant de faire passer des messages contenant de
l’information entre composants principaux. La notion d’Intent peut être vue comme une
demande de démarrage d’un autre composant, d’une action à effectuer.

Exploitation des fonctionnalités d'Android

Les capteurs

La majorité des appareils modernes sont bien plus que de simples outils pour
communiquer ou naviguer sur internet. Ils possèdent des capacités sensorielles, matérialisées
par leurs capteurs. Ces derniers peuvent être divisés en trois principales catégories :

Les capteurs de mouvements

En mesurant les forces d'accélération et de rotation sur les trois axes, ces capteurs sont
capables de déterminer dans quelle direction se dirige l'appareil. On y trouve l'accéléromètre,
les capteurs de gravité, les gyroscopes et les capteurs de vecteurs de rotation.

Les capteurs environnementaux

Ce sont trois capteurs (baromètre, photomètre et thermomètre) qui mesurent la


température ambiante, la pression atmosphérique, l'illumination et l'humidité.

Les capteurs de position

Évidemment, ils déterminent la position de l'appareil. On trouve ainsi les capteurs


d’orientation et le magnétomètre.

La figure suivante donne le repère associé aux capteurs à trois dimensions :


11
Chapitre 1 : Développements d’applications sous Android

Figure 4: Le repère associé aux capteurs.

Le tableau suivant recense la majorité de capteurs embarqués par un Smartphone :

Capteur Type Description Utilisation typique


Mesure la force d'accélération Détecter les mouvements.
appliquée au terminal sur les trois
Accéléromètre Matériel axes (x, y et z).
Mesure le taux de rotation sur chacun Détecter l'orientation de l'appareil.
Gyroscope Matériel des trois axes en radian par seconde
(rad/s).
Mesure le niveau de lumière ambiante Détecter la luminosité pour adapter
en lux (lx). celle de l'écran de l'appareil.
Photomètre Matériel
Mesure le champ géomagnétique sur
Magnétomètre Matériel les trois axes en micro tesla (µT) Créer un compas.
Mesure le degré de rotation que Déterminer la position de
l'appareil effectue sur les trois axes. l'appareil.
Orientation Logiciel
Mesure la pression ambiante en Surveiller les changements de
Baromètre Matériel hectopascal (hPa) ou millibar (mbar). pression de l'air ambiant.
Détecter si l'utilisateur porte le
Capteur de Matériel Mesure la proximité d'un objet en téléphone à son oreille pendant un
proximité
Thermomètre Matériel Mesure la centimètres
température(cm).
de l'appareil en Surveillerappel.
la température.
degrés Celsius (°C).

Tableau 1: Les capteurs embarqués.


12
Chapitre 1 : Développements d’applications sous Android

Conclusion

Dans ce chapitre nous avons essayé de lever le voile sur cette nouvelle race de terminaux
en nous basant sur la plateforme Android. L’approche faite durant cette étude était beaucoup
plus logicielle. Dans ce qui suit, nous allons essayer de comprendre les concepts fondamentaux
de deux réseaux largement utilisés dans les applications pour Smartphone en l’occurrence : Le
3G et le GPS.
13
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Introduction
Dans ce troisième chapitre, et après avoir vu l’essentiel sur tout ce qui entoure le
développement d’applications pour la plateforme Android, nous allons nous intéresser au réseau
mobile 3G et à la géolocalisation par le système GPS en tachant d’insister sur l’essentiel.

Le réseau 3G
La 3G désigne la troisième génération du réseau de téléphonie mobile qui a succédé au
réseau GSM (Global System for Mobile Communication). Elle est basée sur l'UMTS (Universal
Mobile Telecommunications Systems) qui exploite une bande de fréquence plus large et un
système de transfert des données par paquets. Grâce à un débit descendant nettement supérieur
(entre 144 et 2.000 kilobits par seconde (kb/s) selon les conditions d’utilisation) au GSM (9,6
kb/s), la 3G a ouvert la voie à de nouvelles applications telles que la visiophonie, la TV mobile
et les messageries instantanées. [3]
14
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Architecture du réseau 3G

Figure 5: Architecture du réseau 3G.


15
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Définition de la géolocalisation
La géolocalisation peut être définie comme étant un procédé permettant de positionner
un objet (une personne, un véhicule, etc.) sur un plan ou une carte à l'aide de ses coordonnées
géographiques.

Figure 6: Les coordonnées géographiques.

Les coordonnées géographiques d'un point M de la surface de la terre sont


essentiellement :

 La longitude : angle orienté entre le plan méridien origine et le plan méridien contenant le
point M. Le méridien d’origine est celui de Greenwich ;

 La latitude : angle orienté entre le plan de l'équateur et la normale à l'ellipsoïde passant par
le point M ;

 La hauteur : distance algébrique entre le point M et l'ellipsoïde. [4]


16
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Les techniques de géolocalisation

De nos jours, il existe plusieurs techniques de localisation. La plus connue est


l’utilisation des récepteurs GPS. La précision de 10 à 20 mètres qu’offre le GPS, dans les milieux
dégagés, a permis un large déploiement des services de localisation en extérieur. Cependant,
l’extension de ces services en intérieur reste limitée. Afin de se libérer des limitations du GPS
dans les environnements urbains denses ou intérieurs, des solutions reposant sur des capteurs ou
des réseaux sans fils ont fait leur apparition.

La géolocalisation par satellite

Elle repose sur l’utilisation des ondes émises par une constellation de satellites (GPS,
GLONASS, GALILEO), prévue à cet effet, pour le calcul de la position actuelle sur la face
terrestre d’un terminal équipé d’une puce compatible. Cette position est alors traduite en termes
de latitude, longitude et parfois altitude (ex : 43° 5494 N - 1° 48472 E) et peut alors être
représentée physiquement sur une carte.

La géolocalisation par GSM

Cette technique permet le positionnement d'un terminal GSM en se basant sur certaines
informations relatives aux antennes GSM auxquelles le terminal est connecté. La précision de
cette technique peut aller de 200 mètres à plusieurs kilomètres, selon que le terminal se trouve
en milieu urbain (où la densité d'antennes est supérieure), ou en milieu rural. Aujourd'hui, la
méthode GSM la plus utilisée est celle du Cell ID (identification de la cellule radio). Cette
méthode consiste à récupérer les identifiants des antennes GSM auxquelles le terminal est
connecté.

Le système de géolocalisation par GPS


GPS (Global Positioning System) est le système de localisation par satellite le plus
utilisé. Développé et entretenu par le département de la défense des Etats-Unis (DoD), dans le
but de suivre la position de ses troupes et celle des troupes ennemies. Le GPS est également
utilisé pour des applications civiles : aide à la navigation, gestion du trafic, localisation des
téléphones portables dans des milieux dégagés, etc. Une autre application intéressante, mais
17
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

moins connue de ce système, est la synchronisation en temps grâce aux horloges atomiques de
grande précision embarquées dans les satellites.

Lorsque l’on parle du GPS, on pense aussitôt au récepteur GPS. Pourtant, il n’est qu’une
partie de ce système. Le GPS s’articule autour de trois principaux segments :

 Le segment spatial ;
 Le segment de contrôle ;
 Le segment utilisateur ; [5]

Figure 7: La constitution du système GPS.

Le segment spatial

Le segment spatial est constitué d’une constellation de 24 satellites NAVSTAR


(Navigation Satellite Timing And Ranging) au minimum. Ces satellites sont régulièrement
répartis sur six orbites circulaires, déphasées de 60°, inclinées à 55°. Ils gravitent sur une orbite
polaire quasi circulaire à une altitude de 20200 km environ qu'ils bouclent en 11 heures 58
minutes. Ce segment possède des petits propulseurs pour corriger au besoin sa trajectoire. [5]
18
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Figure 8: Le segment spatial

Le segment de contrôle

Le segment de contrôle est constitué de tout l’équipement terrestre qui assure le suivi et
l’entretien des satellites en orbite. La station principale est située au Colorado (Falcon Air Force
Base). Elle est relayée par 4 stations secondaires réparties sur des petites îles contrôlées par les
USA (Hawaii, Ascension, Diego Garcia et Kwajalein).

Il s’agit de s’assurer que tous les satellites fonctionnent bien, de corriger les trajectoires
pour que les informations de position soient les plus correctes possibles et de synchroniser toutes
les horloges des satellites, tant entre elles qu’avec l’heure de la terre. [6]
19
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Figure 9: Répartition des stations du segment de contrôle.

Si un satellite ne fonctionne pas correctement, le segment de contrôle au sol peut le


déclarer « hors d'état de marche » et adopter les mesures nécessaires pour corriger le problème.
Dans un tel cas, le satellite ne doit pas servir au positionnement avant d'être à nouveau déclaré
fonctionnel.

Le segment utilisateur

Constitué par l’ensemble des récepteurs susceptibles de décoder les signaux émis par la
constellation de satellites et d’en déduire, par calcul, les solutions de position et de temps. Un
récepteur doit être capable de sélectionner plusieurs satellites parmi ceux qui couvrent sa zone
et d’acquérir les signaux GPS correspondants. [6]
20
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Principe de fonctionnement : la trilatération

La trilatération permet, grâce à trois satellites fixes qui connaissent leur position exacte,
de déterminer la position d’un point précis sur Terre. Chaque satellite du réseau GPS possède
une horloge atomique d’une grande précision. [5]

Pour ce qui est du principe, nous pouvons le décrire comme suit : à un instant t, un
satellite émet son signal vers le récepteur GPS qui le reçoit à un instant t1. Le récepteur GPS
calcule ensuite, grâce à une opération simple, le temps T qu’a mis le signal pour arriver. En
multipliant le temps T par la vitesse de la lumière on arrive à déterminer la distance d qui sépare
le satellite et le récepteur.

Donc le récepteur se trouve sur la périphérie de la sphère de rayon d et de centre le


satellite en question.

Figure 10: La position donnée par 1 satellite.

Figure 11: La position donnée par 2 satellites.

En renouvelant ce mécanisme avec un deuxième satellite, qui détermine une deuxième


sphère qui coupe la 1ère en un plan sur lequel est situé le récepteur.
21
Chapitre 2 : Le réseau 3G et la géolocalisation par GPS

Pour terminer la trilatération, un troisième satellite est nécessaire afin de trouver sa


position exacte sur ce plan. En effet lorsque la troisième sphère coupe le plan elle donne deux
points.

Figure 12: La position donnée par 3 satellites.

Dans le cas où l’utilisateur se situe à la surface de la terre, seul un des 2 points est
cohérent. Ainsi, on peut déduire sa position exacte en éliminant le point donnant un résultat
incohérent.

Comme le récepteur n’a pas l’heure, alors l’ingéniosité des créateurs du système GPS a
été d’utiliser un quatrième satellite pour synchroniser l’horloge de notre récepteur GPS. On est
donc, à quatre satellites, capables de retrouver les quatre inconnues (x, y, z et t) en résolvant le
système composé de quatre équations, qui ne peuvent être que les signaux émis par les quatre
satellites.

Dans la pratique, le récepteur utilise entre 4 et 12 satellites pour calculer sa position. Plus
le nombre de satellites est important plus la précision est meilleure.

Conclusion
Dans ce troisième chapitre nous avons vu l’essentiel sur deux réseaux à différentes
échelles, l’un pour la transmission sans fils des coordonnées de la position de la personne voulu
et l’autre pour la géolocalisation du dernier en cas d’urgence. Dans le chapitre suivant nous
allons détailler notre réalisation.
22
Chapitre 3 : Mise en application de la géolocalisation

Chapitre 3 : Mise en application de la géolocalisation

Introduction
Dans ce chapitre, on entame la réalisation concrète du projet, après avoir exploré la partie
théorique, ensuite la définition des spécifications des exigences.

On a commencé par la présentation de la problématique, ensuite on a proposé une


solution pour cette problématique, avec le détail de ces différents outils à utiliser, et pour ce
chapitre on entame tous ce qui est en relation avec le développement de notre application
Android.

Méthodologie et conception
L'analyse et la conception d'un projet informatique nécessitent l'utilisation d'un langage
de modélisation et d'une méthode ou démarche de développement appropriée. Ce sont des outils
d'aide à la conception qui permettent la description du système logiciel par les diagrammes, pour
une meilleure compréhension de celui-ci par les acteurs à travers les cas d'utilisation, les
diagrammes de séquences mais surtout une participation et une collaboration active entre
informaticiens et acteurs du système à travers le recueil d'information. L'ensemble des règles de
modélisation peut être appuyé par un processus dont le rôle est d'assurer l'harmonie au sein d'un
ensemble d'éléments coopératifs, et d'expliquer comment il convient de se servir du langage de
modélisation.

Le langage de modélisation
Pour programmer une application, il ne convient pas de mettre l'accent que sur l'écriture
du code. Il faut d'abord organiser ses idées, les documenter, puis organiser la réalisation en
définissant les modules et étapes de la réalisation. C'est cette démarche antérieure à l'écriture
que l'on appelle modélisation, son produit est un modèle.
Cette modélisation nécessite l'utilisation d'un langage permettant la description du
système logiciel ainsi que sa compréhension par ses futurs utilisateurs. Pour ce faire, nous
23
Chapitre 3 : Mise en application de la géolocalisation

choisissons UML (Unified Modeling Langage) comme langage de modélisation de notre


système, car il comble une lacune importante des technologies objets et parce que nous sommes
très familiers à ce langage. Il permet d'exprimer et d'élaborer des modèles objet,
indépendamment de tout langage de programmation. De plus, grâce à sa notation graphique, il
permet d'exprimer visuellement une solution objet, ce qui facilite la comparaison et l'évaluation
de solutions. Enfin, l'aspect formel de sa notation limite les ambiguïtés et les incompréhensions.

Les diagrammes de modélisation

Le diagramme de cas d'utilisation

Le diagramme de cas d'utilisation représente la structure des grandes fonctionnalités


nécessaires aux utilisateurs du système. C'est le premier diagramme du modèle UML, celui où
s'assure une relation entre l'utilisateur et les objets que le système met en œuvre. Il représente la
structure des fonctionnalités nécessaires aux utilisateurs du système. Pour ce qui est de notre
projet, nous l'utilisons lors des étapes de capture des besoins fonctionnels et techniques dans
notre processus de développement. Cette procédure est efficace car elle permet de cerner tous
les besoins de l'utilisateur avant la réalisation du projet.
N° Cas d’utilisation

Créer un compte
1
Ouvrir le compte
2
Envoyer une invitation
3
Accepter une invitation
4
Lister les personnes à localiser
5
Choisir la personne à localiser
6
Afficher la position sur Google Maps
7

Tableau 2: Les cas d’utilisation du système


24
Chapitre 3 : Mise en application de la géolocalisation

Figure 13: Diagramme de cas d'utilisation

Le diagramme de classe

Le diagramme de classes définit la structure statique du système en montrant les objets


dans le système, les relations entre les objets, les attributs et les opérations qui caractérisent
chaque classe d'objet. Il intervient au niveau de la branche fonctionnelle de notre processus. Il a
servi dans le cadre de notre projet à représenter la structure des entités manipulées par
l'utilisateur.

Description des classes

Description de la classe « USER »

Le tableau suivant présente la description de la classe « USER ».


CLASS : USER

Cette classe permet de stocker les informations sur un utilisateur désirant avoir un compte
qui va lui servir à communiquer avec les autres utilisateurs.

Attributs
25
Chapitre 3 : Mise en application de la géolocalisation

Nom Type Signification

Id Integer Clé primaire et identifiant


de la classe.

Username Varchar Pseudo de l'utilisateur

Password Varchar Mot de passe du compte

Firstname Varchar Prénom de l’utilisateur

Lastname Varchar Nom de famille de


l’utilisateur

Sex Varchar Sexe de l’utilisateur

Latitude Double Coordonnée de position

Longitude Double Coordonnée de position

Acltitude Double Coordonnée de position

Accuracy Double Coordonnée de position

Associated_with Varchar Noms des autres utilisateurs


permirent de les positionnes

Tableau 3: La description de la classe « USER »

Description de la classe « INVITATION »

Le tableau suivant présente la description de la classe « INVITATION ».


CLASS : INVITATION

Cette classe permet d’envoyer les informations pour un utilisateur qui a un compte. Qui
va lui servir à communiquer avec les autres utilisateurs.

Attributs
26
Chapitre 3 : Mise en application de la géolocalisation

Nom Type Signification

Id Integer Clé primaire et identifiant


de la classe

From Integer L’id de l’utilisateur qui


envoi l’invitation

To Integer L’id de l’utilisateur qui


reçoit l’invitation

Tableau 4: La description de la classe « INVITATION »

Description de la classe « INVITATION_Response »

Le tableau suivant présente la description de la classe « INVITATION ».


CLASS : INVITATION_RESPONSE

Cette classe permet d’envoyer les informations pour un utilisateur qui a un compte. Qui
va lui servir à communiquer avec les autres utilisateurs.

Attributs

Nom Type Signification

Id Integer Identifiant de la classe


invitation_response

Invitation_id Integer Identifiant de la classe


invitation

Accepted Integer Réponse « accepté / non »

Response_viewed Integer Si la réponse « vue / non »

Tableau 5: La description de la classe « INVITATION_RESPONSE »


27
Chapitre 3 : Mise en application de la géolocalisation

Le diagramme d'activité

Le diagramme d'activité n'est autre que la transcription dans UML de la représentation


du processus telle qu'elle a été élaborée lors du travail qui a préparé la modélisation : il montre
l'enchaînement des activités qui concourent au processus. Il intervient dans la branche gauche
de notre processus de développement dans la phase d'analyse.

Figure 14: Diagramme d'activité du cas : Afficher la position d’une personne


Le diagramme de séquence

Le diagramme de séquence permet de représenter la succession chronologique des


opérations réalisées par un acteur. Il indique les objets qui seront manipulés par l'acteur et les
opérations. Il représente les messages échangés entre les objets dans un ordre chronologique. Il
donne une notion temporelle aux messages. Nous l'utilisons au niveau de la branche
fonctionnelle de notre processus pour représenter l'opération de positionner un utilisateur de
notre application « la personne à positionné » sur Google Maps.
28
Chapitre 3 : Mise en application de la géolocalisation

Schéma synoptique de la solution de la géolocalisation


La figure suivante montre le schéma synoptique de la solution de la géolocalisation qui
vise, surtout, à illustrer le principe de fonctionnement dans ses grandes lignes.

Une localisation à distance pour aider une personne à mieux gérer le positionnement de
leurs membres de famille.

Figure 15: Schéma synoptique de la solution de la géolocalisation

Technologies utilisées
Pour assurer la communication entre la base de données et l'application nous avons
utilisé la technique la plus répandue qui est la suivante :
L'application envoie des données aux scripts PHP sous forme de requête vers le serveur
MySQL grâce au protocole http, le serveur à son tour analyse la requête et renvoie la réponse
sous forme de fichiers JSON à l'application qui fait la lecture de ces fichiers. Le client ici est la
plateforme Android, le serveur Web est PHP et le serveur de base de données est MySQL.
29
Chapitre 3 : Mise en application de la géolocalisation

Dans la partie suivante, nous aborderons la présentation des outils qui ont servi à la
réalisation de ce projet en présentant l'environnement logiciel et par la suite l'environnement de
travail.

Figure 16: Architecture générale de l'application

• Serveur de base de données MYSQL


Notre choix s'est porté sur le serveur de base de données MYSQL pour de nombreuses
raisons :
C'est un SGBD gratuit et disponible sur de nombreuses plateformes (Unix, Linux,
Windows, MacOs X, etc.). Il s'intègre au sein de nombreux serveurs web (Apache, etc.) et est
beaucoup plus adapté à des petites bases de données.
MySQL est un serveur de base de données très utilisé dans le monde. Il est rapide,
robuste, facile à utiliser et à administrer et dispose d'une documentation complète
• PHP
Le langage PHP est le langage utilisé pour développer notre API.

Les logiciels utilisés :


A ce niveau nous allons vous présenter les logiciels qui ont été utilisés pour le
développement de l'application.
 Android Studio
Android Studio est l'environnement de développement que Google propose à ses
développeurs pour créer des applications Android.

 Genymotion
30
Chapitre 3 : Mise en application de la géolocalisation

Genymotion est l'un des meilleurs émulateurs Android disponibles gratuitement au


téléchargement. Le logiciel, à la fois performant et simple d'utilisation, conviendra aux curieux
comme aux développeurs Android.

La Notion MVC
Le développement des applications sous Android est associé à la notion de modèle-vue-
contrôleur (MVC).
L'approche MVC vise à décomposer un programme en trois parties :
• Le Modèle est la représentation codée du comportement d'un bouton par exemple.
• La Vue constitue la couche graphique, intégrant les boutons, les zones de textes, les images
• Le Contrôleur agit comme une liaison entre la vue et le modèle.
Ce découpage permet de simplifier le développement en isolant le code métier (le
modèle) de l'interface graphique (vue) et de leurs interactions (contrôleur). Ainsi la modification
de l'un n'impose pas la réécriture des autres, optimisant ainsi la réalisation et la maintenance des
projets. [7]
Il permet de distinguer la notion d'interface graphique, qui peut être par exemple
déléguée à un graphiste, des interactions (appui sur un bouton etc.) et des actions liées après
intervention de l'utilisateur.

Description fonctionnelle de la solution proposée


Comme nous pouvons le voir sur le schéma synoptique précédent, du point de vue
fonctionnel, la solution proposée pour la géolocalisation d’un membre ou plusieurs membres de
la famille peut être subdivisée en quatre principales parties : une pour l’inscription de la
personne à localiser et une autre pour la récupération des coordonnées du GPS et pour l’envoi
de ces derniers à une base de données , pour la troisième partie c’est la récupération des
31
Chapitre 3 : Mise en application de la géolocalisation

coordonnées de la base de données & quatrièmement c’est l’affichage des coordonnées sur
Google Map.

Cette Figure est un schéma synoptique pour avoir une idée du fonctionnement de notre
application et l’interaction entre activités et service avec l’API et Base de données.

Figure 17: Schéma synoptique d’interaction entre activités et services et API et Base de données

Partie I : L’inscription de la personne à localiser

Une fois l’utilisateur est inscrit et connecté dans l’application, une mise à jour de
localisation se fera périodiquement et envoyé à notre API sous forme POST. L’API ensuite va
connecter à notre base de données, pour faire la mise à jour nécessaire des coordonnées
géographiques de cet utilisateur, afin de permettre aux personnes autorisées de récupérer sa
dernière position géographique.

Partie II : Envoi des coordonnées GPS à la base de données


Pour ce faire, du point de vue programmation, l’une de nos Activités doit implémenter
l’interface LocationListener. Nous utiliserons ensuite l’objet LocationManager pour gérer notre
abonnement aux mises à jour des coordonnées GPS du téléphone.

Comme notre Activité implémente l’interface LocationListener, quatre méthodes sont à


surcharger :

 onProviderEnabled() : cette méthode est appelée lorsqu’une source de localisation est


32
Chapitre 3 : Mise en application de la géolocalisation

activée ;
 onProviderDisabled() : cette méthode est appelée lorsqu’une source de localisation
est désactivée ;
 onStatusChanged() : cette méthode est appelée lorsque le statut d’une source change
;
 onLocationChanged() : cette méthode est appelée lorsque les coordonnées GPS du
téléphone changent.

Pour ne pas consommer trop de data et économiser de la batterie, il convient de s’abonner


à la localisation GPS de l’utilisateur uniquement quand c’est nécessaire.

A noter qu’il est également possible de faire une géolocalisation approximative grâce
aux réseaux (Wifi, GSM, etc.).

Il convient d’ajouter une autorisation, nous permettant de récupérer les coordonnées GPS
de l’utilisateur. Pour ce faire, nous devons ajouter la ligne suivante au fichier Manifest :

<uses-permission android : name= android.permission.ACCESS_FINE_LOCATION"/>

Partie Ш : Récupérations des coordonnées GPS de la base de données


Pour cette partie on va expliquer comment la récupération des coordonnées géographique
va se faire.

L’application envoie les informations nécessaires d’un utilisateur à localiser sous forme
POST à notre API.

Les fonctions/classes utilisées pour envoyer les données sont :

 La classe HttpUrlConnection pour connecter à notre API.


 BufferedWriter pour remplir les données à envoyer.
Les classes utilisées au niveau de l’API sont :

 La classe PDO pour connecter à la base de données et récupérer


l’enregistrement concerné sous forme d’un objet.
 La fonction json_encode() pour formatter l’objet obtenue sous forme JSON.
Les classes/méthodes utilisées pour la réponse à la requête :
 La classe BufferedReader pour la lire le résultat de la réponse obtenue
 La classe JSONObject pour lire le format JSON à partir d’une chaîne de
33
Chapitre 3 : Mise en application de la géolocalisation

caractère.
Les classes/méthodes utilisées pour mettre la position géographique dans Map de
Google :

 La classe GoogleMap pour attribuer différentes options sur le Map de google.


 La méthode addMarker() pour mettre la position dans le Map.

Partie IV : Représentation des coordonnées sur Google Maps

Dans ce qui suit, on va essayer de décrire grossièrement les différentes étapes pour
parvenir à utiliser les cartes Google Maps. Il faut tout d’abord installer et configurer Google
Play Services, disponible dans le SDK Manager.

Figure 18: SDK Manager

Puis, on connecte avec un compte Google afin de récupérer une clé API à l’adresse suivante :
https://console.developers.google.com/, puis on active l’API « Google Maps Android
API ».Nous créons un projet à l’aide du bouton Create :
34
Chapitre 3 : Mise en application de la géolocalisation

Figure 19: Boite de dialogue pour créer un projet

Figure 20: Les différents API existants


35
Chapitre 3 : Mise en application de la géolocalisation

On clique sur le bouton API Access situé sur la barre de navigation :

Figure 21: Clé API « SHA-1» Fingerprint

<meta-data
android:name="com.google.android.maps.v2.API
_KEY" android:value="API_KEY" />

Nous rajoutons aussi les lignes suivantes, afin de déclarer une permission nécessaire à
l’utilisation de Google Map :

<permission
android:name="com.google.android.gmapv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name=" com.google.android.gmapv2.permission.MAPS_RECEIVE" />
36
Chapitre 3 : Mise en application de la géolocalisation

Ainsi que les permissions (commentées) suivantes :

<!-- Permission pour utiliser la connexion internet -->


<uses-permission android:name="android.permission.INTERNET" />
<!-- Permission permettant de vérifier l'état de la connexion -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Permission pour stocker des données en cache de la map -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSERVICE
Afin de pouvoir utiliser Google Map V2 sur un appareil, celui-ci nécessite la présence de la
librairie OpenGL ES Version 2. Les lignes suivantes permettent de rendre l’application
indisponible aux appareils qui ne possèdent pas cette version d’OpenGL.

<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
37
Conclusion générale

Conclusion générale
Dans le cadre de notre projet de fin d’étude on a traité le sujet intitulé «Développement
d’une application Android de géolocalisation via GPS ou réseaux mobiles ».

Dans le premier chapitre on a focalisé sur la description de la plateforme Android, tels


que les différentes couches du système Android, les composants d’une application, les
fonctionnalités qui permettent d’exploiter les capteurs embarqué d’un smartphone.

Dans le deuxième chapitre on a vu deux différentes technologies permettant la


localisation et ce sont : GPS qui est une technologie qui repose sur l’utilisation des satellites,
GSM qui est une technologie qui repose sur l’utilisation des stations de base.

Dans le troisième chapitre on a introduit les différents outils ayant une relation avec le
développement de notre application Android, on a utilisé un API permettant de faire un lien
entre notre base de données et notre application afin de modifier, récupérer, insérer ou met à
jour les enregistrements.

Pour la suite de notre projet on va essayer d’améliorer l’application, de telle sorte qu’elle
soit plus adaptative par rapport à l’historique des résultats obtenus précédemment.

.
Bibliographie

[1] F. Espiau, Créez des applications pour Android, Le livre du zero, 2012.
[2] H. Cerille, Apprenez à prengrammer en java, Le livre du zero, 2011.
[3] [En ligne]. Available: www.futura-sciences.com/magazines/high-
tech/infos/dico/d/smartphone-3g-2008/.
[4] P. Correia, Guide pratique du GPS, Eyrolles, 2012.
[5] J.-L. Cosandier, Principes généraux de la localisation par satellites, Snastro, 2003.
[6] A. El-Rabbany, Introduction to GPS: The Global Positioning System, Amazon, 2002.
[7] B. SidiAliMebarek, «Queue Management System using SMS,» Oran, 2015.

Vous aimerez peut-être aussi