SlideShare une entreprise Scribd logo
1  sur  34
LA GEOLOCALISATION ET
LES CARTES SOUS
ANDROID
2017-2018
© Imene Sghaier
ISET Nabeul
SEM3
2
 Objectifs spécifiques
 S’initier à la notion de services
 Comprendre les cycles de vie de services locaux et distants
 Se familiariser avec la manipulation des méthodes de services locaux et distants
 Eléments de contenu
• Introduction
• Services de géolocalisation
• GPS et Wifi
• Les services de géolocalisation
• Les permission de géolocalisation dans le manifest
• Les gestionnaires de location
• Les fournisseurs de position
• Déterminer votre position
• Suivre le déplacement
• Le géocodage
• Le géocodage inverse
 Volume Horaire :
 Cours : 3 heures
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
INTRODUCTION
 Google Maps sont utiles que ce soit pour trouver la pharmacie la plus
proche, tracer l'itinéraire entre chez soi et le supermarché ou, encore
mieux, regarder sa propre maison avec les images satellite…
 De nos jours tous les dispositifs intelligents sont équipés de puces
GPS. La géolocalisation est ainsi devenue un élément du quotidien
qu'on retrouve dans énormément d'applications.
 On peut penser aux applications de navigation aidée par GPS, mais
aussi aux applications sportives qui suivent nos efforts et élaborent
des statistiques, ou encore aux applications pour noter les restaurants
et les situer. On trouve ainsi deux API qui sont liées au concept de
localisation :
 Une API qui permet de localiser l'appareil.
 Une API qui permet d'afficher des cartes.
3
Imene Sghaier-Développement Mobile Avancé
4
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Les permission de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
SERVICES DE GÉOLOCALISATION
Les services de la géolocalisation permettent de :
 Déterminer, de contextualiser et de cartographier des
positions géographiques.
 Créer des interfaces graphiques fondées sur des cartes.
 Offrir un accès complet aux cartes avec le contrôle des
paramètres d’affichage et le changement du niveau de
zoom
 Déterminer la position courante de l’appareil et suivre le
déplacement de l’utilisateur.
 Lancer des Alertes en se trouvant à une certaine distance
d’un emplacement donné.
5
Imene Sghaier-Développement Mobile Avancé
SERVICES DE GÉOLOCALISATION
 La géolocalisation sous Android est fournie à l’aide de deux
API :
 L’API de localisation du terminal qui communique avec la puce GPS
(Global Positioning System).
 L’API d’affichage des cartes qui représente graphiquement les
informations issues du service précédent.
6
Imene Sghaier-Développement Mobile Avancé
7
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Les permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
GPS ET WI-FI
 GPS: Global Positionning System
 Plus de 24 satellites tournant autour de la terre et diffusant
leur position et l'heure de diffusion
 Pour géo-localiser un point on utilise soit un GPS soit les
réseaux téléphoniques cellulaires et le Wi-Fi
 Le GPS affaiblit la batterie.
 On peut nous servir des points d'accès WiFi à proximité et
de la distance mesurée avec les antennes relais du réseau
mobile les plus proches (par triangulation): ils utilisent
moins de puissance électrique, fonctionnent à l'intérieur et
à l'extérieur, et sont plus rapides que le GPS.
8
Imene Sghaier-Développement Mobile Avancé
9
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Les permissions de géolocalisation dans le
manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
PERMISSIONS DE GÉOLOCALISATION DANS LE MANIFEST
 Dans le manifest il faut ajouter la permission
ACCESS_FINE_LOCATION pour utiliser la géolocalisation par
GPS
 Et il faut ajouter la permission ACCESS_COARSE_LOCATION
pour une localisation plus imprécise par WiFi et antennes relais.
 Pour utiliser les deux types de localisation, vous pouvez
déclarer uniquement ACCESS_FINE_LOCATION, qui comprend
toujours ACCESS_COARSE_LOCATION :
Il faut bien évidement ajouter
10
Imene Sghaier-Développement Mobile Avancé
<uses-permission android:name=
"android.permission.ACCESS_FINE_LOCATION" />
11
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
GESTIONNAIRE DE LOCATION
 Le premier élément principal est le gestionnaire de
location LocationManager: qui fournit des points
d’entrée («hooks») vers les services de géolocalisation.
 Il permet de :
obtenir votre position courante ;
suivre des déplacements ;
déclencher des alertes de proximité en détectant
les mouvements dans une zone spécifique ;
Trouver les Location Providers disponibles.
12
Imene Sghaier-Développement Mobile Avancé
13
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 GPS
 Réseaux mobiles
 Passifs
 Liste
 Critère de choix
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
FOURNISSEURS DE POSITION
 Le deuxième élément principal est représenté par les
fournisseurs de position : LocationProvider: Chacun
d’eux représente une technologie de localisation de la
position de l’appareil.
 De manière générale, nous distinguons deux types de
fournisseurs naturels :
 Le fournisseur basé sur la technologie GPS, de type
LocationManager.GPS_PROVIDER. C'est le plus précis des
deux, mais c'est également le plus consommateur en terme
de batterie.
 Le fournisseur qui se repère grâce aux antennes des
opérateurs mobiles et aux points d'accès WI-FI, de type
LocationManager.NETWORK_PROVIDER.
14
Imene Sghaier-Développement Mobile Avancé
FOURNISSEURS DE POSITION
LocationProvider est une classe abstraite qui offre
plusieurs moyens de localisation à travers une liste de
fournisseurs.
 Chacun offre diverses caractéristiques en matière de
consommation d’énergie, de coût, de précision et de
capacité à déterminer l’altitude, la vitesse.
 Pour récupérer une instance:
15
Imene Sghaier-Développement Mobile Avancé
instance:
LocationProvider g=locationManager.getProvider(LocationManager.GPS_PROVIDER);
LocationProvider n=locationManager.getProvider(LocationManager.NETWORK_PROVIDER);
LocationProvider p=locationManager.getProvider(LocationManager.PASSIVE_PROVIDER);
FOURNISSEURS DE POSITION: GPS
 La localisation s'effectue par la réception de signaux provenant
de plusieurs satellites qui se trouve en orbite. Le téléphone
mobile équipé d'un GPS permettra de transmettre sa position via
un réseau.
 Précision de quelques mètres.
 Solution coûteuse en énergie (batterie).
 Nécessite la permission ACCESS_FINE_LOCATION.
16
Imene Sghaier-Développement Mobile Avancé
FOURNISSEURS DE POSITION: RÉSEAU MOBILE
 Détermine l'emplacement en fonction de la disponibilité de l’antenne de
téléphonie cellulaire et des points d'accès WiFi.
 Les résultats sont récupérés au moyen d'une recherche des points
d'accès Wifi à proximité et de la distance mesurée avec les antennes du
réseau mobile les plus proches.
 La position est d’une précision à plusieurs centaines de mètres près.
 Solution qui consomme peu d’énergie.
 Nécessite la permission ACCESS_COARSE_LOCATION
17
Imene Sghaier-Développement Mobile Avancé
FOURNISSEURS DE POSITION: PASSIF
 Un fournisseur d’emplacement spécial pour avoir des emplacements
générés par d'autres fournisseurs.
 Nécessite l'autorisation ACCESS_FINE_LOCATION.
18
Imene Sghaier-Développement Mobile Avancé
FOURNISSEURS DE POSITION : LISTE
 Pour récupérer les noms de tous les fournisseurs, il suffit de
faire List<String> getAllProviders() (méthode de LocationManager)
 Le problème de cette méthode est qu'elle va récupérer tous les
