Leaflet: Para remover ou limpar todas as camadas ativas sem passar por uma camada específica.

Criado em 18 fev. 2015  ·  2Comentários  ·  Fonte: Leaflet/Leaflet

Não encontrei nenhuma maneira de limpar ou remover todas as camadas ativas. Acho que deveria haver uma função para remover todas as camadas ativas sem passar pela camada específica. O que você acha?

Encontrei 2 funções principais para este propósito.
map.removeLayer (marcadores);
Markers.clearLayers ();

Mas estou tendo um problema ao usar esta função ... na verdade, ela funciona apenas uma vez, o que significa remover apenas uma camada de marcadores ou talvez eu esteja fazendo algo errado.

var map = novo L.Map ('mapa');

function getMarker () {
var heatMap = "";
if (marcadores) {
map.removeLayer (Membersx);
map.removeLayer (map._layers);
}
$ .ajax ({
tipo: "post",
url: "app_lib-> FOLDER ['admin']. $ this-> router-> class?> / buscador ",
dataType: "json",
dados: {camadas: = $ json_encode (camadas);?>}
sucesso: função (resultado) {
$ .each (resultado, função (índice, camada) {
var Markers = L.geoJson (layer.data, {
pointToLayer: function (feature, 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 (marcadores);
});
}

Você pode me ajudar com este problema ...?

Desde já, obrigado.

Comentários muito úteis

Há funcionalidade mais do que suficiente para remover camadas do mapa ou remover / limpar outras camadas agrupadas. L.Map tem o método removeLayer que funcionaria bem em combinação com a função eachLayer ;

map.eachLayer(function (layer) {
    map.removeLayer(layer);
});

http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer

Se você precisa muito dessa funcionalidade, pode incluí-la em L.Map facilmente:

L.Map.include({
  'clearLayers': function () {
    this.eachLayer(function (layer) {
      this.removeLayer(layer);
    }, this);
  }
});

A razão (estou especulando aqui) isso não está incluído em L.Map é que muito poucas pessoas precisarão dele. A maioria das implementações usará um dos tipos de camadas agrupadas como L.LayerGroup , L.FeatureGroup ou L.GeoJSON para criar coleções de camadas. Essas camadas têm o método clearLayers incluído.

http://leafletjs.com/reference.html#layergroup -clearlayers

Toda a funcionalidade de que você precisa já está lá, você só precisa implementá-la corretamente. Se você está tendo problemas ou precisa de ajuda com sua implementação, postar neste issuetracker não é a coisa certa a fazer. Você receberá feedback e ajuda muito mais cedo se usar os canais adequados para isso, como no grupo do folheto do Google ou postar uma pergunta no Stackoverflow com a tag do

Todos 2 comentários

Há funcionalidade mais do que suficiente para remover camadas do mapa ou remover / limpar outras camadas agrupadas. L.Map tem o método removeLayer que funcionaria bem em combinação com a função eachLayer ;

map.eachLayer(function (layer) {
    map.removeLayer(layer);
});

http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer

Se você precisa muito dessa funcionalidade, pode incluí-la em L.Map facilmente:

L.Map.include({
  'clearLayers': function () {
    this.eachLayer(function (layer) {
      this.removeLayer(layer);
    }, this);
  }
});

A razão (estou especulando aqui) isso não está incluído em L.Map é que muito poucas pessoas precisarão dele. A maioria das implementações usará um dos tipos de camadas agrupadas como L.LayerGroup , L.FeatureGroup ou L.GeoJSON para criar coleções de camadas. Essas camadas têm o método clearLayers incluído.

http://leafletjs.com/reference.html#layergroup -clearlayers

Toda a funcionalidade de que você precisa já está lá, você só precisa implementá-la corretamente. Se você está tendo problemas ou precisa de ajuda com sua implementação, postar neste issuetracker não é a coisa certa a fazer. Você receberá feedback e ajuda muito mais cedo se usar os canais adequados para isso, como no grupo do folheto do Google ou postar uma pergunta no Stackoverflow com a tag do

^^: +1:
Você também pode simplesmente lembrar de sua camada de marcadores e removê-la.

Esta página foi útil?
0 / 5 - 0 avaliações