fix(data): light info (LITCHR/range/height) en boyas y balizas de orilla

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)
This commit is contained in:
2026-04-30 13:55:08 -04:00
parent 025e5e5213
commit 293b0c45ef
2 changed files with 56 additions and 18 deletions
+4 -1
View File
@@ -271,7 +271,10 @@ def _parse_cell(enc_path: Path) -> list[dict]:
"colours": colours, # list of S-57 colour codes
"colour_code": colours[0] if colours else None, # primary colour
}
if category == "light" or layer_name in ("BOYLAT","BOYCAR","BOYISD","BOYSPP","BOYSAW"):
# Extract light description for ALL navigational aids and lights.
# Previously only BOY* layers were included, so BCNLAT/BCNWTW/LNDMRK
# silently lost their LITCHR/SIGPER/VALNMR — fixed here.
if category in ("light", "buoy", "beacon", "landmark"):
props["light_desc"] = _light_desc(row)
if layer_name.startswith("BOY") or layer_name.startswith("BCN"):
shape = _safe(row.get("BOYSHP"))