Anda di halaman 1dari 6

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

Accueil Tous les tutos Contact propos

Ajouter des marqueurs dans une Google Map sous Android


Publi par Steeve Guillaume Publi le fv - 29 - 2012

Articles rcents
Introduction au NDK sous Android Introduction Google Map V2 Les notifications sous Android Jelly Bean Multi-touch et fragments: Geste de rotation ActionBar sous Android (Partie 2) ActionBar sous Android (Partie 1)

1
Tweeter

20
Like

Prsentation de mon nouveau projet Un livre Crer un Live Wallpaper sous Android ViewPager sous Android : Comment slider dun fragment un autre
1

Sharebar
Tweeter Like 20

Les AsyncTask Importer un certificat SSL auto-sign avec Bouncy Castle Ajouter des marqueurs dans une Google Map sous Android La gestion des strings sous Android Paris Android User Group Detection de visages dans une image sous Android Ice Cream Sandwich Les Parcelables sous Android ContentProvider sous Android Utilisation du Bluetooth dans une application Android Linux Mag Hors srie Spcial JAVA Parsing JSON avec Jackson sous Android Introduction aux styles sous Android Gestion de la rotation sous Android Position de lutilisateur sur une Google Map sous Android

Nous allons voir dans ce tutoriel comment ajouter des points dintrts votre Google Map. Avant tout vous devez dj avoir implmenter une map au sein de votre application. Vous pouvez reprendre le projet HelloGoogleMap vue dans le tutoriel Intgration dune Google Map Sous Android.

ItimizedOverlay
Vous allez tout dabord crer une classe qui implmente la classe ItimizedOverlay, elle reprsenteras votre liste de point dintrt.

TextWatcher sous Android Introduction GreenDroid Les Webservices REST sous Android avec App Engine, Restlet et Objectify BroadCast Receiver sous Android Utilisation du clavier sous Android Les services sous Android Comprendre le RelativeLayout sous Android Comprendre le LinearLayout sous Android Golocalisation sous Android Intgration dune Google Map sous Android Changement de vues sous android

1 sur 6

16/04/2013 17:03

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

Introduction aux vues sous Android Introduction la programmation sous Android Bienvenue dans mon Blog ddi au dveloppement Android

Vous devez spcifier : Le nom de votre classe. Driver votre classe de com.google.android.maps.ItemizedOverlay (Champ superclass). Cocher la case Constructors from superclass. Enfin cliquer sur finish. Dans notre classe nous allons crer une liste qui va nous permettre de stocker nos points dintrts :

private ArrayList<OverlayItem>

arrayListOverlayItem = new ArrayList<OverlayItem>();

Ce qui va nous donner la classe suivante :

package com.tuto.googlemap;

import java.util.ArrayList;

import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.OverlayItem;

public class ListItimizedOverlay extends ItemizedOverlay<OverlayItem> {

private ArrayList<OverlayItem> arrayListOverlayItem = new ArrayList<OverlayItem>();

public ListItimizedOverlay(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); }

@Override protected OverlayItem createItem(int i) { return arrayListOverlayItem.get(i); }

@Override public int size()

2 sur 6

16/04/2013 17:03

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

{ return arrayListOverlayItem.size(); }

public void addOverlayItem(OverlayItem overlay) { arrayListOverlayItem.add(overlay); populate(); }

Passons quelques explications : Tout dabord votre constructeur reoit en paramtre un Drawable : defaultMarker. Lors de la construction de votre objet ListItimizedOverlay, vous pouvez spcifier limage qui reprsentera votre marqueur sur la carte. Toujours en ce qui concerne le constructeur, on remarque aussi lappel la mthode boundCenterBottom(defaultMarker) qui englobe le defaultMarker. Cette fonction permet de centrer limage de votre marqueur juste au dessus du point cible. On ajoute une mthode addOverlayItem qui prends en paramtre des OverlayItem, ce qui nous permettras une fois lobjet crer de rajouter des points dans notre liste : arrayListOverlayItem.add(overlay). La fonction populate() ajoute les points sur la carte. Elle soccupe de prparer les lments dessiner en appelant entre autre votre mthode creatItem. Do la ncessiter de surcharger les mthodes createItem(int i) qui retourne un lment prsent dans notre liste de point. Ma mthode size() indique le nombre dlment prsent dans notre liste.

Ajout du marqueur
Reprenons lactivit qui contient votre Google Map. Nous allons crer un objet de type ListItimizedOverlay qui va contenir nos points. Il va falloir choisir une image Drawable pour lutiliser en paramtres la cration de notre instance. Pour finir ajouter des points de type GeoPoint avec les coordonnes cibles. Voici le code rajout la fin de votre activit :

Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher); LisItimizedOverlay itemizedoverlay = new LisItimizedOverlay(drawable);

