La celda CO1CO01M es band-1 por convencion IHO (CO=Colombia, 1=Overview).
Con maxZoom=10 para band-1, la carta desaparecia completamente a zoom>10.
Solucion: todas las bandas tienen maxZoom=24. La logica _recomputeHiddenCells
(que ya maneja solo cuando una celda de mayor resolucion domina el viewport)
se encarga de ocultar las celdas de menor resolucion cuando hay una mejor.
Esto funciona para NOAA Miami (band-1 se oculta cuando band-5 cubre 40%+)
y para Barranquilla (band-0/1, sin rival, siempre visible a cualquier zoom).
frontend/js/map.js:
- Reemplaza merge exacto por merge de proximidad (~50m) en loadChartFeatures
para capturar pares LIGHTS/BOYLAT con coordenadas no exactamente iguales
- Guard null-canvas en encStyle con fallback visible + console.warn
- Mejora JS de debug: log layer/aidType cuando usa fallback
backend/services/chart_manager.py:
- Expande extraccion de light_desc a category buoy+beacon+landmark
(antes solo BOYLAT/BOYCAR; BCNLAT/BCNWTW/LNDMRK perdian LITCHR silenciosamente)
- _recomputeHiddenCells: solo considera celdas 'dominantes' que esten
dentro de su propio rango de zoom. Sin esto, band-5 (Harbour, min=10)
ocultaba band-4 (Approach) incluso a zoom 9.x donde band-5 es invisible
-> resultado: ninguna carta mostraba.
- toggle-seamap: despues del toggle llama _recomputeHiddenCells +
src.changed() en requestAnimationFrame para que el estado de celdas
ENC se recalcule y nunca quede stale.
- fallback BUOY_GENERIC: reemplaza el circulo 14x14 (vieja simbologia
minuscula) por _encBuoyCanvas con boyshp=4 (pillar) para que cualquier
boya sin boyshp explicito igual reciba icono 3D correcto.