feat: add Kyushu semantic icon test delivery

This commit is contained in:
OpenAI Codex
2026-08-06 17:44:22 +08:00
parent 35d713993f
commit e52328b3f5
18 changed files with 10763 additions and 0 deletions

View File

@@ -0,0 +1,378 @@
{
"label": "kyushu-semantic-icon-v1",
"target_root": "/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806",
"source_root": "/home/wwwroot/newpec/exported_auto/tile.mapple-on.jp__newpec-mvt-20260106__z___x___y_.pbf/tiles",
"tile_count": 4707,
"outside_extent_tiles": 4707,
"source_extent_mismatch_tiles": 0,
"fixable_from_source_tiles": 0,
"repaired_tiles": 0,
"zoom_summary": {
"5": {
"tile_count": 2,
"outside_extent_tiles": 2,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 2
}
},
"6": {
"tile_count": 4,
"outside_extent_tiles": 4,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 4
}
},
"7": {
"tile_count": 9,
"outside_extent_tiles": 9,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 9
}
},
"8": {
"tile_count": 20,
"outside_extent_tiles": 20,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 20
}
},
"9": {
"tile_count": 70,
"outside_extent_tiles": 70,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 70
}
},
"10": {
"tile_count": 234,
"outside_extent_tiles": 234,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 234
}
},
"11": {
"tile_count": 884,
"outside_extent_tiles": 884,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"4096": 884
}
},
"12": {
"tile_count": 3484,
"outside_extent_tiles": 3484,
"source_extent_mismatch_tiles": 0,
"extent_counts": {
"1048576": 3484
}
}
},
"sample_tiles": [
{
"tile": "10/876/405.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/406.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/407.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/408.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/409.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/410.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/411.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/412.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/413.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/414.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/415.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/416.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/417.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/418.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/419.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/420.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/421.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/876/422.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/405.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/406.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/407.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/408.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/409.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/410.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/411.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/412.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/413.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/414.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/415.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
},
{
"tile": "10/877/416.pbf",
"extent_values": [
4096
],
"source_extent": 4096,
"outside_extent": true,
"max_overflow": 80,
"fixable_from_source": false
}
]
}

View File

@@ -0,0 +1,314 @@
# kyushu-semantic-icon-v1 几何 / Extent / Native 风险审计
## 范围
- target root: `/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806`
- source root: `/home/wwwroot/newpec/exported_auto/tile.mapple-on.jp__newpec-mvt-20260106__z___x___y_.pbf/tiles`
- tiles: `4707`
- repaired tiles: `0`
## 总体结论
- 坐标超当前 extent 的瓦片数:`4707`
- 与源瓦片 extent 不一致的瓦片数:`0`
- 可直接按源 extent 修复的瓦片数:`0`
## Zoom 汇总
### z5
- tiles: `2`
- outside extent: `2`
- source mismatch: `0`
- extent counts: `{4096: 2}`
### z6
- tiles: `4`
- outside extent: `4`
- source mismatch: `0`
- extent counts: `{4096: 4}`
### z7
- tiles: `9`
- outside extent: `9`
- source mismatch: `0`
- extent counts: `{4096: 9}`
### z8
- tiles: `20`
- outside extent: `20`
- source mismatch: `0`
- extent counts: `{4096: 20}`
### z9
- tiles: `70`
- outside extent: `70`
- source mismatch: `0`
- extent counts: `{4096: 70}`
### z10
- tiles: `234`
- outside extent: `234`
- source mismatch: `0`
- extent counts: `{4096: 234}`
### z11
- tiles: `884`
- outside extent: `884`
- source mismatch: `0`
- extent counts: `{4096: 884}`
### z12
- tiles: `3484`
- outside extent: `3484`
- source mismatch: `0`
- extent counts: `{1048576: 3484}`
## 代表问题样本
### `10/876/405.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/406.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/407.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/408.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/409.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/410.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/411.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/412.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/413.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/414.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/415.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/416.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/417.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/418.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/419.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/420.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/421.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/876/422.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/405.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/406.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/407.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/408.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/409.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/410.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/411.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/412.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/413.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/414.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/415.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`
### `10/877/416.pbf`
- extent values: `[4096]`
- source extent: `4096`
- outside extent: `True`
- max overflow: `80`
- fixable from source: `False`

View File

