Filtrer les couches retirées du flux /api/tiles et de la fusion en direct
Au rechargement de la page, l'index obsolète du worker (16 couches) polluait le /api/tiles fusionné et mergeTilesData réajoutait les couches retirées au menu. viz_meta est désormais filtré aux couches du panneau (PANEL_VIZ) côté serveur, et le panneau client est figé au chargement (clés VIZ_META initiales) : aucun flux ne peut réintroduire de couche hors panneau, même avec un index distant périmé.
This commit is contained in:
@ -3263,6 +3263,10 @@ function finishRunningTasks(d) {
|
||||
// l'<img> se recharge et le nouveau rendu remplace l'ancien à l'écran —
|
||||
// cache navigateur compris.
|
||||
let liveTilesStamp = null;
|
||||
// Le panneau est figé au chargement (VIZ_META initial) : le flux /api/tiles
|
||||
// fusionne l'index du worker, qui peut encore proposer des couches retirées
|
||||
// (index obsolète) — on n'ajoute au menu que des clés déjà connues.
|
||||
const PANEL_KEYS = new Set(Object.keys(VIZ_META));
|
||||
function mergeTilesData(data) {
|
||||
if (!data || !Array.isArray(data.tiles)) return;
|
||||
const byKey = new Map();
|
||||
@ -3296,7 +3300,7 @@ function mergeTilesData(data) {
|
||||
let metaChanged = false;
|
||||
if (data.viz_meta) {
|
||||
for (const k of Object.keys(data.viz_meta)) {
|
||||
if (VIZ_META[k]) continue;
|
||||
if (!PANEL_KEYS.has(k) || VIZ_META[k]) continue;
|
||||
VIZ_META[k] = data.viz_meta[k];
|
||||
if (!state.layers.order.includes(k)) {
|
||||
state.layers.order.push(k);
|
||||
|
||||
Reference in New Issue
Block a user