La géolocalisation sur
mobile
COURS N° 8 APPLICATIONS MOBILES
U STO - MB - L 3
HT T P S:// [Link]/V IEW/ USTOAPM2 018/
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 1
Plan du cours
• Définition
• Les moyens de géolocalisation
• Les Systèmes d’Information Géographiques
• Les domaines de la géolocalisation
• Les inconvénients
• La géolocalisation sous Android
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 2
C’est quoi??
La géolocalisation est un procédé permettant de positionner une
entité sur une carte à l'aide de ses coordonnées géographiques.
Pour un mobiles: c’est le processus de
recherche qui permet de déterminer et
fournir l’emplacement exact d’un appareil
mobile.
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 3
Comment? -Positionnement par satellites
Un système de positionnement par satellites fournit sur un récepteur les coordonnées
géographiques (longitude, latitude), la vitesse de déplacement et l'heure à son utilisateur.
En mesurant la distance à un instant donné entre le récepteur et un satellite artificiel dont la
position dans l'espace est connue avec précision.
En combinant la mesure simultanée de la distance de
plusieurs satellites, le récepteur est capable de fournir
la position et l'altitude avec une précision de l'ordre
d'une dizaine de mètres.
GPS: Par les États-Unis (opérationnel depuis 1995)
GLONASS: Par la Russie (opérationnel depuis 2010)
GALILEO: Par l'Europe (opérationnel depuis 2016)
COMPASS/BEIDO: Par la Chine
AGPS: Assisted GPS
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 4
Comment? – d’autres moyens
GSM
Wi-Fi
L’adresse IP sur internet
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 5
Les Systèmes d’Information Géographiques - SIG
Système informatique permettant, à partir de diverses sources, de
rassembler et d'organiser, de gérer, d'analyser et de combiner,
d'élaborer et de présenter des informations localisées
géographiquement, contribuant notamment à la gestion de l'espace.
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 6
Les Systèmes d’Information Géographiques - SIG
Base de données géographique = ensemble de couches superposables
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 7
Les Systèmes d’Information Géographiques - SIG
Carte satellite
Carte vectorielle- Relief
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 8
A quoi ça sert??
Se faire guider et trouver son chemin.
Google Maps, [Link] …
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 9
A quoi ça sert??
Localiser des services à proximité.
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 10
A quoi ça sert??
Réglage de l’heure et fuseau horaire,
les informations et la météos …
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 11
A quoi ça sert??
Tracking d’un mobile :
• Surveillance parentale
• Mobile volé ou perdu
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 12
A quoi ça sert??
En sport:
Ex: mesure de la distance parcouru
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 13
A quoi ça sert??
Les jeux
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 14
Les inconvénients
Consommation de l’énergie Atteinte à la vie privée
Les permissions
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 15
La géolocalisation sous Android
Comment réaliser des applications de géolocalisation sous Android??
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 16
La géolocalisation sous Android – Google Maps Activity
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 17
La géolocalisation sous Android – Google Maps Activity
Obtenir une clé d'API Google Maps
Votre application doit disposer d'une clé d'API pour pouvoir accéder aux serveurs Google Maps. Le type de clé dont
vous avez besoin est une clé d'API avec une restriction pour les applications Android. Cette clé est gratuite. Vous
pouvez l'utiliser avec n'importe quelle application qui appelle Google Maps Android API ; elle prend en charge un
nombre illimité d'utilisateurs.
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 18
La géolocalisation sous Android – Google Maps Activity
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 19
La géolocalisation sous Android – Ma position
Ajouter la permission de localisation dans le fichier Manifest
<uses-permission android:name="[Link].ACCESS_FINE_LOCATION" />
Pour Android 6.0 + demander à l’utilisateur d’autoriser l’application à utiliser le GPS
if ([Link](this, [Link].ACCESS_FINE_LOCATION)
!=PackageManager.PERMISSION_GRANTED)
[Link](this, new String[] {[Link].ACCESS_FINE_LOCATION},10);
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 20
La géolocalisation sous Android – Ma position
Utiliser le gestionnaire de localisation pour trouver ma position:
//Initialiser le gestionnaire de localisation
LocationManager locationManager;
locationManager = (LocationManager) [Link](LOCATION_SERVICE);
//Estimer ma position du GPS
Location maposition;
maposition = [Link](LocationManager.GPS_PROVIDER);
Double longitude=[Link]();
Double latitude=[Link]();
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 21
La géolocalisation sous Android – caméra
On peut déplacer la caméra et zoomer sur un endroit précis
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 22
La géolocalisation sous Android – caméra
//Récupérer la référence de la Map dans onMapReady
@Override
public void onMapReady(GoogleMap googleMap){
mMap = googleMap;
…
//Convertir la position en Latitude/Longitude
LatLng position = new LatLng(latitude, longitude);
//Déplacer la caméra et spécifier un Zoom de x 15
[Link]([Link](position,15.0f));
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 23
La géolocalisation sous Android – les marqueurs
Il est possible de placer des marqueurs sur la Map
//Spécifier la position
double latitude=35.7050;
double longitude=-0.5790;
LatLng position = new LatLng(latitude, longitude);
//Créer le marqueur
MarkerOptions Mark=new MarkerOptions();
[Link](position);
[Link]("Département informatique");
//L’ajouter à la map
[Link](Mark);
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 24
La géolocalisation sous Android – les marqueurs
Il est possible de gérer les cliques sur un marqueur
[Link](new [Link]() {
@Override
public boolean onMarkerClick(Marker marker) {
[Link]([Link],
"Vous avez sélectioné: "+[Link](),
Toast.LENGTH_LONG).show();
return false;
}
});
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 25
La géolocalisation sous Android – calcule de distance
Comment calculer la distance entre 2 positions
connues en longitude et en latitude?
C’est quoi la longitude et la latitude?
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 26
La géolocalisation sous Android – calcule de distance
Attention ce calcule est une distance en ligne droite!
//Point de départ
Location startPoint=new Location("location A");
[Link](17.372102);
[Link](78.484196);
//Point d’arrivé
Location endPoint=new Location("location B");
[Link](17.375775);
[Link](78.469218);
//Calcule de la distance en mètre
double distance=[Link](endPoint);
//Ou bien
float[] distance=new float[1];
[Link](17.372102,78.484196,17.375775,78.469218,distance);
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 27
La géolocalisation sous Android – Tracking en temps réel
Utilisez Google Play Services location API
//Votre activité doit Implémenter les 2 interfaces
implements ConnectionCallbacks, OnConnectionFailedListener
//Avec les méthodes
@Override
public void onConnected(@Nullable Bundle bundle) { }
@Override
public void onConnectionSuspended(int i) { }
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { }
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 28
La géolocalisation sous Android – Tracking en temps réel
Instancier un objet Client API Google
GoogleApiClient mGoogleApiClient=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
…
if (mGoogleApiClient == null) {
mGoogleApiClient = new [Link](this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi([Link])
.build();
}
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 29
La géolocalisation sous Android – Tracking en temps réel
Utilisez les 2 fonctions suivantes pour lancer ou arrêter le tracking
[Link](); //Lancer le tracking
[Link](); //Arrêter le tracking
Utiliser le listener onConnected pour récupérer le résultat du tracking en temps réel
@Override
public void onConnected(@Nullable Bundle bundle) {
Location malocation = [Link](mGoogleApiClient);
if (malocation != null) {
[Link]([Link]([Link]()));
[Link]([Link]([Link]()));
}
}
//N’oubliez pas la permission dans le fichier Manifest
<uses-permission android:name="[Link].ACCESS_FINE_LOCATION" />
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 30
Conclusion
La localisation est une caractéristique cruciale pour tout smartphone.
Le service de localisation sur les mobiles nous permet de développer des
applications de géolocalisation de plus en plus évoluées.
BENDAHMANE ABDERRAHMANE - EMAIL: USTOAPM@[Link] 31