Upload
achrefo-mh
View
418
Download
0
Embed Size (px)
Citation preview
Accueil
Tous les tutos
Contact
À propos
Ajouter des marqueurs dans une GoogleMap sous AndroidPublié par Steeve Guillaume Publié le fév - 29 - 2012
Tweeter
1
20
Like
Sharebar
Tweeter 1
Like 20
Nous allons voir dans ce tutoriel comment ajouter des points d’intérêts à votre Google Map. Avant
tout vous devez déjà avoir implémenter une map au sein de votre application. Vous pouvez reprendre
le projet “HelloGoogleMap” vue dans le tutoriel “Intégration d’une Google Map Sous Android”.
ItimizedOverlayVous allez tout d’abord créer une classe qui implémente la classe ItimizedOverlay, elle représenteras
votre liste de point d’intérêt.
Articles récentsIntroduction 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)
Présentation de mon nouveau projet ……Un livre
Créer un Live Wallpaper sous Android
ViewPager sous Android : Comment sliderd’un fragment à un autre
Les AsyncTask
Importer un certificat SSL auto-signé avecBouncy Castle
Ajouter des marqueurs dans une GoogleMap sous Android
La gestion des strings sous Android
Paris Android User Group
Detection de visages dans une image sousAndroid Ice Cream Sandwich
Les Parcelables sous Android
ContentProvider sous Android
Utilisation du Bluetooth dans une applicationAndroid
Linux Mag Hors série – Spécial JAVA
Parsing JSON avec Jackson sous Android
Introduction aux styles sous Android
Gestion de la rotation sous Android
Position de l’utilisateur sur une Google Mapsous Android
TextWatcher sous Android
Introduction à GreenDroid
Les Webservices REST sous Android avecApp 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
Géolocalisation sous Android
Intégration d’une Google Map sous Android
Changement de vues sous android
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
1 sur 6 16/04/2013 17:03
Vous devez spécifier :
Le nom de votre classe.
Dériver 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 créer une liste qui va nous permettre de stocker nos points d’intérêts :
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()
Introduction aux vues sous Android
Introduction à la programmation sousAndroid
Bienvenue dans mon Blog dédié audéveloppement Android
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
2 sur 6 16/04/2013 17:03
{
return arrayListOverlayItem.size();
}
public void addOverlayItem(OverlayItem overlay)
{
arrayListOverlayItem.add(overlay);
populate();
}
}
Passons à quelques explications :
Tout d’abord votre constructeur reçoit en paramètre un Drawable : defaultMarker. Lors de laconstruction de votre objet ListItimizedOverlay, vous pouvez spécifier l’image qui représentera votremarqueur sur la carte.
Toujours en ce qui concerne le constructeur, on remarque aussi l’appel à la méthodeboundCenterBottom(defaultMarker) qui englobe le defaultMarker. Cette fonction permet de centrerl’image de votre marqueur juste au dessus du point cible.
On ajoute une méthode addOverlayItem qui prends en paramètre des OverlayItem, ce qui nouspermettras une fois l’objet créer de rajouter des points dans notre liste :arrayListOverlayItem.add(overlay).
La fonction populate() ajoute les points sur la carte. Elle s’occupe de préparer les éléments à dessineren appelant entre autre votre méthode creatItem.
D’où la nécessiter de surcharger les méthodes createItem(int i) qui retourne un élément présent dansnotre liste de point.
Ma méthode size() indique le nombre d’élément présent dans notre liste.
Ajout du marqueurReprenons l’activité qui contient votre Google Map. Nous allons créer un objet de type
ListItimizedOverlay qui va contenir nos points. Il va falloir choisir une image Drawable pour l’utiliser
en paramètres à la création de notre instance. Pour finir ajouter des points de type GeoPoint avec les
coordonnées ciblées.
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 d’overlay, il faut d’abord créer les points à l’aide de
la classe OverlayItem avec comme paramètres les coordonnées 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 créée, ajoutez les à votre carte. Pour cela, il faut récupérer la liste des points
déjà existants (méthode getOverlays()) et y ajouter notre liste .
List<Overlay> mapOverlays = mapView.getOverlays();
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
3 sur 6 16/04/2013 17:03
mapOverlays.add(itemizedoverlay);
Vous pouvez dès a présent compiler votre projet et y ajouter autant de points que vous souhaitez.
Gestion du clique sur un marqueurSi vous souhaitez ajouter une action au moment du clique sur un marqueur, une modification de la
classe ListItimizedOverlay est nécessaire :
@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 créer un message d’alerte affichant les informations sur le point sélectionné.
Vous pouvez remarquer que l’utilisation d’un AlertDialog nécessite un contexte. Pour cela, nous allons
surcharger le constructeur de notre classe afin de pouvoir lui passer un contexte en paramètre.
private Context context;
public LisItimizedOverlay(Drawable defaultMarker, Context pContext)
{
super(boundCenterBottom(defaultMarker));
this.context = pContext;
}
Enfin dans l’activité de votre map, appeler ce nouveau constructeur avec le paramètre this qui
représentera notre contexte :
ListItimizedOverlay itemizedoverlay = new ListItimizedOverlay(drawable,this);
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
4 sur 6 16/04/2013 17:03
ConclusionVoila ce tutoriel s’arrête ici en espérant qu’il vous a aidé à comprendre comment ajouter des points
d’intérêt à votre google map. L’ensemble des sources du projet est disponible ici.
Categories: Tutoriels
30 Responses so far.
Emilie dit :7 février 2013 à 15 h 40 minBonjour,
J’ai suivie toute ces étapes mais quand je lance mon projet, la map apparait mais c’est tout gris
avec des carreaux… avez-vous une idée?
Répondre
Abdoul dit :8 mars 2013 à 17 h 50 min
Vous avez certainement un problème avec votre clè ce lien vous aidera surement
https://developers.google.com/maps/documentation/android/v1/maps-api-signup
Répondre
1.
tak dit :9 juin 2012 à 0 h 31 minSalut,
j’ai besoin de mettre plusieurs marqueurs sur la map d’une façon statique (pour désigner les
placement des différents distributeurs d’une banque). Le problème que le code que j’ai déjà utilisé
affiche un seul marquer :/
SVP j’ai besoin d’une solution très urgent
Merci d’avance
Répondre
hanane dit :4 novembre 2012 à 19 h 38 min
slt, j’ai le même probleme de “tak” en fait j’ajoute à ma liste d’intérêts 3 Geopoint mais je ne trouve
qu”une qui est marquée,qu’est ce que je doit faire
Répondre
2.
Gley dit :6 juin 2012 à 13 h 03 minSalut , Svp j’aime récupérer une liste des points d’intérêt d’après ma base de données , y’a t’il une
tuto et merci
Répondre
3.
Vivien dit :30 mai 2012 à 11 h 50 minBonjour,
4.
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
5 sur 6 16/04/2013 17:03
j’aurai aimé savoir comment pouvait-on trouver les coordonnées comme ci-dessous pour une
adresse.
GeoPoint geoPoint = new GeoPoint(-17595983, -149487411);
En effet quand je cherche les coordonnées de ma maison j’ai un truc du genre xx,xxxx et x,xxxx
hors je ne peux pas mettre ça en paramètre de GeoPoint.
Merci Beaucoup
Vivien
Répondre
Vivien dit :30 mai 2012 à 12 h 09 min
c’est bon j’ai trouvé
merci
Répondre
bouraoui dit :5 août 2012 à 16 h 23 min
bonjour, comment je peux déplacer un marqueur sur google maps pour avoir à chaque fois le paire
(latitude,longitude), merci
Répondre
bouraoui dit :
5 août 2012 à 16 h 35 min
comme dans l’exemple ci-dessous
http://universimmedia.pagesperso-orange.fr/geo/loc.htm
Répondre
« Commentaires plus anciens
Leave a ReplyName (required)
Mail (required)
Website
Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans
commenter.
Ajouter des marqueurs dans une Google Map sous Android | Tutos An... http://www.tutos-android.com/ajouter-marqueurs-item-poi-google-map...
6 sur 6 16/04/2013 17:03