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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user