La función getCountryBorders() actualiza el mapa dibujando la frontera del país deseado cada vez que se ejecuta la función. Sin embargo, solo agrega el borde de cada país a la capa actual, en lugar de reemplazar el borde anterior.
¿Cómo puedo borrar la capa actual cada vez que se llama a la función?
const getCountryBorders = function() { $.ajax({ url: "libs/php/getCountryBorders.php", type: 'POST', dataType: 'json', success: function(result) { const countries = result["data"]["features"]; function countryFilter(feature) { if (feature.properties.iso_a2 === countryCode) return true } const borderStyle = { "color": "red" } borderLayer = L.geoJson(countries, { filter: countryFilter, style: borderStyle }).addTo(map); }, error: function(jqXHR, textStatus, errorThrown) { } }) }Dado que su borderLayer tiene un alcance global, una solución muy fácil es eliminarlo del mapa justo antes de reasignarlo:
if (borderLayer) { borderLayer.remove(); } borderLayer = L.geoJson(countries).addTo(map);