fournisseurs qui existent, même si l'application n'a pas le droit de les
utiliser ou qu'ils sont désactivés par l'utilisateur.
 Pour obtenir uniquement la liste des providers disponibles sur
l’appareil, appelez getProviders en utilisant un booléen :
 Pour obtenir un provider à partir de son nom, utiliser la méthode:
19
Imene Sghaier-Développement Mobile Avancé
boolean enabledOnly = true;
List providers = lManager.getProviders(enabledOnly);
LocationProvider lManager.getProvider(String name);
FOURNISSEURS DE POSITION: CRITÈRE DE CHOIX
 Spécifiez les exigences qu’un provider devra respecter et laisserez
Android déterminer la meilleure technologie à utiliser.
 Utilisez la classe Criteria pour indiquer ces exigences en termes de
précision (fine ou approximative), de consommation d’énergie
(faible, moyenne, élevée), de coût et de capacité à renvoyer
l’altitude, la vitesse ...
 Utiliser getBestProvider ou getProviders pour renvoyer le ou les
mieux adaptés.
20
Imene Sghaier-Développement Mobile Avancé
21
Imene Sghaier-Développement Mobile Avancé
Criteria critere = new Criteria();
// Pour indiquer la précision voulue
// On peut mettre ACCURACY_FINE pour une haute précision ou
//ACCURACY_COARSE pour une moins bonne précision
critere.setAccuracy(Criteria.ACCURACY_FINE);
// Est-ce que le fournisseur doit être capable de donner une altitude ?
critere.setAltitudeRequired(true);
// Est-ce que le fournisseur doit être capable de donner une direction ?
critere.setBearingRequired(true);
// Est-ce que le fournisseur peut être payant ?
critere.setCostAllowed(false);
// Pour indiquer la consommation d'énergie demandée
// Criteria.POWER_HIGH pour une haute consommation,
//Criteria.POWER_MEDIUM pour une consommation moyenne et
//Criteria.POWER_LOW pour une basse consommation
critere.setPowerRequirement(Criteria.POWER_HIGH);
// Est-ce que le fournisseur doit être capable de donner une vitesse ?
critere.setSpeedRequired(true);
22
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
DÉTERMINER VOTRE POSITION
 Le but des services de géolocalisation est de déterminer la position de
l’appareil.
 L’accès à ces services est géré par le service système Location
Manager.
 Retrouver la dernière position déterminée par un Location Provider en
utilisant la méthode getLastKnownLocation:
Location loc = lManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
23
Imene Sghaier-Développement Mobile Avancé
DÉTERMINER VOTRE POSITION (EXEMPLE)
24
Imene Sghaier-Développement Mobile Avancé
25
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
SUIVRE LE DÉPLACEMENT
 Utilisez pour cela la méthode requestLocationUpdates de
LocationListener.
 Les Location Listeners contiennent également des hooks
pour les changements dans le statut du provider ou dans
sa disponibilité.
 La méthode requestLocationUpdates accepte un nom
de Location Provider spécifique ou un ensemble de
critères pour déterminer lequel utiliser.
 Pour optimiser l’efficacité et réduire le coût et la
consommation d’énergie, vous pouvez également
spécifier le laps de temps et la distance minimale entre
deux mises à jour. 26
Imene Sghaier-Développement Mobile Avancé
SUIVRE LE DÉPLACEMENT
 Lorsque les laps de temps et la distance minimale seront
dépassés, le Location Listener exécutera l’événement
onLocationChanged
27
Imene Sghaier-Développement Mobile Avancé
28
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
LE GÉOCODAGE
 Le géocodage est le processus qui permet de convertir des
adresses (comme « 8000, Nabeul , tunisia ») en coordonnées
géographiques (comme latitude 37.423021 et longitude -
122.083739), que vous pouvez ensuite utiliser pour placer des
marqueurs sur une carte, ou pour positionner la carte.
 Le géocodage inversé est le processus de conversion de