@@ -0,0 +1,177 @@
{
"version": "kyushu-semantic-icon-v1-20260806",
"source_root": "/home/wwwroot/pbf-delivery-full-20260418-rebuild",
"target_root": "/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806",
"bbox": [
128.0,
30.0,
132.5,
34.9
],
"zooms": [
5,
6,
7,
8,
9,
10,
11,
12
],
"tiles": 4707,
"tiles_rewritten": 1340,
"candidate_tiles": 1343,
"features_changed": 40131,
"old_values": {
"symbol-daytime-301": 2536,
"symbol-daytime-308": 33,
"symbol-daytime-428": 13416,
"symbol-daytime-30500003": 165,
"symbol-daytime-303": 4993,
"symbol-daytime-327": 626,
"symbol-daytime-310": 1833,
"symbol-daytime-30500001": 25,
"symbol-daytime-320": 959,
"symbol-daytime-321": 290,
"symbol-daytime-429": 256,
"symbol-daytime-413": 187,
"symbol-daytime-325": 38,
"symbol-daytime-323": 77,
"symbol-daytime-30700003": 24,
"symbol-daytime-30500002": 16,
"symbol-daytime-335359": 12,
"symbol-daytime-405": 5329,
"symbol-daytime-412": 50,
"symbol-daytime-719": 54,
"symbol-daytime-410": 10
},
"unknown_old_values_after_rewrite": {},
"icon_counts": {
"lt_hbr": 2536,
"mk_lead_v": 33,
"hz_foul": 3598,
"hz_reef": 6659,
"lt_lead_c": 165,
"lm_mtn": 2059,
"hz_overfall": 912,
"lt_min": 4993,
"bu_lat": 626,
"lt_bcn": 1833,
"lm_chim": 1907,
"lm_twr": 2527,
"hz_seaweed": 470,
"lt_lead_a": 25,
"bu_lit": 959,
"lm_mar": 121,
"lm_fish": 846,
"lm_cus": 85,
"lm_mon": 42,
"bu_gen": 290,
"hz_wreck_survey": 432,
"hz_sandwave": 662,
"lm_ctrl": 28,
"bu_can": 38,
"hz_outfall": 174,
"hz_danger_clear": 26,
"bu_pil": 77,
"lm_prom": 8,
"hz_whirl": 27,
"mk_lead_c": 24,
"hz_reef_danger": 25,
"lt_lead_b": 16,
"mk_vais": 12,
"fac_fishport": 1164,
"hz_rock_awash": 1397,
"hz_rock_sub": 3932,
"hz_danger_iso": 212,
"fac_port": 261,
"hz_tower": 57,
"hz_wreck_sub": 50,
"fac_seastation": 48,
"hz_dolphin": 205,
"fac_fisherina": 11,
"fac_marina": 95,
"an_quar": 33,
"hz_wreck_hull": 10,
"hz_pile": 340,
"hz_obst": 60,
"an_restrict": 2,
"an_no_anchor": 4,
"an_desig": 15
},
"arc_counts": {
"arc_open_YW": 204,
"arc_YW": 977,
"arc_G": 610,
"arc_R": 769
},
"sprite": {
"added": {
"lt_cst": "coastal_lighthouse",
"lt_hbr": "harbor_lighthouse",
"lt_bkw": "breakwater_lighthouse",
"lt_min": "light_minor",
"lt_lead_a": "leading_light_variantt_30500001",
"lt_lead_b": "leading_light_variantt_30500002",
"lt_lead_c": "leading_light_variantt_30500003",
"lt_up_G": "symbol-daytime-30700001",
"lt_up_R": "symbol-daytime-30700002",
"mk_lead_c": "leading_mark_variantt_30700003",
"mk_lead_v": "leading_mark_variantt_308",
"lt_bcn": "light_beacon",
"bu_lit": "buoy_light",
"bu_gen": "buoy_generic",
"bu_pil": "buoy_pillar",
"bu_can": "buoy_can",
"bu_lat": "buoy_lattice",
"mk_vais": "nav_mark_vais",
"hz_rock_awash": "rock_exposed_drying_awash_group",
"hz_rock_sub": "sunken_rock",
"hz_danger_clear": "cleared_danger_object",
"hz_danger_iso": "isolated_danger",
"hz_wreck_hull": "wreck_hull_exposed",
"hz_wreck_sub": "wreck_fully_submerged_dangerous",
"hz_wreck_survey": "wreck_surveyed",
"hz_foul": "foul_ground",
"hz_sandwave": "sand_wave",
"hz_overfall": "tide_rips_overfalls",
"hz_whirl": "eddy_whirlpool",
"hz_seaweed": "seaweed",
"hz_obst": "obstruction",
"hz_reef": "fish_reef",
"hz_reef_danger": "fish_reef_dangerous",
"hz_tower": "tower_yagura_observation_platform",
"hz_pile": "bollard_pile_stake",
"hz_dolphin": "dolphin_structure",
"hz_outfall": "subsea_installation_outfall_intake",
"lm_chim": "symbol-daytime-640",
"lm_twr": "symbol-daytime-650",
"lm_mar": "symbol-daytime-660",
"lm_fish": "symbol-daytime-661",
"lm_cus": "symbol-daytime-660",
"lm_prom": "symbol-daytime-680",
"lm_mtn": "symbol-daytime-681",
"lm_ctrl": "symbol-daytime-682",
"lm_mon": "symbol-daytime-698",
"an_quar": "anchorage_quarantine",
"an_desig": "anchorage_designated",
"an_restrict": "restriction_area_group",
"an_no_anchor": "anchoring_prohibited",
"fac_port": "port_general_small_harbor_group",
"fac_fishport": "fishing_port",
"fac_marina": "marina",
"fac_fisherina": "fisherina",
"fac_seastation": "sea_station_umi_no_eki",
"fac_pilot": "pilot_station",
"tide_spot": "tidespot-daytime",
"fl_G": "light_flare_green",
"fl_R": "light_flare_red",
"fl_YW": "light_flare_yellow_white"
},
"fallbacks": {
"lm_cus": "symbol-daytime-660"
}
},
"style": "/root/sourceserver/pbf/src/pbf/style.navsea-delivery-kyushu-semantic-icon-v1.json",
"newpec_style": "/root/sourceserver/pbf/src/pbf/style.navsea-newpec-kyushu-icon-test-v1.json"
}

