尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
S-101 的图示表达:Look-up 表怎么工作
本文首发于个人博客航图笔记nightchart.cnS-57 / S-52 / S-100 / 渲染引擎源码走读持续更新。CSDN 同步发布转载请保留出处。S-57 时代我们把显示规则叫做 Look-up 表要素类型加属性条件查出一支笔、一个符号、一个显示组。到了 S-101这套机制换了名字也换了分发方式——图示表达目录Portrayal CataloguePC。这篇拿真实分发件拆给你看顺带说清一个容易踩的坑哪些东西在公开包里哪些不在。PC 分发件里有什么把官方 PC 2.0.0 分发包解开核心是三个文件加一堆绘图资源portrayal_catalogue.xml——目录的索引中枢。里面登记着 718 个符号每个有 ID 和描述、67 个视图组图层viewingGroupLayer、3 个样式表、215 个规则文件的引用。注意最后这条是引用。colorProfile.xml——颜色配置。67 个颜色令牌每个令牌给出Day / Dusk / Night 三套调色板的取值而且同时给 CIE 坐标x, y, L和 sRGB 两套表达。CIE 给校准软件用sRGB 给屏幕直接用——一份定义两种用途。绘图资源 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 注释sourceS52Preslib4.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。
RELATED

相关推荐

select多路复用:非阻塞、超时与随机调度

select多路复用:非阻塞、超时与随机调度

select多路复用:非阻塞、超时与随机调度select是Go并发模型的精华——一个语句监听多个channel,实现多路复用、非阻塞检查、超时控制和随机公平调度。本文从select的编译机制(selectgo)出发,讲透select的底层原理与生产…

📅 2026/9/25 18:46:46
Docker 常见仓库与镜像使用指南(2026 实战版)

Docker 常见仓库与镜像使用指南(2026 实战版)

前阵子带一个新人,让他用 Docker 起个 MySQL,他从某篇博客抄了条命令:docker run --name some-mysql --link some-app:app -d mysql跑不通,来问我。我一看就知道这教程是七八年前的——--link 这个参数 Docker 官方早就标记废弃了…

📅 2026/9/25 18:46:46
如何写好 Skills:用 TaoToken 统一 Key 打通 Agent 与 CC 的配置骨架

如何写好 Skills:用 TaoToken 统一 Key 打通 Agent 与 CC 的配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/25 18:46:46
MORE NEWS

更多资讯

📰

APM架构拆解:22个模块的install流水线如何实现“一条命令处处复现”

APM架构拆解:22个模块的install流水线如何实现“一条命令处处复现” 【免费下载链接】apm Agent Package Manager 项目地址: https://gitcode.com/gh_mirrors/apm10/apm APM(Agent Package Manager) 的 apm install 是整条产品体验的核…

📰

选型思考:纯计算引擎 vs 一体化数据平台,实时项目该如何抉择

摘要在建设实时数仓、数据交换项目时,很多团队会选择以Flink为核心,搭配Kafka、各类CDC工具组装整套链路。但在生产落地过程中,经常遇到组件繁多、故障点多、乱序丢数、状态膨胀、运维门槛高等现实问题。本文结合项目实践,对比纯流…

📰

机器人不接受迟到的答案!Thor 芯片上,Pi0.5推理被干到了26ms,10.7倍加速。

278ms。 这个时长对于人类对时间的认知来说,几乎是一瞬间。同时,它也是Pi0.5 使用 OpenPI 基线在端侧完成一次推理的等待时间。 然而对于机器人来说,这个时间还是太长了。 从指令进入系统,到机器人开始动作,中间的每…

📰

TCP三次握手与四次挥手的真实世界:从协议原理到故障排查

1. 为什么你看到的“三次握手”从来不是三步,而“四次挥手”也从不按剧本走?TCP连接管理这件事,我带过十几届实习生,每次讲到三次握手和四次挥手,总有人盯着Wireshark里抓到的包发愣:“老师,这明…

📰

Windows 10截图保存路径与管理全指南

1. Windows 10截图后文件“消失”的真相:不是丢了,是藏得比你想象的还深你按下Win PrtSc,屏幕一闪,听到那声熟悉的“咔嚓”快门音——心里一松:“截好了。”可翻遍桌面、文档、图片文件夹,甚至把整个C盘按…

📰

DeepSeek之后,又一国产AI爆火!用TaoToken统一Key接入AI Agent的配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