coordonnées géographiques en adresses lisibles. Le service
de géocodage inversé de Google Maps Geocoding API vous
permet également de retrouver l'adresse correspondant à
un identifiant de lieu donné 29
Imene Sghaier-Développement Mobile Avancé
LE GÉOCODAGE
Geocoder geocoder=new Geocoder(this,Locale.getDefault());
 Le 2eme paramètre représente une région géographique ou
culturelle, ..
 Appeler la méthode getFromLocation qui retourne une liste
d’adresses
List<Address> getFromLocation(double lat, double longi, int maxRes)
 Appeler la méthode getFromLocationName qui retourne une liste
de position GPS
List<Address> getFromLocationName(String locaName, int maxRe)
30
Imene Sghaier-Développement Mobile Avancé
LE GÉOCODAGE
 Obtenir la position GPS la plus probable
31
Imene Sghaier-Développement Mobile Avancé
32
 Introduction
 Services de géolocalisation
 GPS et Wifi
 Permissions de géolocalisation dans le manifest
 Les gestionnaires de location
 Les fournisseurs de position
 Déterminer votre position
 Suivre le déplacement
 Le géocodage
 Le géocodage inverse
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
LE GÉOCODAGE INVERSE
 Obtenir les deux adresses les plus probables pour une
position donnée
33
Imene Sghaier-Développement Mobile Avancé
RÉFÉRENCES
 https://openclassrooms.com/courses/creez-des-
applications-pour-android/la-localisation-et-les-
cartes
 https://developers.google.com/maps/documentation
/android-api/
34

Contenu connexe

Similaire à chapitre 5 Android 2.pptx

Presentation ppt domi_sap_android
Presentation ppt  domi_sap_androidPresentation ppt  domi_sap_android
Presentation ppt domi_sap_android
CNR_Sante
 

Similaire à chapitre 5 Android 2.pptx (20)

Geoweb call-center psheet-fr
Geoweb call-center psheet-frGeoweb call-center psheet-fr
Geoweb call-center psheet-fr
 
Chapitre HTML5 API avancés
Chapitre HTML5 API avancésChapitre HTML5 API avancés
Chapitre HTML5 API avancés
 
Analyse Prédictive et Modélisation
Analyse Prédictive et ModélisationAnalyse Prédictive et Modélisation
Analyse Prédictive et Modélisation
 
Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)
 
Presentation ppt domi_sap_android
Presentation ppt  domi_sap_androidPresentation ppt  domi_sap_android
Presentation ppt domi_sap_android
 
Ibeacon.pptx
Ibeacon.pptxIbeacon.pptx
Ibeacon.pptx
 
Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows ...
Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows ...Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows ...
Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows ...
 
Parkings : gestion et valorisation | Sart-Tilman - 06 décembre 2019
Parkings : gestion et valorisation | Sart-Tilman - 06 décembre 2019Parkings : gestion et valorisation | Sart-Tilman - 06 décembre 2019
Parkings : gestion et valorisation | Sart-Tilman - 06 décembre 2019
 
Meetup_FVGA_Mobile_User Acquisition_Addict_Mobile_Gregoire_Mercier
Meetup_FVGA_Mobile_User Acquisition_Addict_Mobile_Gregoire_MercierMeetup_FVGA_Mobile_User Acquisition_Addict_Mobile_Gregoire_Mercier
Meetup_FVGA_Mobile_User Acquisition_Addict_Mobile_Gregoire_Mercier
 
Ippevent Ogury 2016
Ippevent Ogury 2016Ippevent Ogury 2016
Ippevent Ogury 2016
 
Les beacons au service de la navigation en gare
Les beacons au service de la navigation en gare Les beacons au service de la navigation en gare
Les beacons au service de la navigation en gare
 
Ibeacon, une technologie à fort enjeux business
Ibeacon, une technologie à fort enjeux businessIbeacon, une technologie à fort enjeux business
Ibeacon, une technologie à fort enjeux business
 
