fix(mapa): ocultar circulos Airbnb cuando la variable no es de scope airbnb

Cuando el usuario seleccionaba una variable de consumo (p10, p50, ratio,
viviendas_totales), los circulos de los clusters de Airbnb seguian
mostrando el mismo dato (count de listings, p.ej. 212, 76, 15),
creando confusion porque el usuario pensaba que esos numeros eran
el valor de la variable de consumo elegida.

Ahora applyVariable auto-oculta los 3 layers de airbnb-clusters
cuando la variable no es de scope 'airbnb'. El toggle manual
'Punts Airbnb (clusters)' se sincroniza automaticamente con el estado
real: solo se muestra cuando la variable es Airbnb.
This commit is contained in:
2026-07-15 17:10:38 +02:00
parent d0c80d9cf5
commit 05e3d48922
+12
View File
@@ -544,6 +544,18 @@ const popupTitleTmpl = t(lang, "map.popup_title");
map.setPaintProperty("secciones-hut-fill", "fill-color", NO_DATA_COLOR);
}
// Auto-ocultar círculos de Airbnb cuando la variable no es Airbnb.
// Antes: los círculos mostraban siempre el mismo dato (count de listings)
// independientemente de la variable, lo que confundía al usuario.
const showAirbnbClusters = cfg.scope === "airbnb";
const clusterVis: "visible" | "none" = showAirbnbClusters ? "visible" : "none";
["airbnb-clusters", "airbnb-cluster-count", "airbnb-unclustered"].forEach((id) => {
if (map.getLayer(id)) map.setLayoutProperty(id, "visibility", clusterVis);
});
// Mantener el toggle visual en sync con la realidad
const clusterToggle = document.getElementById("toggle-clusters") as HTMLInputElement | null;
if (clusterToggle) clusterToggle.checked = showAirbnbClusters;
updateLegend(cfg);
const desc = document.getElementById("variable-desc");
if (desc) desc.textContent = cfg.desc;