View File

@@ -0,0 +1,46 @@
# 九州语义图标替换测试版 v1
- PBF 来源:`/home/wwwroot/pbf-delivery-full-20260418-rebuild`
- PBF 输出:`/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806`
- 范围:`(128.0, 30.0, 132.5, 34.9)`
- zoom`5-12`
- 瓦片数:`4707`
- 重写瓦片:`1340`
- 改动 feature`40131`
- sprite`/mnt/sda1/www/newpec/sprite-kyushu-semantic-icon-v1-20260806`
- delivery style`/root/sourceserver/pbf/src/pbf/style.navsea-delivery-kyushu-semantic-icon-v1.json`
- newpec style`/root/sourceserver/pbf/src/pbf/style.navsea-newpec-kyushu-icon-test-v1.json`
## 旧图标值
```json
{
"symbol-daytime-301": 2536,
"symbol-daytime-308": 33,
"symbol-daytime-428": 13416,
"symbol-daytime-30500003": 165,
"symbol-daytime-303": 4993,
"symbol-daytime-327": 626,
"symbol-daytime-310": 1833,
"symbol-daytime-30500001": 25,
"symbol-daytime-320": 959,
"symbol-daytime-321": 290,
"symbol-daytime-429": 256,
"symbol-daytime-413": 187,
"symbol-daytime-325": 38,
"symbol-daytime-323": 77,
"symbol-daytime-30700003": 24,
"symbol-daytime-30500002": 16,
"symbol-daytime-335359": 12,
"symbol-daytime-405": 5329,
"symbol-daytime-412": 50,
"symbol-daytime-719": 54,
"symbol-daytime-410": 10
}
```
## 审计关注
- `unknown_old_values_after_rewrite` 必须为空。
- `lm_cus` 当前使用 `symbol-daytime-660` 的临时视觉回退,需人工确认。
- 几何使用原 tile extent 重编码,并执行 extent 安全检查。

View File

@@ -0,0 +1,173 @@
{
"source_root": "/home/wwwroot/pbf-delivery-full-20260418-rebuild",
"target_root": "/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806",
"tiles_target": 4707,
"tiles_compared": 4707,
"tiles_with_errors": 0,
"errors": [],
"source_features": {
"baseline_area": 225324,
"baseline_outline": 401949,
"hole_area": 110994,
"land_area": 65455,
"bathymetry_line": 413730,
"depth_contour": 171277,
"navigation_marks": 11627,
"bridge_structure": 7224,
"hazard_boundary_outline": 20151,
"place_label_land": 10983,
"submerged_reef_area": 770,
"place_label_sea": 12092,
"anchor_caution_hazard_point": 12932,
"baseline_line": 14640,
"fixed_fishing_gear_area": 9044,
"onshore_structure_line": 114122,
"onshore_structure_point": 7623,
"anchor_caution_hazard_area": 1809,
"anchor_caution_hazard_outline": 1815,
"clearance_limit_line": 325,
"hazard_boundary_line": 37,
"onshore_structure_area": 3640,
"depth_contour_overview": 2154,
"depth_zone_739": 181,
"route_boundary_point": 78,
"route_area": 51,
"route_outline": 161,
"depth_zone_740": 9,
"route_axis_line": 14,
"depth_zone_700": 8,
"depth_zone_725": 4,
"seabed_line": 2106,
"seabed_text_point": 33376,
"facility_boundary_point": 1579,
"navigation_hazard_point": 6316,
"depth_zone_741": 497,
"depth_zone_748": 45,
"depth_zone_749": 43,
"clearance_limit_point": 261,
"clip_outline_754": 223,
"facility_boundary_area": 449,
"navigation_hazard_outline": 48,
"anchorage_area": 55,
"anchorage_outline": 55,
"anchorage_point": 54,
"facility_boundary_outline": 233,
"pilot_station_point": 16,
"navigation_hazard_area": 24,
"leading_line_outline": 16,
"clip_outline_730": 4,
"facility_boundary_area_transparent": 4
},
"target_features": {
"baseline_area": 225324,
"baseline_outline": 401949,
"hole_area": 110994,
"land_area": 65455,
"bathymetry_line": 413730,
"depth_contour": 171277,
"navigation_marks": 11627,
"bridge_structure": 7224,
"hazard_boundary_outline": 20151,
"place_label_land": 10983,
"submerged_reef_area": 770,
"place_label_sea": 12092,
"anchor_caution_hazard_point": 12932,
"baseline_line": 14640,
"fixed_fishing_gear_area": 9044,
"onshore_structure_line": 114122,
"onshore_structure_point": 7623,
"anchor_caution_hazard_area": 1809,
"anchor_caution_hazard_outline": 1815,
"clearance_limit_line": 325,
"hazard_boundary_line": 37,
"onshore_structure_area": 3640,
"depth_contour_overview": 2154,
"depth_zone_739": 181,
"route_boundary_point": 78,
"route_area": 51,
"route_outline": 161,
"depth_zone_740": 9,
"route_axis_line": 14,
"depth_zone_700": 8,
"depth_zone_725": 4,
"seabed_line": 2106,
"seabed_text_point": 33376,
"facility_boundary_point": 1579,
"navigation_hazard_point": 6316,
"depth_zone_741": 497,
"depth_zone_748": 45,
"depth_zone_749": 43,
"clearance_limit_point": 261,
"clip_outline_754": 223,
"facility_boundary_area": 449,
"navigation_hazard_outline": 48,
"anchorage_area": 55,
"anchorage_outline": 55,
"anchorage_point": 54,
"facility_boundary_outline": 233,
"pilot_station_point": 16,
"navigation_hazard_area": 24,
"leading_line_outline": 16,
"clip_outline_730": 4,
"facility_boundary_area_transparent": 4
},
"icon_counts": {
"icon_id:lt_hbr": 2536,
"arc_id:arc_open_YW": 204,
"arc_id:arc_YW": 977,
"arc_id:arc_G": 610,
"arc_id:arc_R": 769,
"icon_id:mk_lead_v": 33,
"icon_id:hz_foul": 3598,
"icon_id:hz_reef": 6659,
"icon_id:lt_lead_c": 165,
"icon_id:lm_mtn": 2059,
"icon_id:hz_overfall": 912,
"icon_id:lt_min": 4993,
"icon_id:bu_lat": 626,
"icon_id:lt_bcn": 1833,
"icon_id:lm_chim": 1907,
"icon_id:lm_twr": 2527,
"icon_id:hz_seaweed": 470,
"icon_id:lt_lead_a": 25,
"icon_id:bu_lit": 959,
"icon_id:lm_mar": 121,
"icon_id:lm_fish": 846,
"icon_id:lm_cus": 85,
"icon_id:lm_mon": 42,
"icon_id:bu_gen": 290,
"icon_id:hz_wreck_survey": 432,
"icon_id:hz_sandwave": 662,
"icon_id:lm_ctrl": 28,
"icon_id:bu_can": 38,
"icon_id:hz_outfall": 174,
"icon_id:hz_danger_clear": 26,
"icon_id:bu_pil": 77,
"icon_id:lm_prom": 8,
"icon_id:hz_whirl": 27,
"icon_id:mk_lead_c": 24,
"icon_id:hz_reef_danger": 25,
"icon_id:lt_lead_b": 16,
"icon_id:mk_vais": 12,
"icon_id:fac_fishport": 1164,
"icon_id:hz_rock_awash": 1397,
"icon_id:hz_rock_sub": 3932,
"icon_id:hz_danger_iso": 212,
"icon_id:fac_port": 261,
"icon_id:hz_tower": 57,
"icon_id:hz_wreck_sub": 50,
"icon_id:fac_seastation": 48,
"icon_id:hz_dolphin": 205,
"icon_id:fac_fisherina": 11,
"icon_id:fac_marina": 95,
"icon_id:an_quar": 33,
"icon_id:hz_wreck_hull": 10,
"icon_id:hz_pile": 340,
"icon_id:hz_obst": 60,
"icon_id:an_restrict": 2,
"icon_id:an_no_anchor": 4,
"icon_id:an_desig": 15
},
"old_prefix_counts": {},
"verdict": "PASS"
}

View File

@@ -0,0 +1,10 @@
# 九州语义图标测试版对象 / 几何 / 图标审计
- 来源:`/home/wwwroot/pbf-delivery-full-20260418-rebuild`
- 目标:`/home/wwwroot/pbf-delivery-kyushu-semantic-icon-v1-20260806`
- 目标瓦片:`4707`,实际比较:`4707`
- 有错误瓦片:`0`
- 旧图标前缀残留:`0`
- 结论:`PASS`
本审计忽略预期的 `chart_icon_image``icon_id``arc_id` 字段变化逐图层比较对象数量、ID、几何和其余属性。

View File

@@ -0,0 +1,64 @@
{
"used_keys": [
"an_desig",
"an_no_anchor",
"an_quar",
"an_restrict",
"arc_G",
"arc_R",
"arc_YW",
"arc_open_YW",
"bu_can",
"bu_gen",
"bu_lat",
"bu_lit",
"bu_pil",
"fac_fisherina",
"fac_fishport",
"fac_marina",
"fac_port",
"fac_seastation",
"hz_danger_clear",
"hz_danger_iso",
"hz_dolphin",
"hz_foul",
"hz_obst",
"hz_outfall",
"hz_overfall",
"hz_pile",
"hz_reef",
"hz_reef_danger",
"hz_rock_awash",
"hz_rock_sub",
"hz_sandwave",
"hz_seaweed",
"hz_tower",
"hz_whirl",
"hz_wreck_hull",
"hz_wreck_sub",
"hz_wreck_survey",
"lm_chim",
"lm_ctrl",
"lm_cus",
"lm_fish",
"lm_mar",
"lm_mon",
"lm_mtn",
"lm_prom",
"lm_twr",
"lt_bcn",
"lt_hbr",
"lt_lead_a",
"lt_lead_b",
"lt_lead_c",
"lt_min",
"mk_lead_c",
"mk_lead_v",
"mk_vais"
],
"used_key_count": 55,
"sprite_key_count": 64,
"missing_keys": [],
"legacy_sprite_keys": [],
"verdict": "PASS"
}

View File

@@ -0,0 +1,7 @@
# 九州测试版 Sprite 图标闭合审计
- 使用中的 icon_id/arc_id`55`
- sprite 键数:`64`
- 缺失键:`0`
- 旧前缀键:`0`
- 结论:`PASS`

View File

