I´m using the groupedlayers with empty "dummy" layer groups that are only used to enable or disable filters for the GeoJSON layer when selected/unselected in the layers control. Layers DOI_A6SC, DOI_A6SC, DOI_SUBS, and DOI_SUCC include all markers.
How should I do it so that when selecting one or more layers (DOI_A6SC, DOI_A6SC, DOI_SUBS, DOI_SUCC), and one or more secondary layers, only the markers that have feature.properties.DOI_A6SC == '1'
and feature.properties.PosteM_8 == '1'
, for example.
Example GeoJSON:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.60581,
39.3752
]
},
"properties": {
"Nemesis": "20DOI_SUBS012522",
"Estado": "G",
"CCO": "43",
"ACL": "43PN02",
"ACL_DESC": "(43PN02) ALQUEIDAO-CASEVEL",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "0",
"DOI_SUBS": "1",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "1",
"PosteM_9": "0",
"PosteM_10": "1",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "1335.76",
"TM_Estado": "1421,4",
"Descricao_Orcamento": "(MJP) Rua da Fonte Santa – Alqueidão (39.37520 -8.60581).",
"Descricao_Observacao": "Necessário também substituir 3 postes. O poste da caixa 0201057 é de 8 metros com espia e acessórios RAD. Os dois postes seguintes, na direção da caixa 0201056 são respetivamente de 8 metros e de 10 m"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.795743,
39.345886
]
},
"properties": {
"Nemesis": "20DOI_SUBS018407",
"Estado": "G",
"CCO": "43",
"ACL": "43TZ01",
"ACL_DESC": "(43TZ01) TREMEZ",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "0",
"DOI_SUBS": "1",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "1",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "179.71",
"TM_Estado": "1411,2",
"Descricao_Orcamento": "(GV) Estrada Outeiro da Cortiçada para Correias, Apoio FO72 (39.345886, -8.795743).",
"Descricao_Observacao": "Proceder substituição de poste de 9 metros em mau estado e apear cabo rad desativo"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.62243,
39.32372
]
},
"properties": {
"Nemesis": "20DOI_SUBS023353",
"Estado": "G",
"CCO": "43",
"ACL": "43AN02",
"ACL_DESC": "(43AN02) VALE FIGUEIRA",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "0",
"DOI_SUBS": "0",
"DOI_SUBC": "1",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "1",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "317.13",
"TM_Estado": "1398,2",
"Descricao_Orcamento": "(GV) Rua da Aroeira – Vale de Figueira (39.32372 -8.62243).",
"Descricao_Observacao": "Necessário substituir poste 9 metros da caixa 0202052. Poste com duas espias, necessário substituir uma delas para que fique corretamente na bissetriz. Tensionar corretamente cabos RAL e apear cabos R"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.679285,
39.228387
]
},
"properties": {
"Nemesis": "20DOI_SUBS042993",
"Estado": "G",
"CCO": "43",
"ACL": "43ST01",
"ACL_DESC": "(43ST01) SANTAREM",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "1",
"DOI_SUBS": "0",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "0",
"PosteM_10": "0",
"PosteM_12": "1",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "190.71",
"TM_Estado": "1358",
"Descricao_Orcamento": "(AT) - Rua da Imaculada Conceição S/N – Santarém. Coordenadas: 39.228387, -8.679285",
"Descricao_Observacao": "Substituir um poste de 9mt em mau estado de conservação (furado do Pica-pau)."
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.634911,
39.340345
]
},
"properties": {
"Nemesis": "20DOI_SUBS048112",
"Estado": "G",
"CCO": "43",
"ACL": "43AN02",
"ACL_DESC": "(43AN02) VALE FIGUEIRA",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "1",
"DOI_A6CC": "0",
"DOI_SUBS": "0",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "0",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "1",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "249.27",
"TM_Estado": "1342,5",
"Descricao_Orcamento": "(MJP) Tojosa (São Vicente do Paúl), nas coordenadas 39.340345 -8.634911",
"Descricao_Observacao": "Necessário substituir poste de 8m que se encontra todo furado pelo pica pau. O poste em questão é o poste do PD AA01001 de 43AN02."
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.712596,
39.306305
]
},
"properties": {
"Nemesis": "20DOI_SUBS060457",
"Estado": "G",
"CCO": "43",
"ACL": "43RM01",
"ACL_DESC": "(43RM01) ROMEIRA",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "1",
"DOI_A6CC": "0",
"DOI_SUBS": "0",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "1",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "1",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "283.09",
"TM_Estado": "1305,6",
"Descricao_Orcamento": "(TA) Rua de S. Brás , Casais de S. Brás ,Coord: 39.306305, -8.712596",
"Descricao_Observacao": "Traçado RAD antigo em postes de 8mt em que se verifica-se a necessidade de instalar um poste de madeira de 9mt em travessia de estrada, instalar 1 travessa, instalar 200mt de cabo Drop definitivamente passando pelo novo poste e apear poste desativado de 8"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.860203,
39.464981
]
},
"properties": {
"Nemesis": "20DOI_SUBS081862",
"Estado": "G",
"CCO": "43",
"ACL": "43AD03",
"ACL_DESC": "(43AD03) ALCANEDE",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "1",
"DOI_SUBS": "0",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "0",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "1",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "243.07",
"TM_Estado": "1245,5",
"Descricao_Orcamento": "(TA) Valverde - 39.464981, -8.860203",
"Descricao_Observacao": "43AD01GP310 - JSO42 - Poste A2 - Poste de 9m degradado que é necessário substituir"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.841953,
39.427161
]
},
"properties": {
"Nemesis": "20DOI_SUBS118230",
"Estado": "G",
"CCO": "43",
"ACL": "43AD01",
"ACL_DESC": "(43AD01) ALCANEDE",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "1",
"DOI_SUBS": "0",
"DOI_SUBC": "0",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "0",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "1",
"NR1_B125": "0",
"NR2_D400": "0",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "479.82",
"TM_Estado": "1152,3",
"Descricao_Orcamento": "(TA) Poste de PDO497, Rua da Piçarra, Mosteiros – Alcanede. Coordenadas: 39.427161, -8.841953 ",
"Descricao_Observacao": "Necessário criar NS para substituir poste de 9mt podre por poste de 12mt, colocar o novo poste na via publica junto ao muro e instalar espia. Segue em anexo o orçamento."
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-8.66215,
39.385651
]
},
"properties": {
"Nemesis": "20DOI_SUBS127368",
"Estado": "G",
"CCO": "43",
"ACL": "43PN01",
"ACL_DESC": "(43PN01) PERNES",
"Data_importacao": "2024-01-02 21:46:04",
"TM_Estado_Interv": "[720-%[",
"DOI_A6SC": "0",
"DOI_A6CC": "0",
"DOI_SUBS": "0",
"DOI_SUBC": "1",
"PosteM_7": "0",
"PosteM_8": "0",
"PosteM_9": "0",
"PosteM_10": "0",
"PosteM_12": "0",
"PosteM_15": "0",
"PosteB_8_450": "0",
"PosteB_9_450": "0",
"PosteB_9_800": "0",
"PosteB_9_1200": "0",
"PosteB_10_800": "0",
"PosteB_10_1800": "0",
"CVP_Redonda": "0",
"NR1_D400": "0",
"NR1_B125": "0",
"NR2_D400": "1",
"NR2_B125": "0",
"NR3_D400": "0",
"Trab_Fibra_Cabo": "0",
"Trab_Cobre_Cabo": "0",
"Trab_Fibra_Juntista": "0",
"Trab_Cobre_Juntista": "0",
"ValorProjeto": "164.42",
"TM_Estado": "1134,4",
"Descricao_Orcamento": "(TA) Rua Comendador José Gonçalves Pereira, 139 – Pernes: Coordenadas: 39.385651, -8.662150 ",
"Descricao_Observacao": "Apear dois postes de madeira onde foram colocados tês postes de betão e passar cabo RAD para os novos postes."
}
}
JS:
var selectCondition = [];
var selectLayer = [];
for (var i = 0; i < 35; i++) {
selectCondition[i] = false;
selectLayer[i] = L.layerGroup();
selectLayer[i].myId = i;
}
var baseMaps = {
"OSM": osm,
'Google Street': googleStreets,
"Google Satellite": googleSat,
};
var mcg = L.markerClusterGroup.layerSupport({
chunkedLoading: true,
chunkInterval: 100,
chunkProgress: updateProgressBar
})
var overlayMaps = {
'Todos': {
'DOI_A6SC':selectLayer[0],
'DOI_A6CC':selectLayer[1],
'DOI_SUBS':selectLayer[2],
'DOI_SUBC':selectLayer[3],
},
'Postes': {
'PosteM 7m': selectLayer[4],
'PosteM 8m': selectLayer[5],
'PosteM 9m': selectLayer[6],
'PosteM 10m': selectLayer[7],
'PosteM 12m': selectLayer[8],
'PosteM 15m': selectLayer[9],
'PosteB 8m 450Kg': selectLayer[10],
'PosteB 9m 450Kg': selectLayer[11],
'PosteB 9m 800Kg': selectLayer[12],
'PosteB 9m 1200Kg': selectLayer[13],
'PosteB 10m 800Kg': selectLayer[14],
'PosteB 10m 1800Kg': selectLayer[15]
},
'CVP´s': {
'CVP_Redonda': selectLayer[16],
'NR1_D400': selectLayer[17],
'NR1_B125': selectLayer[18],
'NR2_D400': selectLayer[19],
'NR2_B125': selectLayer[20],
'NR3_D400': selectLayer[21],
'NR3_B125': selectLayer[22]
},
'Tipo Trabalhos': {
'Trabalhos Fibra Cabo': selectLayer[23],
'Trabalhos Fibra Juntista': selectLayer[24],
'Trabalhos Cobre Cabo': selectLayer[25],
'Trabalhos Cobre Juntista': selectLayer[26]
},
'Antiguidade': {
'[000-015[': selectLayer[27],
'[015-030[': selectLayer[28],
'[030-060[': selectLayer[29],
'[060-120[': selectLayer[30],
'[120-280[': selectLayer[31],
'[280-360[': selectLayer[32],
'[360-720[': selectLayer[33],
'[720-%[': selectLayer[34]
}
};
var options = {
groupCheckboxes: false,
collapsed: false
};
L.control.groupedLayers(baseMaps, overlayMaps, options).addTo(map);
var report = L.geoJSON(null, {
filter: function(feature, layer) {
var cond0 = ((feature.properties.DOI_A6SC == '1') && selectCondition[0]);
var cond1 = ((feature.properties.DOI_A6CC == '1') && selectCondition[1]);
var cond2 = ((feature.properties.DOI_SUBS == '1') && selectCondition[2]);
var cond3 = ((feature.properties.DOI_SUBC == '1') && selectCondition[3]);
var cond4 = ((feature.properties.PosteM_7 == '1') && selectCondition[4]);
var cond5 = ((feature.properties.PosteM_8 == '1') && selectCondition[5]);
var cond6 = ((feature.properties.PosteM_9 == '1') && selectCondition[6]);
var cond7 = ((feature.properties.PosteM_10 == '1') && selectCondition[7]);
var cond8 = ((feature.properties.PosteM_12 == '1') && selectCondition[8]);
var cond9 = ((feature.properties.PosteM_15 == '1') && selectCondition[9]);
var cond10 = ((feature.properties.PosteB_8_450 == '1') && selectCondition[10]);
var cond11 = ((feature.properties.PosteB_9_450 == '1') && selectCondition[11]);
var cond12 = ((feature.properties.PosteB_9_800 == '1') && selectCondition[12]);
var cond13 = ((feature.properties.PosteB_9_1200 == '1') && selectCondition[13]);
var cond14 = ((feature.properties.PosteB_10_800 == '1') && selectCondition[14]);
var cond15 = ((feature.properties.PosteB_10_1800 == '1') && selectCondition[15]);
var cond16 = ((feature.properties.CVP_Redonda == '1') && selectCondition[16]);
var cond17 = ((feature.properties.NR1_D400 == '1') && selectCondition[17]);
var cond18 = ((feature.properties.NR1_B125 == '1') && selectCondition[18]);
var cond19 = ((feature.properties.NR2_D400 == '1') && selectCondition[19]);
var cond20 = ((feature.properties.NR2_B125 == '1') && selectCondition[20]);
var cond21 = ((feature.properties.NR3_D400 == '1') && selectCondition[21]);
var cond22 = ((feature.properties.NR3_B125 == '1') && selectCondition[22]);
var cond23 = ((feature.properties.Trab_Fibra_Cabo == '1') && selectCondition[23]);
var cond24 = ((feature.properties.Trab_Fibra_Juntista == '1') && selectCondition[24]);
var cond25 = ((feature.properties.Trab_Cobre_Cabo == '1') && selectCondition[25]);
var cond26 = ((feature.properties.Trab_Cobre_Juntista == '1') && selectCondition[26]);
var cond27 = ((feature.properties.TM_Estado_Interv == '[000-015[') && selectCondition[27]);
var cond28 = ((feature.properties.TM_Estado_Interv == '[015-030[') && selectCondition[28]);
var cond29 = ((feature.properties.TM_Estado_Interv == '[030-060[') && selectCondition[29]);
var cond30 = ((feature.properties.TM_Estado_Interv == '[060-120[') && selectCondition[30]);
var cond31 = ((feature.properties.TM_Estado_Interv == '[120-280[') && selectCondition[31]);
var cond32 = ((feature.properties.TM_Estado_Interv == '[280-360[') && selectCondition[32]);
var cond33 = ((feature.properties.TM_Estado_Interv == '[360-720[') && selectCondition[33]);
var cond34 = ((feature.properties.TM_Estado_Interv == '[720-%[') && selectCondition[34]);
return (cond0 || cond1 || cond2 || cond3 || cond4 || cond5 || cond6 || cond7 || cond8 || cond9 || cond10
|| cond11 || cond12 || cond13 || cond14 || cond15 || cond16 || cond17 || cond18 || cond19
|| cond20 || cond21 || cond22 || cond23 || cond24 || cond25 || cond26 || cond27 || cond28
|| cond29 || cond30 || cond31 || cond32 || cond33 || cond34);
},
pointToLayer: function (feature, latlng) {
return new L.marker(latlng, {
icon: myIcon, draggable: false});
},
onEachFeature: setPopup_nemesis_materiais
});
mcg.checkIn([
report
]);
var geojsonData;
var url = './markers/markers.json';
fetch(url)
.then(response => {
return response.json();
})
.then(json => {
geojsonData = json;
map.addLayer(report);
selectLayer[0].addTo(map);
selectLayer[1].addTo(map);
selectLayer[2].addTo(map);
selectLayer[3].addTo(map);
mcg.addTo(map);
});
map.on('overlayadd', function(evt) {
var i = evt.layer.myId;
selectCondition[i] = true;
report.clearLayers();
report.addData(geojsonData);
});
map.on('overlayremove', function(evt) {
var i = evt.layer.myId;
selectCondition[i] = false;
report.clearLayers();
report.addData(geojsonData);
});
leaflet-groupedlayercontrol
in your question. Please edit your question and add code of how are you trying to use this control. Also, what aremcg
andselectLayer
and where are these coming from? Please add relevant code.DOI_A6SC
,DOI_A6CC
,DOI_SUBS
orDOI_SUBC
property. They do have propertiesPostM_8
,PostM_9
,PostM_10
,PostM_12
,PostB_8_450
andPoseM_9
, but these are not used in the code. Please edit your question and add sample GeoJSON data that matches conditions in your code.