Comment faire pour supprimer tous les calques et les fonctionnalités de la carte?
Je suis en train de travailler sur une carte et je voudrais enlever toutes les fonctionnalités de la carte sur un certain événement. Les fonctionnalités sont multiples couches qui sont tracées de façon dynamique.
Une partie du code est:
$.getJSON('distributor-companies', function (data) {
var layers = [];
$.each(data, function (i, item) {
if (item.geojson != '') {
layers[i] = L.mapbox.featureLayer().addTo(map);
$.getJSON('/geojson/' + item.geojson, function (data) {
layers[i].setGeoJSON(data);
//Loop over the added layer
layers[i].eachLayer(function (layer) {
//Add click event
layer.on('click', function (e) {
//Do stuff
map.fitBounds(layers[i].getBounds());
});
});
});
}
});
});
Est-il un moyen de récupérer toutes les couches de la carte à un certain point dans le temps et de les supprimer.
OriginalL'auteur Rohan | 2015-02-21
Vous devez vous connecter pour publier un commentaire.
En boucle sur toutes les couches ajoutées à la carte à l'aide de la
eachLayer
méthode deL.Map
, puis d'appeler leremoveLayer
méthode deL.Map
sur chacun d'eux:Références:
eachLayer
: http://leafletjs.com/reference.html#map-eachlayerremoveLayer
: http://leafletjs.com/reference.html#map-removelayerVeuillez noter que cette wil enlever TOUTES les couches de votre carte. Cela veut dire que tout tilelayers etc. Je pense que dans votre cas, il serait mieux si vous n'avez pas à ajouter tous vos featureLayers à la carte de l'instance, mais de créer un groupe pour eux:
Maintenant, vous pouvez appeler la
clearLayers
méthode deL.LayerGroup
qui va effacer de l'actuel couches dans le groupe:Référence:
L.LayerGroup
: http://leafletjs.com/reference.html#layergroupclearLayers
: http://leafletjs.com/reference.html#layergroup-clearlayersOriginalL'auteur iH8