每次调用函数时清除 GeoJSON 层

Clear GeoJSON layer every time function is called

函数 getCountryBorders() 每次函数 运行 时都会通过绘制所需的国家/地区边界来更新地图。但是,它只是将每个国家/地区的边界添加到当前图层,而不是替换旧边界。

如何在每次调用函数时清除当前图层?

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) {
            
        }
    })
}

由于您的 borderLayer 在全球范围内,一个非常简单的解决方案是在重新分配之前将其从地图中删除:

if (borderLayer) {
  borderLayer.remove();
}
borderLayer = L.geoJson(countries).addTo(map);