85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# 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。
|