每次调用函数时清除 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);
函数 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);