Я пытаюсь реализовать функцию "фильтр" на моей карте листовка вместе с маркерным кластером, у меня есть до тех пор, пока у меня есть блок управления и вычеркивание маркеров, но при отключении "категории" ничего не обновляется на карте. Я применил пример из которых эта функция работает http://jsfiddle.net/RogerHN/31v2afte/2/
вот как я рисую маркер.
case 'antisocialbehaviour':
marker = L.marker(new L.LatLng(a[0], a[1]), {
icon: icons,
title: 'antisocialbehaviour'
});
markers_cluster.addLayer(marker);
break;
требуемый код для блока управления (вверху javascript)
var groupA = L.layerGroup(markersA);
var groupB = L.layerGroup(markersB);
var markersA = [];
var markersB = [];
var overlayMaps = {
"A": groupA,
"B": groupB
};
L.control.layers(tileLayer, overlayMaps, {position:'topleft'}).addTo(map);
Мой код на JSFiddle, если кто-то должен увидеть проблему. https://jsfiddle.net/jgov83fg/25/
Я сделал копию вашего JSFiddle и внес некоторые изменения в него.
Я включил дополнительный плагин Leaflet.MarkerCluster.LayerSupport в теге body JSFiddle HTML:
<script src="https://unpkg.com/[email protected]/dist/leaflet.markercluster.layersupport.js"></script>
Я добавил в код JavaScript следующее:
var mcgLayerSupportGroup = L.markerClusterGroup.layerSupport(),
group1 = L.layerGroup(),
group2 = L.layerGroup(),
group3 = L.layerGroup(),
group4 = L.layerGroup(),
control = L.control.layers(null, null, {
collapsed: false
}),
i, a, title, marker;
mcgLayerSupportGroup.addTo(mymap);
mcgLayerSupportGroup.checkIn([group1, group2, group3, group4]);
control.addOverlay(group1, 'Anti-Social Behaviour');
control.addOverlay(group2, 'Violent Crime');
control.addOverlay(group3, 'Bicycle Theft');
control.addOverlay(group4, 'Burglary');
control.addTo(mymap);
group1.addTo(mymap); // Adding to map or to AutoMCG are now equivalent.
group2.addTo(mymap);
group3.addTo(mymap);
group4.addTo(mymap);
Затем, в функции create_marker
, я вызываю либо marker.addTo(group1)
, marker2.addTo(group2)
, marker3.addTo(group3)
либо marker4.addTo(group4)
зависимости от типа преступления, с которым связан маркер.
Надеюсь, что это поможет, дайте мне знать, если у вас есть какие-либо вопросы.