#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
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
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