IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Effacer traces et marqueurs dans Google maps


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 53
    Par défaut Effacer traces et marqueurs dans Google maps
    Bonjour à tous,

    je rencontre un souci pour effacer les traces et les marqueurs dans Google maps.

    J'ai conçu des traqueurs GPS (voitures x 2 et animaux x 2). Je veux, selon le cas, afficher un ou des éléments à suivre. Je récupère convenablement les données GPS de chaque élément pour les afficher dans Google maps, mais je n'arrive plus à les effacer de façon indépendamment. Par exemple, si j'affiche sur la carte 2 traces, celles pour mes animaux et que je veux en supprimer une, rien ne se passe. Une fois les traces (même une seule trace) affichées sur la carte, je n'arrive pas à les enlever. Pourriez-vous m'aider à trouver mon problème ?

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    var LINE = {};
    var POINTS = {};
    var MARKER = {};
    var positions = [];
    var ACTIVATION = [];
    var DESACTIVATION = [];
     
    async function GOOGLE_MARK()   // Chaque 5 secondes, cette fonction est exécutée
    {
        for (var i = 0; i < ACTIVATION.length; i++)  // ACTIVATION = les UID des TRACKER que j'active pour recevoir les points GPS
        {
            var GPS_DATA = await GET_GPS_DATA(ACTIVATION[i],1);  // Le dernier point GPS est un dictionnaire style {'lat': 45.76545, 'lng': 5.7647} dans la variable GPS_DATA (fonctionne)
     
            if (GPS_DATA != null)
            {
                for (var j = 0; j < Object.keys(GPS_DATA).length; j++ )
                {
                    positions.push(GPS_DATA[Object.keys(GPS_DATA)[j]]);
                }
                POINTS[ACTIVATION[i]] = positions;   // J'accumule les coordonnées dans un dictionnaire pour chaque élément que je veux suivre (fonctionne)
     
            }
            createPolyline(ACTIVATION[i]);  // fonction pour afficher les lignes et les marqueurs
        }
        for (var i = 0; i < DESACTIVATION.length; i++)   // efface normalement les lignes et les marques (ne fonctionne pas)
        {
            console.log(DESACTIVATION[i]);
            removePolyline(DESACTIVATION[i]);
            removeMarker(DESACTIVATION[i]);
        }
    }
     
    function createPolyline(NUMTRACKER) {
        const path = [];
        for (const position of POINTS[NUMTRACKER]) {
          path.push(new google.maps.LatLng(position.lat, position.lng));
        }
     
     
         LINE[NUMTRACKER] = new google.maps.Polyline({    // Affiche les lignes pour chaque élément (fonctionne)
          path,
          strokeColor: '#0000FF',
          strokeOpacity: 0.8,
          strokeWeight: 2,
        });
     
        console.log(LINE[NUMTRACKER])
        LINE[NUMTRACKER].setMap(map);     // Affiche les lignes pour chaque élément (fonctionne)
     
    function removePolyline(id)   // Efface les lignes (ne fonctionne pas)
    {
        if (LINE[id]) 
        {
        LINE[id].setMap(null);
        delete LINE[id];
        }
    }
     
    function removeMarker(id) {   // Efface les marqueurs (ne fonctionne pas)
        if (MARKER[id]) {
          MARKER[id].setMap(null);
          delete MARKER[id];
        }
      }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    j'ai du mal à voir ce que contient ACTIVATION[i].

    Concernant ton objet LINE j'aurais, à priori, utilisé un Array.
    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    const LINE = [];
    //....
    const polyline = new google.maps.Polyline({ // Affiche les lignes pour chaque élément (fonctionne)
        path,
        strokeColor: '#0000FF',
        strokeOpacity: 0.8,
        strokeWeight: 2,
      })
      .setMap(map);
    LINE.push(polyline);
    et pour la fonction de suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function removePolyline(id) {
      const index = LINE.indexOf(id);
      if (index > -1) {
        LINE[index].setMap(null);
        LINE.splice(index,1);
      }
    }
    voilà à la louche.

Discussions similaires

  1. [Débutant] comment faire pour Créer des marqueurs dans Google Maps en c#
    Par dabi29 dans le forum C#
    Réponses: 5
    Dernier message: 25/01/2016, 23h22
  2. Réponses: 0
    Dernier message: 22/07/2013, 23h05
  3. comment ajouter des points de passage dans google maps ?
    Par thor76160 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2010, 22h19
  4. Inserer une image fixe dans google map
    Par eown dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/05/2009, 20h37
  5. Comment se placer dans Google Maps?
    Par Stéph utilisateur d'acces dans le forum E-Mailing
    Réponses: 0
    Dernier message: 18/02/2009, 07h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo