Je n'ai trouvé aucun moyen d'effacer ou de supprimer tous les calques actifs. Je pense qu'il devrait y avoir une fonction pour supprimer tous les calques actifs sans passer le calque spécifique. Qu'est-ce que tu penses?
J'ai trouvé 2 fonctions principales à cet effet.
map.removeLayer(Markers);
Markers.clearLayers();
Mais j'ai un problème lors de l'utilisation de cette fonction... en fait, cela ne fonctionne qu'une seule fois, ce qui signifie ne supprimer qu'une seule couche de marqueurs ou peut-être que je fais quelque chose de mal.
var map = new L.Map('map');
fonction getMarker(){
var heatMap = "";
if(Marqueurs) {
map.removeLayer(Membersx);
map.removeLayer(map._layers);
}
$.ajax({
tapez: "post",
URL : "app_lib->FOLDER['admin'].$this->router->class ?>/buscador",
type de données : "json",
données : {couches :=$json_encode(couches);?>}
succès : fonction(résultat){
$.each(résultat, fonction(index, couche) {
var Marqueurs = L.geoJson(layer.data ,{
pointVersCouche : fonction (fonctionnalité, latlng) {
if(feature.geometry.type == 'Point'){
return L.marker(latlng, {icon: L.ExtraMarkers.icon({ icon: feature.marker_icon, markerColor: feature.marker_color, shape: feature.marker_type, prefix: 'fa' }) })
}
},
onEachFeature : onEachFeature
});
map.addLayer(Markers);
});
}
Pouvez-vous s'il vous plaît m'aider sur ce problème...?
Merci d'avance.
Il existe des fonctionnalités plus que suffisantes pour supprimer des couches de la carte ou supprimer/effacer d'autres couches groupées. L.Map
a la méthode removeLayer
qui fonctionnerait bien en combinaison avec la fonction eachLayer
;
map.eachLayer(function (layer) {
map.removeLayer(layer);
});
http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer
Si vous avez beaucoup besoin de cette fonctionnalité, vous pouvez l'inclure facilement dans L.Map
:
L.Map.include({
'clearLayers': function () {
this.eachLayer(function (layer) {
this.removeLayer(layer);
}, this);
}
});
La raison (je spécule ici) que cela n'est pas inclus dans L.Map
est que très peu de gens en auront jamais besoin. La plupart des implémentations utiliseront l'un des types de couches groupées comme L.LayerGroup
, L.FeatureGroup
ou L.GeoJSON
pour créer des collections de couches. Ces couches ont la méthode clearLayers
incluse.
http://leafletjs.com/reference.html#layergroup -clearlayers
Toutes les fonctionnalités dont vous avez besoin sont déjà là, il vous suffit de les implémenter correctement. Si vous rencontrez des problèmes ou avez besoin d'aide pour votre implémentation, publier sur cet outil de suivi des problèmes n'est pas la bonne chose à faire. Vous obtiendrez des commentaires et de l'aide beaucoup plus tôt si vous utilisez les canaux appropriés pour cela, comme dans le groupe Google de Leaflet ou en publiant une question sur Stackoverflow avec la balise brochure .
^^ :+1:
Vous pouvez également vous souvenir de votre calque Marqueurs et le supprimer.
Commentaire le plus utile
Il existe des fonctionnalités plus que suffisantes pour supprimer des couches de la carte ou supprimer/effacer d'autres couches groupées.
L.Map
a la méthoderemoveLayer
qui fonctionnerait bien en combinaison avec la fonctioneachLayer
;http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer
Si vous avez beaucoup besoin de cette fonctionnalité, vous pouvez l'inclure facilement dans
L.Map
:La raison (je spécule ici) que cela n'est pas inclus dans
L.Map
est que très peu de gens en auront jamais besoin. La plupart des implémentations utiliseront l'un des types de couches groupées commeL.LayerGroup
,L.FeatureGroup
ouL.GeoJSON
pour créer des collections de couches. Ces couches ont la méthodeclearLayers
incluse.http://leafletjs.com/reference.html#layergroup -clearlayers
Toutes les fonctionnalités dont vous avez besoin sont déjà là, il vous suffit de les implémenter correctement. Si vous rencontrez des problèmes ou avez besoin d'aide pour votre implémentation, publier sur cet outil de suivi des problèmes n'est pas la bonne chose à faire. Vous obtiendrez des commentaires et de l'aide beaucoup plus tôt si vous utilisez les canaux appropriés pour cela, comme dans le groupe Google de Leaflet ou en publiant une question sur Stackoverflow avec la balise brochure .