Bonjour à tous,
Dans le cadre d'un développement Leaflet, j'intègre un moteur de recherche sur une carte en utilisant le plugin "Leaflet.Control.Search" (http://labs.easyblog.it/maps/leaflet-search/).
Celui-ci me permet de zoomer sur les entités d'un GeoJson chargé sur la carte, d'après leur propriétés.
Cependant, mon GeoJson peut être rechargé par l'utilisateur, pour utiliser d'autres sources de données.
Pour cela, j'ai une fonction qui permet de recharger le GeoJson (c'est un GeoJson de "mailles") :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // fonction du bouton du contrôle de type de maille $(function(){ $(".dropdown-menu li a").click(function(){ if (currentMaillesTyp == $(this).attr("class")) {} else { layersControl.removeLayer(mailleslayer); map.removeLayer(mailleslayer); currentMaillesTyp = $(this).attr("class"); $.getJSON(getMaillesPhP(currentMaillesTyp), function(mailles) { addmaillesToMap(mailles, map); }); $(".dropdown-toggle .listname").text($(this).text()); info.update(); } });
Sachant que le bouton de recherche L.Control.Search() est ajouté en même temps que le addmaillesToMap() avec un map.addControl( searchControl );.
Mon problème : à chaque rechargement du GeoJson, un nouveau contrôle apparait.
Je cherche donc à retirer ce contrôle, s'il existe, au moment de l'ajout du GeoJson (addmaillesToMap()), avant de le rajouter à nouveau.
J'ai essayé avec :
Mais le contrôle n'est pas retiré...
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part map.removeControl(searchControl);
Avec
Et j'ai l'erreur :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part searchControl.removeFrom(map);.TypeError: searchControl.removeFrom is not a function
C'est certainement évident pour un connaisseur Javascript (que je ne suis pas )
Merci pour votre aide !
Partager