2.1 KiB
2.1 KiB
CM95 S-52 危险物阶段报告 v1
范围
本阶段沿 OpenCPN S-52 流程实现危险物条件符号化:
OBSTRN04UDWHAZ03WRECKS02- Point / Line / Area 三种几何分支
- DEPARE / DRGARE 空间关联上下文
基线仍为 Linux 项目 /root/sourceserver/cm95。
正式 production release 未修改。
实现原则
危险物不能只按对象自身属性选图标。
Builder 先收集当前 scale 的 DEPARE / DRGARE 几何与 DRVAL1/DRVAL2,
只对 OBSTRN / UWTROC / WRECKS 做空间 intersects,再把关联水深上下文交给 CSP。
UDWHAZ03 根据 safety contour、对象推导深度、EXPSOU、WATLEV 和关联水深区判断 isolated danger。
福冈湾 z12 实测
Tile:12/3531/1641
- 危险物相关 Feature:40
WRECKS:21UWTROC:16OBSTRN:3OBSTRN04已解析:19 / 19- 未解析
OBSTRN04:0 - 本 tile isolated danger:0
HAZARD_TILE_CONTRACT=PASS
本 tile 实际产生的主要符号包括:
FOULGND1DANGER51DANGER52UWTROC03UWTROC04LNDARE01
危险物自带的 sounding 继续复用 SOUNDG03 / SNDFRM02 符号序列。
浏览器验收
测试页:presentation_v7.html
Linux X11 Chrome 实际 MapLibre 页面验收:
- 页面标题进入
READY CM95 福冈湾 S52 - HUD 查询显示危险物 S-52:44(
querySourceFeatures运行时视图计数;PBF 权威去重计数仍为 40) OBSTRN04 已解析:19isolated danger:0- LIGHTS05、SOUNDG、深度色、等深线仍保持正常
已直接截取 Chrome 窗口 fukuoka_hazard_v7_gui.png 并人工查看,危险物 S-52 symbol 已实际绘制,不是仅写入 PBF 属性。Headless Chrome 在本机当前 WebGL 环境未触发 MapLibre load 事件,因此不把 headless 空白截图作为验收依据。
已知资源闭合缺口
OpenCPN 当前 s52cnsy.cpp 的 OBSTRN04 会引用 DANGER53,
但当前 chartsymbols.xml 中没有同名 Symbol 定义。
福冈湾本 tile 未触发该分支,因此不阻塞本阶段。
CM95 对该缺口保持 fail-closed,不自行创造替代图标。