Leaflet: Pour supprimer ou effacer tous les calques actifs sans passer un calque spécifique.

Créé le 18 févr. 2015  ·  2Commentaires  ·  Source: Leaflet/Leaflet

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.

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é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 .

Tous les 2 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes