我正在使用传单集群插件来绘制一堆崩溃。当您加载页面时,我会绘制出所有崩溃(存储在 GeoJSON 文件中)。我也有按钮可以为每年加载不同的 geoJSON 文件。
我遇到的问题是 removeLayer() 实际上并没有删除图层。因此,当我重新映射一个新的 GeoJSON 文件时,它只是将所有崩溃堆叠在一起。
这是我单击按钮时触发的两个函数。var 标记是在全局命名空间中定义的,如下所示(也许这是问题的一部分)?
var markers = L.markerClusterGroup({spiderfyDistanceMultiplier: 1.3});
//Lay new data on map
function buildMarkers(yearData){
var crashLayer = new L.geoJson(yearData, {
onEachFeature: function (feature, layer) {
layer.bindPopup(feature.properties.year);
}
});
markers.addLayer(crashLayer);
map.addLayer(markers);
}
//Remove ALL data on map
function removeClusters(){
map.removeLayer(markers)
}
//AN example of a button
$("#twelve").click(function(e){
e.preventDefault();
$('a').removeClass('selected');
$(this).addClass('selected');
removeClusters();
buildMarkers(twelveCrashes);
});