WEGOTO : Solution itinéraires piétons adaptés
WEGOTO : Solution itinéraires piétons adaptésWEGOTO : Solution itinéraires piétons adaptés
WEGOTO : Solution itinéraires piétons adaptés
 
Introduction aux géoservices - O. Travaglini
Introduction aux géoservices - O. TravagliniIntroduction aux géoservices - O. Travaglini
Introduction aux géoservices - O. Travaglini
 
Transports intelligents et smart cities : les enjeux de la e-mobilité
Transports intelligents et smart cities : les enjeux de la e-mobilitéTransports intelligents et smart cities : les enjeux de la e-mobilité
Transports intelligents et smart cities : les enjeux de la e-mobilité
 
Initiation à la réalité augmentée sur Windows Phone 7.5 (Mango)
Initiation à la réalité augmentée sur Windows Phone 7.5 (Mango)Initiation à la réalité augmentée sur Windows Phone 7.5 (Mango)
Initiation à la réalité augmentée sur Windows Phone 7.5 (Mango)
 
Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)
 
Mobile Mondays - Alcatel
Mobile Mondays - AlcatelMobile Mondays - Alcatel
Mobile Mondays - Alcatel
 
Présentation solutions nemo (anite) 2014
Présentation solutions nemo (anite) 2014Présentation solutions nemo (anite) 2014
Présentation solutions nemo (anite) 2014
 
Démystifier et optimiser la précision de la cartographie mobile
Démystifier et optimiser la précision de la cartographie mobileDémystifier et optimiser la précision de la cartographie mobile
Démystifier et optimiser la précision de la cartographie mobile
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (20)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chapitre 8 Android 2.pptx
chapitre 8 Android 2.pptxchapitre 8 Android 2.pptx
chapitre 8 Android 2.pptx
 
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 7 Android 2.pptx
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 6 Android 2.pptx
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 3 Android 2.pptx
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Python chapitre 7.pdf
Python chapitre 7.pdfPython chapitre 7.pdf
Python chapitre 7.pdf
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
Python chapitre 5.pdf
Python chapitre 5.pdfPython chapitre 5.pdf
Python chapitre 5.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Python chapitre 3.pdf
Python chapitre 3.pdfPython chapitre 3.pdf
Python chapitre 3.pdf
 
Python chapitre 2.pdf
Python chapitre 2.pdfPython chapitre 2.pdf
Python chapitre 2.pdf
 
Python chapitre 1.pdf
Python chapitre 1.pdfPython chapitre 1.pdf
Python chapitre 1.pdf
 
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
 
Chap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdfChap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdf
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
Introduction à l'IoT.pdf
 
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
Chap 6 POO Java.pptx
 

