7.1 KiB
7.1 KiB
NavSea Object -> Render Mapping Table v2
版本:v2 Draft
用途:定义对象语义到渲染语义的映射规则,作为 taxonomy -> render_semantics 的中间规范。
1 设计原则
- 先按
canonical_object_type映射 - 再按几何类型和旧字段细化具体样式
- 样式层优先读取
chart_*字段 - 旧字段只保留为细节兜底,不再作为主判定入口
2 输出字段
映射表的目标输出至少包括:
chart_render_typechart_symbol_familychart_symbol_codechart_line_stylechart_fill_stylechart_text_stylechart_prioritychart_label_textchart_label_subtextlight_color_codelight_character_codehazard_classhazard_severityarea_usage_class
3 首批强制覆盖对象
下表是建议优先落地的 v2 核心映射对象。
| canonical_family | canonical_object_type | geometry | chart_render_type | symbol_family | symbol_or_style | priority | legacy_detail_dependency |
|---|---|---|---|---|---|---|---|
| navigation_aid | 港湾灯台 | Point | symbol | navigation_light | chart_symbol_code=lighthouse |
900 | 灯色 灯略記 表示用番号 |
| navigation_aid | 灯柱 | Point | symbol | navigation_light | chart_symbol_code=light_beacon |
890 | 灯色 灯略記 形状分類番号 |
| navigation_aid | 灯浮標 | Point | symbol | navigation_light | chart_symbol_code=light_buoy |
880 | 灯色 灯略記 形状分類番号 |
| navigation_aid | AIS航标 | Point | symbol | navigation_light | chart_symbol_code=vais |
870 | 表示用番号 |
| navigation_aid | 浮標 | Point | symbol | navigation_mark | chart_symbol_code=buoy |
860 | 形状分類番号 表示用番号 |
| navigation_aid | 立標 | Point | symbol | navigation_mark | chart_symbol_code=beacon |
860 | 形状分類番号 表示用番号 |
| hazard | 暗岩 | Point | symbol | hazard | chart_symbol_code=rock_awash |
910 | 分類番号 |
| hazard | 岩礁 | Point | symbol | hazard | chart_symbol_code=reef |
900 | 分類番号 |
| hazard | 礁盘 | Polygon | fill | hazard | chart_fill_style=reef_area |
860 | 分類番号 |
| hazard | 魚礁 | Polygon | fill | hazard | chart_fill_style=reef_area |
850 | 分類番号 表示用番号 |
| hazard | 沈船 | Point | symbol | hazard | chart_symbol_code=wreck |
905 | 分類番号 |
| hazard | 障害物 | Point | symbol | hazard | chart_symbol_code=obstruction |
895 | 分類番号 |
| hazard | 潜堤 | Line/Polygon | line/fill | hazard | chart_line_style=submerged_reef / chart_fill_style=hazard_area |
845 | 分類番号 |
| depth | 水深点 | Point | label | depth_mark | chart_text_style=depth_text |
700 | 水深値(m) |
| depth | 水深区 | Polygon | fill | depth_zone | chart_fill_style=depth_zone_* |
650 | 分類番号 |
| depth | 等深线 | LineString | line | contour | chart_line_style=contour_major_or_minor |
640 | 表示用番号 |
| depth | 概略等深线 | LineString | line | contour | chart_line_style=contour_overview |
620 | 表示用番号 |
| boundary | 危険界 | LineString | line | boundary | chart_line_style=hazard_boundary |
800 | 分類番号 |
| boundary | 基本线 | LineString | line | boundary | chart_line_style=baseline |
780 | 分類番号 |
| boundary | 航路境界 | LineString | line | boundary | chart_line_style=route_boundary |
770 | 分類番号 |
| usage_area | 航路 | Polygon/LineString | fill/line | usage_area | chart_fill_style=route_area / chart_line_style=route_axis |
760 | 分類番号 |
| usage_area | 錨地 | Polygon | fill | usage_area | chart_fill_style=anchorage_area |
750 | 分類番号 |
| usage_area | 錨泊地 | Polygon | fill | usage_area | chart_fill_style=anchorage_area |
750 | 分類番号 |
| usage_area | 漁業区 | Polygon | fill | usage_area | chart_fill_style=fishery_area |
740 | 分類番号 |
| usage_area | パイロットステーション | Point | symbol | usage_area | chart_symbol_code=pilot_station |
735 | 表示用番号 |
| facility | 防波堤 | LineString/Polygon | line/fill | facility | chart_line_style=breakwater |
730 | 分類番号 |
| facility | 橋梁 | LineString | line | facility | chart_line_style=bridge |
725 | 高さ(m) |
| facility | 海底电缆 | LineString | line | facility | chart_line_style=subsea_cable |
720 | 分類番号 |
| facility | 高さ制限 | Point/LineString | label/line | facility | chart_text_style=clearance_label |
715 | 高さ(m) 高さ/深度(m) |
| seabed | 底質 | Point | label | seabed | chart_text_style=seabed_text |
500 | 名称 |
| place | 海上地名 | Point | label | place | chart_text_style=place_name_sea |
450 | 日本語地名 英文字地名 |
| place | 陆上地名 | Point | label | place | chart_text_style=place_name_land |
440 | 日本語地名 英文字地名 |
4 细化规则
4.1 灯标对象
主映射依据:
canonical_object_type
细化字段:
灯色 -> light_color_code灯略記 -> light_character_code与chart_label_subtext名称 -> chart_label_text表示用番号/形状分類番号决定具体 icon 变体
说明:
- 灯弧不必作为核心渲染对象单独保留
- 但
明弧/分孤可以继续保留,用于特殊产品或工程校验
4.2 危险物
主映射依据:
canonical_object_type
细化输出:
hazard_classhazard_severity
建议:
暗岩、沈船默认hazard_severity >= major魚礁按区域危险对象处理,但允许叠加area_usage_class=fishery
4.3 水深和等深线
建议:
- 水深点统一转成
chart_render_type=label - 水深区统一转成
chart_render_type=fill - 等深线和概略等深线统一转成
chart_render_type=line
细化:
表示用番号或原 line layer 类型决定contour_major/contour_minor/contour_overview
4.4 边界和区域
建议:
- “区域本体”与“边界线”分别映射
- 航路、锚地、鱼业区优先落到
usage_area - 基本线、危险界、航路境界优先落到
boundary
5 label 映射规则
| 对象类型 | chart_label_text | chart_label_subtext | chart_text_style |
|---|---|---|---|
| 港湾灯台 / 灯柱 / 灯浮標 | 名称 |
灯略記 |
light_label |
| 水深点 | 格式化 depth_value_m |
空 | depth_text |
| 海上地名 | 日本語地名 优先,其次 英文字地名 |
空 | place_name_sea |
| 陆上地名 | 日本語地名 优先,其次 英文字地名 |
空 | place_name_land |
| 高さ制限 | 规范化高度文本 | 空 | clearance_label |
6 v2 映射必须输出的附加字段
除了图形类型本身,映射表还应尽量输出:
chart_prioritychart_visibility_minchart_visibility_maxchart_collision_group
原因:
- 这些字段能把样式层里的很多散乱 zoom/filter 规则收回到数据侧
7 v2 当前缺口
相较 v1,本表仍需继续扩充以下对象:
- 导灯
- 灯船
- 信号所
- 制限区域
- 未测深区
- 干出区
- 海底管线
- 岸壁 / 栈桥 / 码头
- 海底线
- 水文现象对象
这些建议作为 v2.1 的扩展项。