Leaflet 从传单标记群集中删除项目

Leaflet 从传单标记群集中删除项目,leaflet,Leaflet,我有两个函数可以将标记加载到地图中。(在ajax调用成功时调用这两个函数) 第一个函数是这样的: function loadEpsMarkers(data) { for (var i = 0; i < data.length; i++) { var plateNo = data[i].PLATE_NUMBER; var permitNo = data[

我有两个函数可以将标记加载到地图中。(在ajax调用成功时调用这两个函数)

第一个函数是这样的:

  function loadEpsMarkers(data) {
                    for (var i = 0; i < data.length; i++) {
                        var plateNo = data[i].PLATE_NUMBER;
                        var permitNo = data[i].PERMITINFOID;
                        var inventoryId = data[i].INVENTORY_ID;
                        var icon = epsiconR;
                        if (data[i].INVENTORY_STATUS === 'Complete') {
                             icon = epsiconC;
                        }
                        var popup = '<h5>EPS</h5>' + 'Plate:' + plateNo + '<br/>' +
                            ' Permit: <a class=\'link\' data-inventoryId="' + inventoryId + '" href=' + url + '>' + permitNo + '</a>' +
                            '<p style=\"color:blue\">' + '' + '<a class=\'link\'  href=' + url + '>' + 
                            'Import' + '</a>' + '<br/>' + '<a class=\'link\'  href=' + url + '>' + 
                            'Duplicate' + '</a>' + '<br/>' + '<a class=\'link\'  href=' + url + '>' + 
                            'Removed' + '</a>' + '<br/>' + '</p>';

                        var m = L.marker([data[i].REF_LATITUDE, data[i].REF_LONGITUDE], { icon: icon, draggable: 'true' })
                                            .bindPopup(popup);
                        markerClusters.addLayer(m);

    }   
                        map.addLayer(markerClusters);
                    map.invalidateSize(false);
}
但这是行不通的。有什么办法可以让这一切顺利进行吗


提前感谢

实现您所描述内容的一种非常简单的方法是将对每个组的标记的引用存储在数组中,并操纵这些数组以将层添加/删除到MCG中:

var markersCall1=[],
markersCall2=[],
markersCall3=[],
markersCall4=[];
函数装入器标记X(数据){//将X替换为1…4
对于(变量i=0;i

当您有成批的标记要添加/删除时,您可以方便地使用MarkerClusterGroup方法(带有尾随的s)和要处理的标记数组。这些方法比逐个添加/删除标记更有效。

谢谢。我已经对此进行了测试,并且通过研究发现,这是实现上述情景的正确方法。我希望这对和我处于同一位置的其他人也有帮助。谢谢
 $('#dvEpsOnlyMarkers').click(function () {
            markerClusters.removeLayer(m);
        });