23/05/2024
Localisation et
Cartes
DÉVELOPPEMENT POUR MOBILES
(ANDROID)
Chapitre 6 :
Cartes et localisation PRÉSENTATION
Dr. KHALIFI Hamid
[email protected] DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation et
Cartes Cartes
PRÉSENTATION QUELQUES DÉFINITIONS
Les applications basés sur la localisation et la La latitude : est une valeur ang ulaire, expression
du positionnement nord ou sud d'un point sur Terre.
cartographie attirent énorm ément les utilisateurs
La longitude : est une valeur ang ulaire, expression
d'appareils mobiles.
du positionnement est ou ouest d'un point sur Terre.
Avec les progrès de la miniaturisation, la plupart
Accuracy : La précision, fournir une lectu re ou une
des terminaux sont équipés de puces GPS. mesure correcte.
La géolocalisation est ainsi devenue un élém ent
qu'on retrouve dans énormément d'applications.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation et
Cartes Cartes
GPS - GLOBAL POSITIONING SYSTEM GPS - GLOBAL POSITIONING SYSTEM
Le GPS repose sur la mesure de la distanc e d'un
C ’est un Système de géo localisation par satellite. récepteur par rapport à plusieurs satellites.
Un total de 24 satellites autour du globe. Chaque s atellite émet un signal, capté sur Terre par
Il permet de déterminer les coordonnées le réc epteur, afin de mesurer la distanc e séparant
géographiques de n'importe quel point situé à la l'émetteur du récepteur grâce au temps de parcours.
surface du globe.
Le GPS s'utilise en association avec une carte pour
se repérer et se positionner.
Sa précision peut atteindre 1 mètre.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
1
23/05/2024
Localisation et Localisation et Localisation
Cartes Cartes
On sélectionne ainsi deux API qui sont liées au
concept de localisation :
Une API qui permet de localiser l'appareil.
LOCALISATION
Une API qui permet d'afficher des cartes.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation Localisation et Localisation
Cartes Cartes
Une fo is que votre application a un gestionnaire COORDONNÉES
d'instance de LocationManager, il sera capable de faire ces A partir d'un fournisseur de position actif, il est possible
trois choses : d'interroger la dernière localisation en utilisant l'objet
faire une requête de la liste de tout les Fournisseurs Location.
de lo calisatio n connus du LocationManager pour
récupérer la dernière localisation;
activer ou désactiver les mises à jo ur périodiques
concernant la position actuelle à partir d'un Les providers proposés :
LocationProvider (Fournisseur de localisation/position) ; L ocat i onM anage r. N ETWOR K_PR OVI DER
L ocat i onM anage r.G PS_PR OVI DER
activer ou désactiver le démarrage d'une I nte ntion
(Inte nt ) prédéfinie si l'appareil arrive à une certaine Les permissio ns associées pour la localisation sont:
distance d'une longitude/latitude donnée . androi d . pe rmi ssi on . ACCESS_FI N E_LOCATI ON vi a l e GPS
androi d . pe rmi ssi on . ACCESS_COAR SE_LOCATI ON vi a l e réseau
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation Localisation et Localisation
Cartes Cartes
COORDONNÉES COORDONNÉES
Il est possible de réagir à un changement de Lors du développement dans l'émulateur, il existe
position en créant un écouteur qui sera appelé à un moyens de donner une fausse position :
intervalles réguliers et pour une distante minimum Eclipse :
donnée: le temps minimum la distance minimale A c ti ver l a p ersp ec ti ve d d m s;
entre les notifications en mètres pour les
en millisecondes notifications
A p rès avoi r sél ec ti on n é l 'ém u l ateu r (d ém ar r é),
c onf i gu rer l es c oord on n ées GPS f i c ti ves d an s l a p ar ti e
"Em u l ator Con trol » et d e c l i q u er su r "Sen d « .
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
2
23/05/2024
Localisation et Localisation Localisation et Localisation
Cartes Cartes
COORDONNÉES COORDONNÉES
Android Studio :
Tout d'abord, lancez votre
émulateur Android et cliquez
sur le bouton de menu :
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation Localisation et Localisation
Cartes Cartes
COORDONNÉES COORDONNÉES
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Localisation et Cartes
Cartes Cartes
Android permet d'intégrer Google Maps dans les
applications en offrant plusieurs fonctionnalités,
à savoir :
Afficher n'importe quel emplac ement sur une
CARTES carte.
Afficher l'emplacement actuel de l'appareil.
Afficher différents itinéraires sur une carte.
Personnaliser une carte en fonction de besoins...
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
3
23/05/2024
Localisation et Cartes Localisation et Configuration
Cartes Cartes
On utilise donc les Google Maps Android API. Pour exécuter une application qui
utilise les Maps Google, vous devez la
Cette API permet de manipuler des cartes
déployer sur un appareil Android, ou
terrestres. sur un émulateur Android qui
Ces classes se trouvent dans le package exécute Android 4.0 (ou une version
com.google.android.gms.maps ultérieure) et inclut les API Google.
Si vous choisissez d'utiliser un
Cette API gère l’affichage, les entrées clavier, le
émulateur Android, assurez-vous de
zoom, le toucher sur une carte affichée. sélectionner un appareil accompagné
On peut dessiner, ajouter des images, des de l'icône Play Icône Google Play.
marqueurs et des infos sur la carte. dans la colonne Play Store.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Configuration Localisation et Configuration
Cartes Cartes
L'API Google Maps Android
est distribuée dans le cadre du
SDK des services Google Play.
Vous pouvez télécharger le
SDK des services Google Play
via le Gestionnaire SDK
Android.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Cartes Localisation et Cartes
Cartes Cartes
MapsActivity MapsActivity
La création d'une activity GoogleMap a été simplifié
Une fois l'activity créée, et
dans Android.
l'application lancée.
Dans les logs de l'application,
GoogleMap indiquera une erreur :
➔ Authenticatio n failed on the
ser ver.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
4
23/05/2024
Localisation et Clé API Google Maps Localisation et Clé API Google Maps
Cartes Cartes
Pour obtenir la clé, il est possible aussi de cliquer sur
Pour afficher une carte Google Maps dans Android,
le lien indiqué dans le fichier google_maps_api.xml
il faut avoir une clé de l'API.
(ancienne version)
Pour obtenir cette clé, il faut se rendre sur le site :
Et mettre la clé dans ce fichier xml comme illustré ci-dessous :
developers.google.com
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Affichage de la carte Localisation et Affichage de la carte
Cartes Cartes
Pour obtenir la clé, il est possible aussi de cliquer sur
le lien indiqué dans le fichier AndroidManifest.xml La classe MapsActivity est prête à ê tre utilisée avec un
code minimal.
(nouvelle version)
Au niveau de la méthode onCreate() o n fait relier le
Et mettre la clé dans ce fichier xml comme illustré ci-dessous :
code java avec le fragment qui contient no te carte.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Affichage de la carte Localisation et Affichage de la carte
Cartes Cartes
Pour faire l'affichage de la carte, c'est au niveau de la GoogleMap : point d'entrée pour gérer les données
méthode onMapReady qu'on instancie l'objet GoogleMap et les éléments géographiques.
puis on crée une instance de l'objet LatLng , ensuite on
Un objet GoogleMap exécute automatiquement les
ajoute un marque ur pour indique r la po sitio n (X,Y) en
opérations suivantes :
appelant la méthode addMarker ().
Connexion au service Google Maps.
Enfin o n focalise la caméra vers ladite position par le
biais de la méthode moveCamera (). Téléchargement des tuiles de carte.
Affichage des tuiles sur l'écran de l'appareil.
Affichage de diverses commandes comme le
panoramique et le zoom.
Répons e aux gestes de panoramique et de zoom
(déplacement de la carte et zoom avant ou arrière).
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
5
23/05/2024
Localisation et Affichage de la carte Localisation et Personnalisation de la carte
Cartes Cartes
Ajouter un marqueur
Il est possible de plac er un marqueur avec du texte
Après avoir exécuter le code, une dessus pour afficher une position.
carte s'affiche indiquant avec un Cela se fait via la méthode addMarker() et les
marqueur l'emplacement et la propriétés title() et snippet().
position indiquée comme valeur de
l'objet LatLng.
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Personnalisation de la carte Localisation et Personnalisation de la carte
Cartes Cartes
Personnaliser le marqueur Zoomer la Caméra
Pour faire un Zoom caméra à une certaine échelle :
Plusieurs propriétés permettent de personnaliser le
marqueur :
icon(), rotation()...
Approximativement ci-après les niveaux de détail
que vous pouvez voir à chaque niveau de zoom :
1 : M on d e 1 0 : Vi l l es
5 : Con ti n en ts 1 5 : R u es
7 : Pays 2 0 : B âti m en ts
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
Localisation et Personnalisation de la carte Localisation et Personnalisation de la carte
Cartes Cartes
Activer/Désactiver le Zoom Dessiner sur la carte
Pour activer ou désactiver les gestes d e zoom dans Il est possible de dessiner des formes géométriques
la carte il faut appeler la méthode : sur la carte selon des coordonnées géographiques :
setZoom ControlsEnabled (boolean) Des cercles : addCircle()
Des polygones : addPolygone()
Des polylines (polygone vide) : addPolyline()
Des images : addGroundOverlay ()
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID
6
23/05/2024
Localisation et Personnalisation de la carte Localisation et Personnalisation de la carte
Cartes Cartes
Modification du type de carte Ajouter un événement
Il existe quatre types de cartes différents et chacun
donne une vue différente de la carte. Pour mettre en plac e un événem ent réagissant aux
Ces types sont : Normal, Hybride, Satellite et Terrain. clics sur la carte, il faut utiliser l'interfac e
OnMapClickListener.
L'exemple ci-après ajoute autant de marqueurs que
de clics :
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID