# NavSea 原始样式与使用版样式渲染变更审计

范围：唐津中心 10 海里 AOI  
原始样式：[style.json](/root/weather/src/pbf/style.json)  
使用版样式：[navsea-delivery.json](/home/wwwroot/newpec/navsea-delivery.json)  
使用版瓦片：`/home/wwwroot/pbf-delivery-karatsu-10nm`

## 1. 结论

结合原始 `style.json` 和使用版样式来看，渲染的“对象内容”没有减少，但渲染“表达方式”已经明显改变。

最核心的判断是：

- AOI 内真实存在的 `37` 个 `source-layer`，原始样式和使用版样式都覆盖到了
- 但样式层组织从 `87` 层收成了 `50` 层
- 很多 `source-layer` 的渲染被重新归并、重命名、重分层
- 样式直接依赖的旧字段减少了，新版开始混合使用旧字段和新语义字段

一句话总结：

> 这不是“少画了东西”，而是“同一批东西换了一套渲染组织方式”。

## 2. 总体统计

### 2.1 样式规模

- 原始样式层数：`87`
- 使用版样式层数：`50`

### 2.2 AOI 内实际图层覆盖

- AOI 内实际存在的 `source-layer`：`37`
- 原始样式覆盖到的 AOI `source-layer`：`37`
- 使用版样式覆盖到的 AOI `source-layer`：`37`

结论：

- 在唐津 10 海里范围内，使用版并没有漏掉某个实际存在的 `source-layer`
- 变化主要不是“有没有画”，而是“怎么画”

## 3. 字段依赖变化

### 3.1 原始样式直接读取的字段数

原始样式通过 `["get", ...]` 直接依赖的字段共 `21` 个，主要包括：

- `分類番号`
- `名称`
- `名称補助`
- `形状分類番号`
- `日本語地名`
- `明弧/分孤`
- `水深値(m)`
- `灯略記`
- `灯色`
- `英文字地名`
- `表示位置`
- `表示用番号`
- `角度`
- `高さ(m)`
- `高さ/深度(m)`
- `cog`
- `delay`
- `hdg`
- `length`
- `rot`
- `sog`

### 3.2 使用版样式直接读取的字段数

使用版样式直接依赖的字段共 `13` 个：

- `canonical_object_type`
- `分類番号`
- `名称`
- `名称補助`
- `形状分類番号`
- `日本語地名`
- `水深値(m)`
- `灯略記`
- `灯色`
- `英文字地名`
- `表示位置`
- `表示用番号`
- `高さ/深度(m)`

### 3.3 差异判断

使用版不再直接读取这些旧字段：

- `明弧/分孤`
- `角度`
- `高さ(m)`
- `cog`
- `delay`
- `hdg`
- `length`
- `rot`
- `sog`

同时新增了新语义字段依赖：

- `canonical_object_type`

结论：

- 使用版已经开始摆脱部分旧海图编码和动态字段依赖
- 但当前仍保留了对 `分類番号`、`形状分類番号`、`表示用番号`、`灯色` 等旧字段的依赖

## 4. AOI 内渲染组织变化

### 4.1 没变的部分

- 两边都覆盖了 AOI 内的全部 `37` 个 `source-layer`
- 本 AOI 内不存在“旧样式能画、使用版完全不画”的数据层

### 4.2 变化最大的部分

以下 `source-layer` 在使用版里被显著重组了：

- `L概略等深線`
  - 原始样式：`8` 个样式层
  - 使用版：`1` 个样式层 `depth-contours-major`
- `L等深線`
  - 原始样式：`5` 个样式层
  - 使用版：`2` 个样式层 `depth-contours` + `depth-contour-labels`
- `P基本線`
  - 原始样式：`4` 个样式层
  - 使用版：`6` 个样式层
  - 说明：使用版把同一面层按语义拆成了多种面表现，比如 `sea-area-fill`、`tidal-flat`、`river-water`、`unsurveyed-area`、`shoal-danger-area`
- `p航路標識群`
  - 原始样式：`5` 个样式层
  - 使用版：`4` 个样式层
