我试图清除标记,如果一个新的侧边栏过滤器被选中。我正在使用WordPress API填充标记。有没有一种方法,在点击侧边栏复选框,我可以删除标记之前,重新绘制它们?我被困在我添加它的地方。我有一个名为getLatLong的函数,它可以从API中提取经纬度和经度以及其他一些数据。
let markers = L.markerClusterGroup();
await fetch(api_url).then(response => response.json())
.then(response => {
for (var i = 0; i < response.length; i++) {
getLatLong(response[i].ID).then(
marker => addMarker(marker, markers)
);
}
});
function addMarker(marker_point, markers){
markers.addLayer(L.marker([marker_point[0].lat, marker_point[0].long], {icon: myIcon})
.bindPopup(marker_point[0].title+"<a href='" + marker_point[0].link + "'>Learn more</a>")
.addTo(map));
}
1条答案
按热度按时间8i9zcol21#
您可以将所有标记分组到一个图层组中(https://leafletjs.com/reference.html#featuregroup)然后您可以使用从图层组addTo()和removeFrom()继承的方法在Map上显示它们或再次删除它们。