Tengo un grupo de funciones que agrega marcadores circulares y rutas: se agregan en secuencia y necesito una forma de crear una función que elimine el último (2) en las _capas cada vez que se hace clic.
Intenté cortar pero eso no funciona porque en realidad no es una matriz.
¿Alguna idea sobre cómo proceder? He estado buscando stackoverflow por un tiempo y no puedo encontrar nada que coincida con lo que estoy tratando de hacer.
Simplemente consultemos la documentación del folleto:
Puede utilizar los métodos que proporciona layerGroup/featureGroup para eliminar las dos últimas capas del grupo.
getLayers devuelve una matriz de todas las capas agregadas al grupo .eachLayer itera sobre las capas del grupo, especificando opcionalmente el contexto de la función iteradora .removeLayer elimina la capa con el ID interno dado del grupo . El grupo de funciones de featureGroup es una extensión del grupo de layerGroup , por lo que todos estos también funcionarán en el featureGroup de funciones.
Entonces, digamos que tiene sus capas configuradas así:
// Layers: var layers = L.layerGroup().addTo(map); var marker = L.marker([51.5, -0.09]).addTo(layers); var circle = L.circle([51.508, -0.11], { color: 'red', fillColor: '#f03', fillOpacity: 0.5, radius: 500, }).addTo(layers); var polygon = L.polygon([ [51.509, -0.08], [51.503, -0.06], [51.51, -0.047], ]).addTo(layers); Puede usar esos métodos de layerGroup para eliminar los dos últimos elementos de la matriz:
// Pass the layerGroup to the function function removeLastTwo(layerGroup) { // Use getLayers to get the array var layerArr = layerGroup.getLayers(); var minusOne = layerArr.length - 1; var minusTwo = layerArr.length - 2; // Use eachLayer to iterate the layerGroup layerGroup.eachLayer((layer) => { // Grab the index of the layer var layerIndex = layerArr.indexOf(layer); // Remove the last two elements of the layerGroup array if (layerIndex === minusOne || layerIndex === minusTwo) { layerGroup.removeLayer(layer); } }); }Aquí hay un ejemplo en vivo , con esta función adjunta al detector de eventos de clic de un botón.