Files
CM95/docs/CM95_21张PBF对照审计_v1.md

85 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CM95 21 张 PBF 与现有 NavSea/NEWPEC 对照审计 v1
## 1. 结论
PBF-03 v1.1 的 MVT 结构、extent、tile buffer、FID 稳定性和 scale-region 机制通过;但发现两个正式语义/样式契约问题,因此 v1.1 不冻结,进入 v1.2。
## 2. 已通过项目
- 新 delivery 与参考 AOI 均为完全相同的 21 个 `z/x/y` 路径。
- MVT layer version 为 2。
- extent 与当前工作参考一致:z10/z11 为 4096,z12 为 1048576。
- 所有 geometry command 可解析;无空 geometry、无截断 geometry。
- 新 PBF 坐标均落在现有 8px buffer 契约内。
- delivery feature ID 均能在同 tile、同 source-layer 的 engineering PBF 中找到。
- 以 `(source_id, output source-layer)` 检查,共 6067 个键;其中 890 个跨 tile 重复出现,MVT ID 不稳定数为 0。
- 同一 tile/source-layer 内未发现重复 MVT ID。
- scale-region 实现采用 `coverage.difference(occupied)`,详细比例尺优先、低比例尺只补空缺。
- 对多比例尺并存的点图层做 30m 内近重复检查,未发现跨比例尺重复点。
- 21 张 delivery 报告:hard-gate unmapped = 0;nav name conflicts = 0。
## 3. 问题 A:DEPARE 非标准水深区间不被现有 style 消费
v1.1 会直接把 CM95 `DRVAL1/DRVAL2` 拼成 `chart_fill_style`。当前 NavSea style 只接受固定区间,所以以下 24 个水深面在现有 style 下不会显示:
| 值 | 数量 |
|---|---:|
| depth_zone_13-20m | 7 |
| depth_zone_7.5-10m | 7 |
| depth_zone_20-50m | 7 |
| depth_zone_12-20m | 1 |
| depth_zone_9.6-10m | 1 |
| depth_zone_14-20m | 1 |
v1.2 修正:将任意 CM95 深度范围归一到“能够完整包含原范围的最小现有 NavSea 区间”。例如:
- 7.5–10m → 5–10m
- 9.6–10m → 5–10m
- 12–20m / 13–20m / 14–20m → 10–20m
- 20–50m → 20–100m
原始 `DRVAL1/DRVAL2` 仍保留在 engineering trace/source attributes,不修改 MySQL。
## 4. 问题 B:SOUNDG 与底质文字共用过宽 style filter
v1.1 在 21 张 delivery PBF 中输出的 `seabed_text_point`:
- z10:spot_sounding 71,seabed_material 9,seabed_area 1
- z11:spot_sounding 590,seabed_material 83,seabed_area 2
- z12:spot_sounding 2269,seabed_material 250,seabed_area 10
参考 PBF 的 `seabed_text_point` 只在 z12 出现,共 273 个,全部为 `canonical_object_type=seabed_material`。
当前 `bottom-material-labels` 仅判断 `has(chart_label_text)`,因此 v1.1 的 SOUNDG 在 z11/z12 会被当作底质文字直接显示,并且 `text-allow-overlap=true`,会造成测深数字过密。
v1.2 不改变 source-layer,仍使用 `seabed_text_point`,但提供最小 style 扩展:
1. `bottom-material-labels` 排除 `spot_sounding`;
2. 新增 `spot-sounding-labels`;
3. spot sounding 从 z12 开始显示;
4. `text-allow-overlap=false`,由 MapLibre 的符号碰撞机制控制密度。
这样不增加新的正式 source-layer,也不丢 SOUNDG hard-gate 数据。
## 5. 参考数据差异,不判为生成器错误
参考 NEWPEC 与 CM95 是不同上游数据,因此 Feature 数量不要求一致。例如:
- 新 z12:4770 个 feature;参考 z12:11383 个 feature。
- 参考含大量 `onshore_structure_line`、`baseline_outline`、`hole_area` 等;CM95 当前映射及源对象组成不同。
- navigation_marks 全 AOI 数量接近:CM95 新 PBF 118,参考 123。
- CM95 直接助航名称明显少于参考,这是源数据可证明关系差异;不得用参考名称反灌。
## 6. v1.2 冻结门槛
重新生成 21 张后必须满足:
- build report audit:PASS;
- hard-gate unmapped = 0;
- nav name conflicts = 0;
- style contract audit:`contract_unmatched_count = 0`;
- z10/z11/z12 extent 不变;
- FID 稳定性不退化;
- SOUNDG 在 z11 属于有意 zoom-hidden,在 z12 进入独立 sounding style;
- 不修改 importer、geometry 或 MySQL schema。