首页/新闻资讯/正文详情

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

发布时间:2026/9/25 18:46:05 来源:云帆数科 栏目:资讯中心
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。

相关推荐

Go Workflow 引擎:从 Tempor 与 Cadence 到流程编排
Go Workflow 引擎:从 Tempor 与 Cadence 到流程编排

Go Workflow 引擎:从 Tempor 与 Cadence 到流程编排工作流引擎是后端组件的"粘合层"。Tempor / Cadence 是 Go 编写的开源流程编排引擎。本文讲清原理与集成。一、Temporal 是什么? Temporal 微服务编排 时间调度 容错。Google Uber 支持。… · 2026/9/25 18:45:59

Hugging Face模型发布全指南:从本地训练到全球复用
Hugging Face模型发布全指南:从本地训练到全球复用

1. 这不是“上传”而是“发布一套可复现的模型资产” 你手头有个在本地跑通的 PyTorch 模型,可能是微调后的 BERT 分类器、自己搭的 ViT 图像分类器,或是用 LLaMA-Factory 训练出的小语言模型。现在你想让它被别人发现、下载、复用——不是发个 GitHub … · 2026/9/25 18:45:53

沟通驱动型CRM:把客户沟通转化为可复用的客户资产
沟通驱动型CRM:把客户沟通转化为可复用的客户资产

做CRM这些年,我最大的感受是:大多数团队不是缺客户,而是缺"对客户关系的完整记忆"。销售手里攒了一堆微信聊天截图,客服在工单系统里反复问客户同一个问题,售后邮件散落在个人邮箱里,老板想看一眼… · 2026/9/25 18:45:53

ospf接口实验(ensp实验)【小白也能做】
ospf接口实验(ensp实验)【小白也能做】

目录 1.ospf接口类型实验 1.1 p2p类型 1.2 broadcast(广播)网络 1.3 NBMA类型 1.4 P2MP类型 1.ospf接口类型实验 1.1 p2p类型 AR1 Serial1/0/0 ←PPP 串口→ AR2 Serial1/0/0 Serial 串口默认封装 PPP;也可以封装 HDLC,华… · 2026/9/25 19:42:14

家电分类的术语大全的庖丁解牛
家电分类的术语大全的庖丁解牛

总纲:家电分类不是简单罗列电器名称,是按照使用场景、能源形式、功能定位、安装形态搭建的一套归类体系。区分家电品类,方便选购、对比参数、评估能耗、规划家装电路,分清大件、小件、嵌入式、移动式,避免装修预留尺寸… · 2026/9/25 19:42:02

计算机的“读心术“:一篇文章搞定二、八、十、十六进制的相互转换
计算机的“读心术“:一篇文章搞定二、八、十、十六进制的相互转换

一句话概括 计算机只认识 0 和 1,但人类需要十进制,程序员偏爱十六进制,操作系统权限爱用八进制——进制转换,本质上是同一个数字换了几种"方言"。看完这篇文章,你会发现换算规则简单到令人发指。一、为什么… · 2026/9/25 19:41:56

Windows 环境快速部署 Hermes 智能 Agent:TaoToken 统一 Key 配置与避坑指南
Windows 环境快速部署 Hermes 智能 Agent:TaoToken 统一 Key 配置与避坑指南

/* 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 19:41:56

Gemini用户激增背后:三大核心动力驱动ChatGPT用户迁移,TaoToken统一API通道实测
Gemini用户激增背后:三大核心动力驱动ChatGPT用户迁移,TaoToken统一API通道实测

/* 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 19:41:56

Build vs Plan:别再搞混了,OpenCode 两种模式的正确打开方式与 TaoToken 配置骨架
Build vs Plan:别再搞混了,OpenCode 两种模式的正确打开方式与 TaoToken 配置骨架

/* 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 19:41:49

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* 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 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* 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 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* 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 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码