chapitre 5 Android 2.pptx

  • 1. LA GEOLOCALISATION ET LES CARTES SOUS ANDROID 2017-2018 © Imene Sghaier ISET Nabeul SEM3
  • 2. 2  Objectifs spécifiques  S’initier à la notion de services  Comprendre les cycles de vie de services locaux et distants  Se familiariser avec la manipulation des méthodes de services locaux et distants  Eléments de contenu • Introduction • Services de géolocalisation • GPS et Wifi • Les services de géolocalisation • Les permission de géolocalisation dans le manifest • Les gestionnaires de location • Les fournisseurs de position • Déterminer votre position • Suivre le déplacement • Le géocodage • Le géocodage inverse  Volume Horaire :  Cours : 3 heures OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 3. INTRODUCTION  Google Maps sont utiles que ce soit pour trouver la pharmacie la plus proche, tracer l'itinéraire entre chez soi et le supermarché ou, encore mieux, regarder sa propre maison avec les images satellite…  De nos jours tous les dispositifs intelligents sont équipés de puces GPS. La géolocalisation est ainsi devenue un élément du quotidien qu'on retrouve dans énormément d'applications.  On peut penser aux applications de navigation aidée par GPS, mais aussi aux applications sportives qui suivent nos efforts et élaborent des statistiques, ou encore aux applications pour noter les restaurants et les situer. On trouve ainsi deux API qui sont liées au concept de localisation :  Une API qui permet de localiser l'appareil.  Une API qui permet d'afficher des cartes. 3 Imene Sghaier-Développement Mobile Avancé
  • 4. 4  Introduction  Services de géolocalisation  GPS et Wifi  Les permission de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 5. SERVICES DE GÉOLOCALISATION Les services de la géolocalisation permettent de :  Déterminer, de contextualiser et de cartographier des positions géographiques.  Créer des interfaces graphiques fondées sur des cartes.  Offrir un accès complet aux cartes avec le contrôle des paramètres d’affichage et le changement du niveau de zoom  Déterminer la position courante de l’appareil et suivre le déplacement de l’utilisateur.  Lancer des Alertes en se trouvant à une certaine distance d’un emplacement donné. 5 Imene Sghaier-Développement Mobile Avancé
  • 6. SERVICES DE GÉOLOCALISATION  La géolocalisation sous Android est fournie à l’aide de deux API :  L’API de localisation du terminal qui communique avec la puce GPS (Global Positioning System).  L’API d’affichage des cartes qui représente graphiquement les informations issues du service précédent. 6 Imene Sghaier-Développement Mobile Avancé
  • 7. 7  Introduction  Services de géolocalisation  GPS et Wifi  Les permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 8. GPS ET WI-FI  GPS: Global Positionning System  Plus de 24 satellites tournant autour de la terre et diffusant leur position et l'heure de diffusion  Pour géo-localiser un point on utilise soit un GPS soit les réseaux téléphoniques cellulaires et le Wi-Fi  Le GPS affaiblit la batterie.  On peut nous servir des points d'accès WiFi à proximité et de la distance mesurée avec les antennes relais du réseau mobile les plus proches (par triangulation): ils utilisent moins de puissance électrique, fonctionnent à l'intérieur et à l'extérieur, et sont plus rapides que le GPS. 8 Imene Sghaier-Développement Mobile Avancé
  • 9. 9  Introduction  Services de géolocalisation  GPS et Wifi  Les permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 10. PERMISSIONS DE GÉOLOCALISATION DANS LE MANIFEST  Dans le manifest il faut ajouter la permission ACCESS_FINE_LOCATION pour utiliser la géolocalisation par GPS  Et il faut ajouter la permission ACCESS_COARSE_LOCATION pour une localisation plus imprécise par WiFi et antennes relais.  Pour utiliser les deux types de localisation, vous pouvez déclarer uniquement ACCESS_FINE_LOCATION, qui comprend toujours ACCESS_COARSE_LOCATION : Il faut bien évidement ajouter 10 Imene Sghaier-Développement Mobile Avancé <uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" />
  • 11. 11  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 12. GESTIONNAIRE DE LOCATION  Le premier élément principal est le gestionnaire de location LocationManager: qui fournit des points d’entrée («hooks») vers les services de géolocalisation.  Il permet de : obtenir votre position courante ; suivre des déplacements ; déclencher des alertes de proximité en détectant les mouvements dans une zone spécifique ; Trouver les Location Providers disponibles. 12 Imene Sghaier-Développement Mobile Avancé
  • 13. 13  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  GPS  Réseaux mobiles  Passifs  Liste  Critère de choix  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 14. FOURNISSEURS DE POSITION  Le deuxième élément principal est représenté par les fournisseurs de position : LocationProvider: Chacun d’eux représente une technologie de localisation de la position de l’appareil.  De manière générale, nous distinguons deux types de fournisseurs naturels :  Le fournisseur basé sur la technologie GPS, de type LocationManager.GPS_PROVIDER. C'est le plus précis des deux, mais c'est également le plus consommateur en terme de batterie.  Le fournisseur qui se repère grâce aux antennes des opérateurs mobiles et aux points d'accès WI-FI, de type LocationManager.NETWORK_PROVIDER. 14 Imene Sghaier-Développement Mobile Avancé
  • 15. FOURNISSEURS DE POSITION LocationProvider est une classe abstraite qui offre plusieurs moyens de localisation à travers une liste de fournisseurs.  Chacun offre diverses caractéristiques en matière de consommation d’énergie, de coût, de précision et de capacité à déterminer l’altitude, la vitesse.  Pour récupérer une instance: 15 Imene Sghaier-Développement Mobile Avancé instance: LocationProvider g=locationManager.getProvider(LocationManager.GPS_PROVIDER); LocationProvider n=locationManager.getProvider(LocationManager.NETWORK_PROVIDER); LocationProvider p=locationManager.getProvider(LocationManager.PASSIVE_PROVIDER);
  • 16. FOURNISSEURS DE POSITION: GPS  La localisation s'effectue par la réception de signaux provenant de plusieurs satellites qui se trouve en orbite. Le téléphone mobile équipé d'un GPS permettra de transmettre sa position via un réseau.  Précision de quelques mètres.  Solution coûteuse en énergie (batterie).  Nécessite la permission ACCESS_FINE_LOCATION. 16 Imene Sghaier-Développement Mobile Avancé
  • 17. FOURNISSEURS DE POSITION: RÉSEAU MOBILE  Détermine l'emplacement en fonction de la disponibilité de l’antenne de téléphonie cellulaire et des points d'accès WiFi.  Les résultats sont récupérés au moyen d'une recherche des points d'accès Wifi à proximité et de la distance mesurée avec les antennes du réseau mobile les plus proches.  La position est d’une précision à plusieurs centaines de mètres près.  Solution qui consomme peu d’énergie.  Nécessite la permission ACCESS_COARSE_LOCATION 17 Imene Sghaier-Développement Mobile Avancé
  • 18. FOURNISSEURS DE POSITION: PASSIF  Un fournisseur d’emplacement spécial pour avoir des emplacements générés par d'autres fournisseurs.  Nécessite l'autorisation ACCESS_FINE_LOCATION. 18 Imene Sghaier-Développement Mobile Avancé
  • 19. FOURNISSEURS DE POSITION : LISTE  Pour récupérer les noms de tous les fournisseurs, il suffit de faire List<String> getAllProviders() (méthode de LocationManager)  Le problème de cette méthode est qu'elle va récupérer tous les fournisseurs qui existent, même si l'application n'a pas le droit de les utiliser ou qu'ils sont désactivés par l'utilisateur.  Pour obtenir uniquement la liste des providers disponibles sur l’appareil, appelez getProviders en utilisant un booléen :  Pour obtenir un provider à partir de son nom, utiliser la méthode: 19 Imene Sghaier-Développement Mobile Avancé boolean enabledOnly = true; List providers = lManager.getProviders(enabledOnly); LocationProvider lManager.getProvider(String name);
  • 20. FOURNISSEURS DE POSITION: CRITÈRE DE CHOIX  Spécifiez les exigences qu’un provider devra respecter et laisserez Android déterminer la meilleure technologie à utiliser.  Utilisez la classe Criteria pour indiquer ces exigences en termes de précision (fine ou approximative), de consommation d’énergie (faible, moyenne, élevée), de coût et de capacité à renvoyer l’altitude, la vitesse ...  Utiliser getBestProvider ou getProviders pour renvoyer le ou les mieux adaptés. 20 Imene Sghaier-Développement Mobile Avancé
  • 21. 21 Imene Sghaier-Développement Mobile Avancé Criteria critere = new Criteria(); // Pour indiquer la précision voulue // On peut mettre ACCURACY_FINE pour une haute précision ou //ACCURACY_COARSE pour une moins bonne précision critere.setAccuracy(Criteria.ACCURACY_FINE); // Est-ce que le fournisseur doit être capable de donner une altitude ? critere.setAltitudeRequired(true); // Est-ce que le fournisseur doit être capable de donner une direction ? critere.setBearingRequired(true); // Est-ce que le fournisseur peut être payant ? critere.setCostAllowed(false); // Pour indiquer la consommation d'énergie demandée // Criteria.POWER_HIGH pour une haute consommation, //Criteria.POWER_MEDIUM pour une consommation moyenne et //Criteria.POWER_LOW pour une basse consommation critere.setPowerRequirement(Criteria.POWER_HIGH); // Est-ce que le fournisseur doit être capable de donner une vitesse ? critere.setSpeedRequired(true);
  • 22. 22  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 23. DÉTERMINER VOTRE POSITION  Le but des services de géolocalisation est de déterminer la position de l’appareil.  L’accès à ces services est géré par le service système Location Manager.  Retrouver la dernière position déterminée par un Location Provider en utilisant la méthode getLastKnownLocation: Location loc = lManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 23 Imene Sghaier-Développement Mobile Avancé
  • 24. DÉTERMINER VOTRE POSITION (EXEMPLE) 24 Imene Sghaier-Développement Mobile Avancé
  • 25. 25  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 26. SUIVRE LE DÉPLACEMENT  Utilisez pour cela la méthode requestLocationUpdates de LocationListener.  Les Location Listeners contiennent également des hooks pour les changements dans le statut du provider ou dans sa disponibilité.  La méthode requestLocationUpdates accepte un nom de Location Provider spécifique ou un ensemble de critères pour déterminer lequel utiliser.  Pour optimiser l’efficacité et réduire le coût et la consommation d’énergie, vous pouvez également spécifier le laps de temps et la distance minimale entre deux mises à jour. 26 Imene Sghaier-Développement Mobile Avancé
  • 27. SUIVRE LE DÉPLACEMENT  Lorsque les laps de temps et la distance minimale seront dépassés, le Location Listener exécutera l’événement onLocationChanged 27 Imene Sghaier-Développement Mobile Avancé
  • 28. 28  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 29. LE GÉOCODAGE  Le géocodage est le processus qui permet de convertir des adresses (comme « 8000, Nabeul , tunisia ») en coordonnées géographiques (comme latitude 37.423021 et longitude - 122.083739), que vous pouvez ensuite utiliser pour placer des marqueurs sur une carte, ou pour positionner la carte.  Le géocodage inversé est le processus de conversion de coordonnées géographiques en adresses lisibles. Le service de géocodage inversé de Google Maps Geocoding API vous permet également de retrouver l'adresse correspondant à un identifiant de lieu donné 29 Imene Sghaier-Développement Mobile Avancé
  • 30. LE GÉOCODAGE Geocoder geocoder=new Geocoder(this,Locale.getDefault());  Le 2eme paramètre représente une région géographique ou culturelle, ..  Appeler la méthode getFromLocation qui retourne une liste d’adresses List<Address> getFromLocation(double lat, double longi, int maxRes)  Appeler la méthode getFromLocationName qui retourne une liste de position GPS List<Address> getFromLocationName(String locaName, int maxRe) 30 Imene Sghaier-Développement Mobile Avancé
  • 31. LE GÉOCODAGE  Obtenir la position GPS la plus probable 31 Imene Sghaier-Développement Mobile Avancé
  • 32. 32  Introduction  Services de géolocalisation  GPS et Wifi  Permissions de géolocalisation dans le manifest  Les gestionnaires de location  Les fournisseurs de position  Déterminer votre position  Suivre le déplacement  Le géocodage  Le géocodage inverse OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 33. LE GÉOCODAGE INVERSE  Obtenir les deux adresses les plus probables pour une position donnée 33 Imene Sghaier-Développement Mobile Avancé