Mi objetivo es eliminar el control real en el mapa para crearlo nuevamente con datos actualizados.
Sé sobre control.remove() pero para usar esta función primero necesito obtener el objeto de control.
Esa es mi leyenda de control básica de L.control:
Y aquí está el código para crear L.control:
function legend(map) { var legend = L.control({position: 'bottomright'}); legend.onAdd = function (map) { var elements = []; map.eachLayer(function(layer){ if (layer._icon) { elements.push("svg"); } }); var div = L.DomUtil.create('div', 'info legend'), elements, labels = []; for (var i = 0; i < elements.length; i++) { div.innerHTML += '<i>'elements[i]'</i><br>'; } return div; }; legend.addTo(map); }
Gracias.
function legend(map) { var legend = L.control({ position: 'bottomright' }); legend.onAdd = function (map) { var elements = []; map.eachLayer(function (layer) { if (layer._icon) { elements.push("svg"); } }); var div = L.DomUtil.create('div', 'info legend'), elements, labels = []; for (var i = 0; i < elements.length; i++) { div.innerHTML += '<i style="' elements[i] '"></i><br>'; } return div; }; legend.addTo(map); return legend } const legendInstance = legend(map); // remove legendInstance.remove()
debe regresar y guardar la instancia de control si desea eliminar