javascript 使用leaflet.js清除标记

kzipqqlq  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(267)

我试图清除标记,如果一个新的侧边栏过滤器被选中。我正在使用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));
    
    }
8i9zcol2

8i9zcol21#

您可以将所有标记分组到一个图层组中(https://leafletjs.com/reference.html#featuregroup)然后您可以使用从图层组addTo()和removeFrom()继承的方法在Map上显示它们或再次删除它们。

相关问题