GeoPoint geoPoint = new GeoPoint(-17595983, -149487411); OverlayItem overlayitem = new OverlayItem(geoPoint, "Hello from", "Tahiti"); itemizedoverlay.addOverlayItem(overlayitem);

Lorsque vous voulez ajouter un point votre liste doverlay, il faut dabord crer les points laide de la classe OverlayItem avec comme paramtres les coordonnes du point, un titre et un snippet. Si vous souhaitez ajouter un autre point, il faut utiliser les lignes suivantes :

GeoPoint geoPoint2 = new GeoPoint(-17528941, -149826891); OverlayItem overlayitem2 = new OverlayItem(geoPoint2, "Hello from", "Moorea"); itemizedoverlay.addOverlayItem(overlayitem2);

Une fois la liste de point cre, ajoutez les votre carte. Pour cela, il faut rcuprer la liste des points dj existants (mthode getOverlays()) et y ajouter notre liste .

List<Overlay> mapOverlays = mapView.getOverlays();

3 sur 6

16/04/2013 17:03

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

mapOverlays.add(itemizedoverlay);

Vous pouvez ds a prsent compiler votre projet et y ajouter autant de points que vous souhaitez.

Gestion du clique sur un marqueur


Si vous souhaitez ajouter une action au moment du clique sur un marqueur, une modification de la classe ListItimizedOverlay est ncessaire :

@Override protected boolean onTap(int index) { OverlayItem item = arrayListOverlayItem.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; }

Nous allons simplement crer un message dalerte affichant les informations sur le point slectionn. Vous pouvez remarquer que lutilisation dun AlertDialog ncessite un contexte. Pour cela, nous allons surcharger le constructeur de notre classe afin de pouvoir lui passer un contexte en paramtre.

private Context context;

public LisItimizedOverlay(Drawable defaultMarker, Context pContext) { super(boundCenterBottom(defaultMarker)); this.context = pContext; }

Enfin dans lactivit de votre map, appeler ce nouveau constructeur avec le paramtre this qui reprsentera notre contexte :

ListItimizedOverlay itemizedoverlay = new ListItimizedOverlay(drawable,this);

4 sur 6

16/04/2013 17:03

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

Conclusion
Voila ce tutoriel sarrte ici en esprant quil vous a aid comprendre comment ajouter des points dintrt votre google map. Lensemble des sources du projet est disponible ici. Categories: Tutoriels

30 Responses so far.
1. Emilie dit : 7 fvrier 2013 15 h 40 min Bonjour, Jai suivie toute ces tapes mais quand je lance mon projet, la map apparait mais cest tout gris avec des carreaux avez-vous une ide? Rpondre
Abdoul dit : 8 mars 2013 17 h 50 min Vous avez certainement un problme avec votre cl ce lien vous aidera surement https://developers.google.com/maps/documentation/android/v1/maps-api-signup Rpondre

2.

tak dit : 9 juin 2012 0 h 31 min Salut, jai besoin de mettre plusieurs marqueurs sur la map dune faon statique (pour dsigner les placement des diffrents distributeurs dune banque). Le problme que le code que jai dj utilis affiche un seul marquer :/ SVP jai besoin dune solution trs urgent Merci davance Rpondre
hanane dit : 4 novembre 2012 19 h 38 min slt, jai le mme probleme de tak en fait jajoute ma liste dintrts 3 Geopoint mais je ne trouve quune qui est marque,quest ce que je doit faire Rpondre

3.

Gley dit : 6 juin 2012 13 h 03 min Salut , Svp jaime rcuprer une liste des points dintrt daprs ma base de donnes , ya til une tuto et merci Rpondre

4.

Vivien dit : 30 mai 2012 11 h 50 min Bonjour,

5 sur 6

16/04/2013 17:03

Ajouter des marqueurs dans une Google Map sous Android | Tutos An...

http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...

jaurai aim savoir comment pouvait-on trouver les coordonnes comme ci-dessous pour une adresse. GeoPoint geoPoint = new GeoPoint(-17595983, -149487411); En effet quand je cherche les coordonnes de ma maison jai un truc du genre xx,xxxx et x,xxxx hors je ne peux pas mettre a en paramtre de GeoPoint. Merci Beaucoup Vivien Rpondre
Vivien dit : 30 mai 2012 12 h 09 min cest bon jai trouv merci Rpondre bouraoui dit : 5 aot 2012 16 h 23 min bonjour, comment je peux dplacer un marqueur sur google maps pour avoir chaque fois le paire (latitude,longitude), merci Rpondre
bouraoui dit : 5 aot 2012 16 h 35 min comme dans lexemple ci-dessous http://universimmedia.pagesperso-orange.fr/geo/loc.htm Rpondre

Commentaires plus anciens

Leave a Reply
Name (required)

Mail (required)

Website

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

6 sur 6

16/04/2013 17:03

Anda mungkin juga menyukai