@@ -0,0 +1,141 @@
{
"compare_url": "http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html",
"cases": [
{
"id": "karatsu_kyushu_icon_v1_semantic_z12",
"label": "唐津九州语义图标测试",
"variant": "semantic",
"zoom": 12,
"center": [
129.9697,
33.4425
],
"radius_nm": 5,
"compare_url": "http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=129.9697%2C33.4425&zoom=12",
"changed_pixels": 287577,
"total_pixels": 364800,
"changed_ratio": 0.788314,
"mean_abs_rgb": [
39.3424,
42.4767,
74.167
],
"rms_rgb": [
61.2913,
62.6326,
97.1048
],
"diff_bbox": [
0,
0,
640,
513
],
"left_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_left.png",
"right_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_right.png",
"diff_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_diff.png"
},
{
"id": "karatsu_kyushu_icon_v1_semantic_z10",
"label": "唐津九州语义图标测试",
"variant": "semantic",
"zoom": 10,
"center": [
129.9697,
33.4425
],
"radius_nm": 5,
"compare_url": "http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=129.9697%2C33.4425&zoom=10",
"changed_pixels": 274296,
"total_pixels": 364800,
"changed_ratio": 0.751908,
"mean_abs_rgb": [
33.6012,
36.7804,
64.1346
],
"rms_rgb": [
56.4791,
56.9124,
89.4452
],
"diff_bbox": [
0,
0,
640,
513
],
"left_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_left.png",
"right_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_right.png",
"diff_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_diff.png"
},
{
"id": "hakata_kyushu_icon_v1_semantic_z12",
"label": "博多港九州语义图标测试",
"variant": "semantic",
"zoom": 12,
"center": [
130.335,
33.6385
],
"radius_nm": 10,
"compare_url": "http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=130.335%2C33.6385&zoom=12",
"changed_pixels": 237978,
"total_pixels": 364800,
"changed_ratio": 0.652352,
"mean_abs_rgb": [
30.9085,
30.6867,
39.4968
],
"rms_rgb": [
55.1912,
58.1514,
67.7886
],
"diff_bbox": [
0,
0,
640,
513
],
"left_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_left.png",
"right_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_right.png",
"diff_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_diff.png"
},
{
"id": "hakata_kyushu_icon_v1_semantic_z10",
"label": "博多港九州语义图标测试",
"variant": "semantic",
"zoom": 10,
"center": [
130.335,
33.6385
],
"radius_nm": 10,
"compare_url": "http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=130.335%2C33.6385&zoom=10",
"changed_pixels": 236727,
"total_pixels": 364800,
"changed_ratio": 0.648923,
"mean_abs_rgb": [
31.9821,
32.9781,
55.3087
],
"rms_rgb": [
57.9478,
56.188,
83.9112
],
"diff_bbox": [
0,
0,
640,
513
],
"left_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_left.png",
"right_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_right.png",
"diff_image": "report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_diff.png"
}
]
}

View File

@@ -0,0 +1,48 @@
# 全国 AOI 截图对比审计
## 总览
- compare page: `http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html`
- cases: `4`
## 差异排序
### 唐津九州语义图标测试 · semantic · z12
- changed ratio: `0.788314`
- changed pixels: `287577` / `364800`
- mean abs rgb: `[39.3424, 42.4767, 74.167]`
- compare url: `http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=129.9697%2C33.4425&zoom=12`
- left image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_left.png`
- right image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_right.png`
- diff image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z12/compare_diff.png`
### 唐津九州语义图标测试 · semantic · z10
- changed ratio: `0.751908`
- changed pixels: `274296` / `364800`
- mean abs rgb: `[33.6012, 36.7804, 64.1346]`
- compare url: `http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=129.9697%2C33.4425&zoom=10`
- left image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_left.png`
- right image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_right.png`
- diff image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/karatsu_kyushu_icon_v1_semantic_z10/compare_diff.png`
### 博多港九州语义图标测试 · semantic · z12
- changed ratio: `0.652352`
- changed pixels: `237978` / `364800`
- mean abs rgb: `[30.9085, 30.6867, 39.4968]`
- compare url: `http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=130.335%2C33.6385&zoom=12`
- left image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_left.png`
- right image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_right.png`
- diff image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z12/compare_diff.png`
### 博多港九州语义图标测试 · semantic · z10
- changed ratio: `0.648923`
- changed pixels: `236727` / `364800`
- mean abs rgb: `[31.9821, 32.9781, 55.3087]`
- compare url: `http://192.168.200.184/newpec/navsea-compare-kyushu-semantic-icon-v1.html?variant=semantic&audit=1&center=130.335%2C33.6385&zoom=10`
- left image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_left.png`
- right image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_right.png`
- diff image: `report/kyushu_semantic_icon_v1_2026-08-06/visual/hakata_kyushu_icon_v1_semantic_z10/compare_diff.png`