Les Allergies
Alimentaires
Posez votre question Signaler

Effacer un marker(en javas) API google map V2

systembarquée 43Messages postés 17 mai 2011Date d'inscription 4 août 2011Dernière intervention - Dernière réponse le 22 juil. 2011 à 15:15
Bonjour,
J'ai porbléme pour effacer un marker sur api google map, j'arrive à effacer tous les marker :
function vider_point(){
var i;
// on supprime les points de la carte
for(i=0;i<liste_de_points.length;i++)
google_map.removeOverlay(liste_de_points[i]);
dirn.clear();
google_map.clearoverlays() ;
Mais lorsque j'essaye d'en effacer un seul cela ne se produit pas:
}
function effacer_POI(a,b){
// on supprime le point de la carte
var marker = new GMarker(new GLatLng(a,b));
google_map.removeOverlay(marker);
dirn.clear();
google_map.clearoverlays() ;
}
Voila je vous remercie d'avance.
Lire la suite 

Effacer un marker(en javas) API google map V2 »

6 réponses
Réponse
+0
moins plus
Bonjour,

Dans le code que tu donnes, tu crées un marqueur et le supprime immédiatement.
Il faudrait plutôt que tu sois capable de passer le marqueur, ou son indice i dans liste_de_points[], pour pouvoir ensuite le supprimer :

function effacer_POI(marqueur){
  // on supprime le point de la carte
  google_map.removeOverlay(marqueur);
  dirn.clear();
  google_map.clearoverlays();
}
ou
function effacer_POI(indice){
  // on supprime le point de la carte
  google_map.removeOverlay(liste_de_points[indice]);
  dirn.clear();
  google_map.clearoverlays();
}


Si tu ne peux vraiment pas, et es obligé d'utiliser latitude et longitude, je pense que tu vas devoir parcourir tous tes marqueurs pour repérer les bons :

function effacer_POI(a,b){
  // on parcourt tous les points
  for(i = 0; i < liste_de_points.length; i++)
  {
    var latitude = liste_de_points[i].???;
    var longitude = liste_de_points[i].???;
    // Si le point correspond, on le supprime
    if (latitude == a && longitude == b)
    {
      google_map.removeOverlay(liste_de_points[i]);
      dirn.clear();
      google_map.clearoverlays();
    }
  }
} 


Remplace les ??? par les membres qui donnent latitude et longitude : je ne connais pas du tout l'API google maps, donc je ne sais pas comment ils s'appellent...

Xavier
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour la réponse, je vais plutôt utiliser la latitude et la longitude.
Mais mon liste_des_points[] est un tableau, il n'existe pas de membre pour obtenir la latitude et la longitude mais je pense pouvoir le faire avec marker. Car plus haut dans mon programme j'ai un:

function add_point_by_coord(lat,lng,)
{
var marker = new GMarker(new GLatLng(lat,lng), markerOptions);
liste_des_points[liste_des_points.length]=marker
}
Reivax962- 22 juil. 2011 à 12:11
« Mais mon liste_des_points[] est un tableau, il n'existe pas de membre pour obtenir la latitude et la longitude mais je pense pouvoir le faire avec marker. »
Euh, liste_des_points[] est un tableau, mais liste_des_points[i] est un marker...
Ajouter un commentaire
Réponse
+0
moins plus
Oui, vous avez raison.
J'ai trouvé un début de réponse.

function effacer_point(a,b)
{
// on parcourt tous les points
for ( i = 0; i < listedepoints.length; i++)
{
var latitude = marker.getPoint().lat();
var longitude = marker.getPoint().lng();
// Si le point correspond, on le supprime
if (latitude == a && longitude == b)
{
google_map.removeOverlay(listedepoints[i]);
dirn.clear();
google_map.clearoverlays();
}
}

}
Reivax962- 22 juil. 2011 à 14:04
Remplace

var latitude = marker.getPoint().lat();
var longitude = marker.getPoint().lng();

par

var latitude = listedepoints[i].getPoint().lat();
var longitude = listedepoints[i].getPoint().lng();

et tu devrais être bon :)
systembarquée- 22 juil. 2011 à 15:15
Merci, je l'avais déjà fait.
Comme j'avais écrasé marker en faisant liste_des_points[liste_des_points.length]=marker.
Je dois passer par listedepoints[i].

A bientot.
Ajouter un commentaire
Ce document intitulé « Effacer un marker(en javas) API google map V2 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?