6
Accueil Tous les tutos Contact À propos Ajouter des marqueurs dans une Google Map sous Android Publié 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”. ItimizedOverlay Vous 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écents 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) Présentation de mon nouveau projet …… Un livre Créer un Live Wallpaper sous Android ViewPager sous Android : Comment slider d’un fragment à un autre 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 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 Map sous Android 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 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

Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

Embed Size (px)

Citation preview

Page 1: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

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

Page 2: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

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

Page 3: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

{

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

Page 4: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

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

Page 5: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

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

Page 6: Ajouter Des Marqueurs Dans Une Google Map Sous Android _ Tutos Android

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