- `p底質`
  - 原始样式：`1` 个样式层
  - 使用版：`2` 个样式层
  - 说明：使用版把底质本体和文字拆开了

### 4.3 被简化的部分

这些层在使用版中从多层压缩为单层：

- `P橋りょう等構造物`：`2 -> 1`
- `P漁具定置箇所`：`2 -> 1`
- `P潜堤`：`2 -> 1`
- `p地名`：`2 -> 1`
- `p地名陸`：`2 -> 1`
- `p高さ制限`：`2 -> 1`

结论：

- 使用版不是简单复制旧样式
- 使用版对不少对象做了“压层”和“归并”
- 同时也对少数核心面层做了“按语义细分”

## 5. 典型图层对比

### 5.1 `L739`

- 原始样式：`#b#d2#d5#d10#BK#at#L739`
- 使用版：`water-boundary`

变化：

- 从旧式缩尺/颜色编码命名，变成语义命名

### 5.2 `L741`

- 原始样式：`#b#d2#d5#d10#BS#at#L741`
- 使用版：`regulatory-boundary`

变化：

- 图层语义比旧版更清楚

### 5.3 `L海底地形`

- 原始样式：`#b#海底地形`、`#b#C000`
- 使用版：`bathymetry-support`、`bathymetry-depth-labels`

变化：

- 使用版明确拆成“支撑线”和“水深数字”

### 5.4 `L等深線`

- 原始样式：`#b#L等深線`、`#d2#L等深線`、`#d5#L等深線`、`#d10#L等深線`、`#b#d2#d5#d10#C140`
- 使用版：`depth-contours`、`depth-contour-labels`

变化：

- 原始样式按缩尺和强调层堆叠
- 使用版变成“线 + 标注”的直接语义拆分

### 5.5 `P基本線`

- 原始样式：`#b#at#P基本線`、`#d2#at#P基本線`、`#d5#at#P基本線`、`#d10#at#P基本線`
- 使用版：
  - `sea-area-fill`
  - `tidal-flat`
  - `river-water`
  - `unsurveyed-area`
  - `shoal-danger-area`
  - `coast-structures-area`

变化：

- 使用版在这一层上变化最大
- 同一个原始面层被拆成多个语义面层
- 视觉表达会比旧样式更“语义化”

## 6. 原始样式中存在、使用版中不再出现的 `source-layer`

原始样式定义了 `57` 个 `source-layer`，使用版只有 `37` 个。

但这里要注意：

- 这 `20` 个差异层并不是“使用版漏画了 AOI 数据”
- 它们是原始样式里定义过、但在当前 AOI 与当前使用版中未出现的层

主要包括：

- `L700`
- `L701`
- `L702`
- `L725`
- `L738`
- `L740`
- `L748`
- `L749`
- `L危険界`
- `L航路`
- `P721ククリ`
- `P730ククリ`
- `P投錨注意障害物透明`
- `P施設・境界線等透明`
- `P航路`
- `P航路ククリ`
- `P誘導線ククリ`
- `dummy`
- `pパイロットステーション`
- `p航路境界等`

结论：

- 这是“原始样式定义范围更大”
- 不是“使用版把 AOI 内实际对象删掉了”

## 7. 最终判断

结合原始样式和使用版样式来看，渲染变化可以归纳成三类：

### 7.1 没变的

- AOI 内实际要画的数据层都还在
- 使用版没有丢掉任何 AOI 内真实存在的 `source-layer`

### 7.2 变了但不属于缺失

- 图层命名体系从旧的技术型命名变成了新的语义命名
- 很多对象从“按缩尺堆层”变成“按语义拆层”
- 样式总层数明显减少
- 旧字段依赖减少，新语义字段开始进入样式

### 7.3 需要继续注意的

- 使用版虽然是交付版，但还没有完全摆脱旧字段体系
- 某些旧样式细节如果依赖 `明弧/分孤`、`角度`、`高さ(m)` 等字段，在使用版里会弱化或消失
- 现在的变化更偏“渲染体系重构”，不是“数据减少”

一句话总结：

> 从原始 `style.json` 切到使用版样式后，唐津 10 海里范围内“画的对象”没有少，但“画法”已经发生了统计上明确可见的重构。
