Position de l’utilisateur sur une Google Map sous Android

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

54 commentaires


  1. 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 :))

    Répondre

    1. 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

      Répondre

    2. 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

      Répondre

      1. Utilisez le bon API Google c’est du Android 1.5
        et verifiez bien le md5 .

        Répondre

  2. 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

    Répondre

  3. 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.

    Répondre

  4. 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

    Répondre

  5. 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

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *