Le but de ce tutoriel est d’expliquer comment indiquer la position d’un utilisateur sur une Google Map.
Ce tutoriel vient en complément des deux précédents :

Récupération du projet

Pour débuter, nous allons récupérer le projet créé lors du tutoriel Géolocalisation sous Android. Puis, nous importerons le projet dans eclipse.
Nous commencerons par simplement indiquer la position d’un utilisateur sur la map.

Indiquer la position

Pour faciliter cette étape, une classe existe dans l’API Google Map d’Android, il s’agit de MyLocationOverlay

Cette classe est très facile à utiliser, il suffit de :

  • Créer votre variable
  • private MyLocationOverlay myLocation = null;
    
  • Instancier la classe
  • myLocation = new MyLocationOverlay(getApplicationContext(), mapView);
    
  • Ajouter ma location dans la map
  • mapView.getOverlays().add(myLocation);
    
  • Activer l’affichage de la localisation
  • myLocation.enableMyLocation();
    
  • Si vous souhaitez ne plus afficher la position, il suffit d’utiliser
myLocation.disableMyLocation()

Ce qui donnera :

Afficher une boussole

La classe MyLocationOverlay possède plusieurs autres fonctionnalités, dont la possibilité d’afficher une boussole, pour cela il suffit juste d’appeler les méthodes suivantes :

  • Affichage d’une boussole
  • myLocation.enableCompass();
    
  • Désactiver l’affichage de la boussole
myLocation.disableCompass();

Ce qui donnera

Réagir au positionnement de l’utilisateur

Si vous souhaitez exécuter une action particulière dès que le positionnement de l’utilisateur est définie, par exemple centrer ou zoomer la map. Une méthode est disponible dans la classe MyLocationOverlay, il s’agit de runOnFirstFix.
Par exemple, si on souhaite centrer la carte et zoomer, il suffit de rajouter le code suivant :

myLocation = new MyLocationOverlay(getApplicationContext(), mapView);
myLocation.runOnFirstFix(new Runnable() {
    public void run() {
	mc.animateTo(myLocation.getMyLocation());
	mc.setZoom(17);
    }
});

Conclusion

Ce tutoriel se fini ici, en espérant qu’il vous a aidé à comprendre comment indiquer la position d’un utilisateur sur une google map. Voici le code résultant de ce tutoriel

Categories: Tutoriels

50 Responses so far.


  1. Attar ousama dit :

    salut nazim
    je suis un jeune développeur android et j ai eu le plaisir de suivre les tuto que tu présente toujours ;) vraiment je te remercie

    j ai un petit probleme au niveau de l affichage de la carte pour le tuto de la géolocalisation
    j ai télécharger le projet , j ai changer le key map par celui fournie par google , l application s exécute sur l émulateur , ” je suis connecter sur net ” mais la carte ne s affiche plus , juste un fond avec des carreaux et une point .
    j espere que tu m aide , car c est la partie importante de mon projet .
    j ai essayer d autre tuto mais j ai toujours le même problème .
    merci d avance :) )

    • Attar ousama dit :

      bon j ai trouver la solution :)
      pour ceux qui utilise jdk 1.7
      il faut rajouter -v a la fin de la commande lors de la generation du md5

      C:\Users\USER>keytool -list -alias androiddebugkey -keystore C:\Users\USER\.android\debug.keystore -storepass android -keypass android -v

    • salma dit :

      salut Attar ousama,

      svp j’ai le même problème que toi, si tu as trouvé une solution veuillez la déposer sur ce forum

  2. Abdou dit :

    Salut Mr Nazim , d’abord je vous fellicite pour vos excellentes tutos , Autrement est ce que vous pouvez m’aider a installer la market android sur mon emulateur et merci d’avance

  3. rania dit :

    bnj Nazim
    je te remercie pour tous les tuto qui m’ont beaucoup aidé, sauf que j’ai un petit souci avec celui là;
    le problème c’est que j’obtient pas ma position sur la map et il affiche “your current location is temporarily unavailable”
    merci.

  4. mehdi dit :

    Salut,

    J’ai reussi tes tutos mais j’ai une question.je suis en cours de realiser sur le map avec une boussole pointant vers maque(lieu de priere de moselmun(kebla)) mais je n ai pas trouve une solution slv aide moi pour creer cette boussoole sur ce map ponitant vers maka (saudi arabi) et merci

  5. jivinya dit :

    bsr Nazim
    je te remercie pour tous les tuto qui m’ont beaucoup aidé, sauf que j’ai un petit souci avec celui là
    le problème c’est que j’obtient pas ma position sur la map et quand j’ajoute cette ligne “lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0,this);”
    la map ne s’affiche même pas pourrais-tu m’aidér?
    merci d’avance

Leave a Reply


Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.