news 2026/9/25 18:46:02

S-101 的图示表达:Look-up 表怎么工作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
S-101 的图示表达:Look-up 表怎么工作

本文首发于个人博客航图笔记nightchart.cn(S-57 / S-52 / S-100 / 渲染引擎源码走读,持续更新)。CSDN 同步发布,转载请保留出处。

S-57 时代我们把显示规则叫做 Look-up 表:要素类型加属性条件,查出一支笔、一个符号、一个显示组。到了 S-101,这套机制换了名字也换了分发方式——图示表达目录(Portrayal Catalogue,PC)。这篇拿真实分发件拆给你看,顺带说清一个容易踩的坑:哪些东西在公开包里,哪些不在。

PC 分发件里有什么

把官方 PC 2.0.0 分发包解开,核心是三个文件加一堆绘图资源:

  1. portrayal_catalogue.xml——目录的索引中枢。里面登记着 718 个符号(每个有 ID 和描述)、67 个视图组图层(viewingGroupLayer)、3 个样式表、215 个规则文件的引用。注意最后这条:是"引用"。
  2. colorProfile.xml——颜色配置。67 个颜色令牌,每个令牌给出Day / Dusk / Night 三套调色板的取值,而且同时给 CIE 坐标(x, y, L)和 sRGB 两套表达。CIE 给校准软件用,sRGB 给屏幕直接用——一份定义,两种用途。
  3. 绘图资源 XML——AreaFills、LineStyles 一类的矢量绘图定义,每个文件画一种纹样或线型(目录里登记了 59 个线样式和 25 个面填充,每个都是这样一份纯数据文件)。

一个真实的线样式长什么样

拿锚地边界的线样式 ACHARE51 开刀,全文结构拆开是这样:

  • intervalLength32.3——这条线的"一个循环"长 32.3 个单位,重复图案按这个长度排布
  • pen宽 0.32,颜色CHMGD——品红深色,S-52 令牌直接引用
  • 三个dash——起点和长度写死,虚线段的位置是数据不是猜测
  • 四个symbol引用——在 5、13.1、21.2、29.3 四个位置各放一枚小符号

整份文件没有一个"渲染逻辑",全是纯数据。渲染器就是个解释器:读间隔、下笔、画虚线、摆符号。数据驱动到这个程度,换一套主题或者加一种线型,渲染器一行代码都不用改——这是 PC 设计里最值得抄的一课。

文件头里还有一行 lineage 注释:source="S52Preslib4.0",创建日期 2015 年 3 月。S-101 的图示表达就是从 S-52 PresLib 4.0 迁移来的,符号体系一脉相承——你在 S-52 上的显示层积累,又一次不作废。

Look-up 表去哪了

拆包拆到这你会发现少了东西:目录索引里引用了 215 个规则文件(ruleFile),但公开分发件里并没有这些文件。Look-up 的核心逻辑——哪个要素类型在什么属性条件下用什么符号、属于哪个视图组——不在公开包里。

这不是事故,是分发策略:PC 公开包给的是"骨架 + 资源",完整规则随授权渠道走。对开发者的现实影响是:自研显示端要么走授权拿全量规则,要么按行为兼容自己实现查表(开源社区如 OpenCPN 走的是后者,行为对齐而非数据复制)。好在查表机制的"形状"是公开且稳定的:要素类型 + 属性条件 → 符号、视图组、显示优先级——理解了这个模式,规则数据从哪来只是工程问题。

视图组:用户说了算的图层开关

PC 里的 67 个视图组图层是容易被忽略的一块。每个图层绑一组视图组编号,用户在 ECDIS 里勾掉"航标类"或者"水深注记",本质就是按视图组批量过滤绘制队列。渲染端要把视图组做成绘制管线里的一等过滤条件,而不是画完再擦。

工具联动

这些内容都已经进了我们的图示表达解析器:符号注册表 718 条可搜、视图组图层清单、颜色配置直接渲染成三栏对照色表(可点复制 HEX)。拆 PC 分发包时不用再手翻 XML。


我是夜航海图,做海图与地图渲染开发的工程师。博客「航图笔记」:https://nightchart.cn ,同步更新全部文章,欢迎收藏。


这个系列持续更新(S-100 全家族拆解中),关注博主不迷路;完整在线工具与最新文章见 nightchart.cn。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 18:44:12

C++后端全场景提示词大全(一位老后端用十一年、三十万行生产代码换来的 AI 协作手册)

先说句不好听的:在 C++ 后端这个行当里,AI 编程助手不是"提效神器",它更像一个天赋极高 but 没有工程常识的实习生。你让它写个限流中间件,它能给你一个算法优雅、注释工整、编译一遍过的实现;然后压测一上来,ASan 报一堆 heap-use-after-free,你才发现它把所…

作者头像 李华
网站建设 2026/9/25 18:41:53

随身WiFi串口调试工具开发:PHP Web界面实现AT指令交互

随身WiFi调试工具的开发背景 做物联网开发这几年,串口调试是绕不开的日常操作。从ESP32的固件烧录到4G通信模组的AT指令调试,手里总得备一个串口工具。但传统桌面端串口工具有个硬伤:你得在设备旁边,插上USB-TTL线,打开…

作者头像 李华
网站建设 2026/9/25 18:32:57

IBM-供应链战略管理方法论:挑战与解决方案【附全文阅读】

这份 IBM 供应链战略咨询方案是大健康 / 保健品行业落地级标杆资料,实战参考价值突出。文档依托头部健康企业智能制造 4.0 专项项目,形成完整供应链诊断 + 变革落地全流程方法论,完全贴合多渠道、多 SKU、自有工厂 + 线下门店的复合业态特征。 方案先搭建标准化现状…

作者头像 李华
网站建设 2026/9/25 18:30:54

Ruffle浏览器扩展全指南:用WebAssembly在Chrome中复活Flash SWF

先说个背景:2020年底之后,Adobe正式停止维护Flash Player,主流浏览器也把NPAPI/PPAPI这类插件接口全部请出了系统,诞生于九十年代的Flash动画、网页小游戏,一夜之间从“双击就能播”变成了“打都打不开的裸文件”。可互…

作者头像 李华
网站建设 2026/9/25 18:29:12

信息安全相关

from 王文平测试组主管俞露:主要负责信息安全测试报告,为人说话比较硬气 健忘诊断主管王伟:主要负责信息安全uds诊断方面,不会的可以向他讨教,经常会出现消息已读不回及不看消息的情况殷达,朱冰:解放项目经理方锐&…

作者头像 李华