Google maps, marqueur et intents avec Android

Quand on veut lancer une application de "cartographie" (Google maps par défaut) depuis notre application, il faut alors créer un Intent de la forme :

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("geo:44.8373682,-0.576144")));

Or en passant directement les coordonnées géographiques, Google Maps se contente de centrer la carte sur la l'endroit voulu, alors qu' en passant une adresse ("geo:0,0?q=mon+adresse") un marqueur apparaît sur la carte. Voyons comment faire pour afficher ce marqueur en passant la latitude et la longitude.

On va utiliser une petite astuce : en passant les coordonnées directement dans la requête, Google Maps affiche bien un marqueur :

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=44.8373682,-0.576144")));
On peut même aller plus loin en ajoutant un titre au marqueur :
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=44.8373682,-0.576144 (" + titre + ")")));
Marqueur et intent

Marqueur et intent

Attention tout de même, cette astuce se base sur les fonctionnalités de Google Maps : si l'utilisateur possède une autre application ou voir une version de Google Maps qui ne supporte pas ce type de requêtes (on sait jamais), cela ne fonctionnera pas correctement.

Sympa donc, mais à utiliser avec précaution.

Tags: , , , , , , , ,

Jeudi 24 février 2011 Android, Petites astuces, Programmation

Pas encore de commentaire.

Laisser un commentaire

Recherche