banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 12 April 2023 20:17

cherbe
Participant occasionnel
Date d'inscription: 1 Nov 2008
Messages: 41

Leaflet : supprimer une polyline préalablement créée

Bonjour

Dans mon appli, l'utilisateur crée un droite sur le fond de carte en cochant un bouton radio. Pour cela, le bouton appelle un fonction.
Comme il existe plusieurs boutons, et donc plusieurs fonctions, l'écran s'encombre de lignes inutiles.
J'ai fais des tas de recherches et testé pleins d'exemples mais aucun ne fonctionne. Je n'arrive pas à supprimer ces lignes.
Voici le code qui crée la droite :
   

Code:

if(document.getElementById('Paris').checked)
        {
        if (navigator.geolocation) 
            {
            navigator.geolocation.getCurrentPosition(function(position) 
                { 
                 var y =position.coords.latitude;
                 var x= position.coords.longitude;
                var points=[[y,x],[48.9033866534449,6.36821056717085]]; 
                var droite=L.polyline(points,{color: 'red'}).addTo(map);
                map.fitBounds(droite.getBounds());
                               });
            }    
        }

Merci.

Dernière modification par cherbe (Wed 12 April 2023 20:18)

Hors ligne

 

#2 Fri 14 April 2023 13:10

Laurent Jégou
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 447
Site web

Re: Leaflet : supprimer une polyline préalablement créée

Bonjour, votre fonction crée un objet "droite" (de type polyline, donc path et layer) qui est ajouté à l'objet principal map. Pour le supprimer, vous pouvez itérer sur les layers enfants de "map" pour le retrouver et le supprimer (removeLayer()).


Enseignant-Chercheur en Géomatique
UT2J - Dept Géo / CNRS UMR LISST-Cieu / Master Sigma - Revue Mappemonde

Hors ligne

 

#3 Mon 17 April 2023 19:45

cherbe
Participant occasionnel
Date d'inscription: 1 Nov 2008
Messages: 41

Re: Leaflet : supprimer une polyline préalablement créée

Laurent Jégou a écrit:

Bonjour, votre fonction crée un objet "droite" (de type polyline, donc path et layer) qui est ajouté à l'objet principal map. Pour le supprimer, vous pouvez itérer sur les layers enfants de "map" pour le retrouver et le supprimer (removeLayer()).


Je vais chercher de ce côté.
Merci.

Hors ligne

 

#4 Tue 18 April 2023 14:31

cherbe
Participant occasionnel
Date d'inscription: 1 Nov 2008
Messages: 41

Re: Leaflet : supprimer une polyline préalablement créée

Laurent Jégou a écrit:

Bonjour, votre fonction crée un objet "droite" (de type polyline, donc path et layer) qui est ajouté à l'objet principal map. Pour le supprimer, vous pouvez itérer sur les layers enfants de "map" pour le retrouver et le supprimer (removeLayer()).


À force de chercher et tester, j'ai fini par trouver :
Dans le script, je créé un tableau (array) destiné à stocker les droites créées par les fonctions :

Code:

var lignes = [];

dans chacune des fonctions, je commence par vider ce tableau qui est déjà vide la 1ère fois et non vide les fois suivantes :

Code:

    lignes.forEach(function (item) {
    map.removeLayer(item)
    });

dans chacune des fonctions, je créé la droite :

Code:

var droite=new L.polyline(points,{color: 'red'}).addTo(map);

Ensuite, je l'envoie dans le tableau :

Code:

lignes.push(droite);

Et là ça fonctionne ENFIN !

Hors ligne

 

Pied de page des forums

Powered by FluxBB