Skip to content

术语表 ​

读仓内文档和代码注释遇到不明白的词,先来这里查。按主题分组,每条给一两句白话解释,能落到文件的给文件路径。黑话大多来自注释里的简称,第一条先把最常用的几个说透。

文档与状态模型 ​

术语白话解释
真源(SSOT,单一事实源)每个事实全仓只有一个权威持有处:样式本体在 StyleStore,界面意图在 ConfigStore,地图能力在 map-capabilities。派生值用 computed 现算,不落第二份。出处:ARCHITECTURE-RULES §2。
写通道状态的唯一写入入口。样式走 StyleStore.update(draft, label),config 走 ConfigStore 命名方法,表单走 FormStore 的 setProp 族。方法即审计点,谁改的、改了什么,一处可查。出处:core/style-store.service.ts。
样式文档MapLibre 能直接渲染的 StyleSpecification JSON,只含渲染语义,不含任何编辑器私有信息。它是四文档里的「投影源」。
StyleStore样式文档的单一数据源。signal 持有、immer patches 记撤销、每次变更算 diff 给地图、导出前做终检。出处:core/style-store.service.ts。
ms-config(界面意图档)与样式渲染语义分开存的界面配置文档:显示名、分组、底图注册与插槽、过滤器骨架、偏好。schema 真源在 docs/spec/config-simplification/mapstudio-config.schema.json。详见 ADR-12。
FormDoc面板表单形态的派生缓存,只活在内存里不持久化。样式变了由 effect 重新导出回灌,结构相等时保持引用稳定防死循环。出处:core/form/。
InteractionDocument附属交互档:hover / click / doubleclick 的覆盖值加全局交互配置,随项目文件的 interactions 段持久化。出处:core/interaction/interaction.model.ts。
项目信封.ms-project.json 项目文件的 v2 格式,一个 JSON 装四域:style、config、interactions、history(可选),另有相机视角快照。组装单源是 composeProjectJson。出处:core/persistence/project-format.ts。
值词表ms-config 与图层详情 JSON 共用的值形态语言:一切值包成 { form: … } 判别对象(literal / zoom / step / data / conditions / interaction / raw 七种),与 MapLibre 表达式数组划清界线,判别永无歧义。当前 v4。出处:core/config/layer-config-codec.ts。
版本双轴ms-config 文档版本(version)与值词表版本(valueVersion)是两根轴,各自独立演进,避免改个词表就逼所有档升级。
约定键写进样式 metadata 的编辑器私有键,统一 mapstudio: 前缀。现仅剩少数授权键(底图标记、作者标记、插槽标记),界面意图已全部迁去 ms-config,导出时由净化函数剥离。出处:shared/style-conventions.ts。
迁移注册表MIGRATIONS[v] 把版本 v 的旧档升到 v+1,纯函数、沿链升级、缺迁移器直接抛错。禁止在校验代码里散落 if 判旧版本。出处:core/persistence/migrations.ts。
归一层装载管线里把历史档归一成当前 canonical 形态的幂等步骤:剥遗留键、补 name 与 valueVersion、过滤行压到最小形态。出处:core/config/config-codec.ts 的 normalizeConfigDocument。
乐观更新与回灌FormStore 的更新模式:先写缓存让界面立刻响应,再由 effect 拿真源重导出覆盖回来收敛。formDocEquals 挡住回环。出处:core/form/form-store.service.ts。
代际 key异步供料的过期守卫:key 取 source#source-layer,回包时 key 对不上当前代就整包丢弃,不覆盖新状态。出处:features/layer-fields-tracker.ts。
分叉裁决打开项目时发现 config 与样式本体对不上(round-trip 比对失败),弹层让用户选「保留样式」还是「应用配置」。出处:core/config/config-divergence.ts。

图层与属性编辑 ​

术语白话解释
停靠点(stop)取值锚点 {at, value}:跨缩放时 at 是 zoom 值,跨数据时 at 是数据值。值位可以递归嵌套另一个 form 对象(停靠点里的公式、停靠点里的数据条件)。
数据条件(match)按要素字段值分支的取值形态,界面上叫「按数据条件」。对应词表里的 {form:'conditions'} 或 MapLibre 的 match 表达式。
数据渐变按字段值连续插值的形态(interpolate),界面上叫「按数据渐变」,词表形态 {form:'data'}。
公式自由表达式形态,词表 {form:'raw'} 封存原始表达式,编辑走表达式构建器。
属性升级链常量值升级成复杂形态的入口族:跨缩放、跨数据、按条件、公式、恢复默认、恢复上次修改。首次升级的预填产物由 features/controls/prop-upgrade.ts 纯函数统一产出(AST 工厂构造,禁手写数组)。
属性页签symbol 图层编辑列的文字 / 图标 / 位置 / 放置四个子页签(SymbolTab),静态表在 core/spec-tables.ts。
依赖锁定属性因 spec 的 requires 或互斥关系不可用时灰化,悬停给真实原因。出处:core/dependency.service.ts。
排序键MapLibre 规范的 layout 桶常量:fill-sort-key / line-sort-key / circle-sort-key / symbol-sort-key,值大者渲染在上。
排序键带位移「用作背景底图」作者链与底图在役时的渲染序管理:低位带(不大于 1000)留给底图作者层,高位带(大于 1000)归消费侧自有层,开合作者或底图时整带位移并记 origin 供精确还原。出处:core/config/sort-key-bands.ts。
叠放序选择数据模式的画布渲染顺序约定:点覆盖线、线覆盖面,raster 居间,选中源置顶。出处:docs/spec/usecases/ 与 e2e-audit 域 05。
显示序图层树的渲染顺序:物理数组方向与视觉相反,背景垫底。拖拽判定与执行都按显示序空间换算。
三分位排序树拖拽的落点判定:目标行上 30% 是移到上方,下 30% 是移到下方,中间 40% 是收入组内。出处:layer-list-fns。
多选合并多选图层后批量改同一属性的面板(multi-merge)。出处:features 根目录。
导出净化sanitizeExportedStyle:导出前剥掉全部 mapstudio:* 约定键与分组约定键,hoist zoom 表达式,保证导出物是纯 MapLibre 样式。出处:core/export-style.ts。

底图与作者链 ​

术语白话解释
底图(basemap)单槽语义的背景样式导入:整段替换、恒垫底、参与插槽编队。config 里 background 存「选了什么」、basemap 存「并入了什么」。详见 ADR-16。
底图四插槽底图图层驻留的四个投放位:top(注记)、middle(线状要素之上注记之下)、lower(面状要素之上)、bottom(垫底),锚点驱动物理投影。开启底图时用户层自动进 bottom。出处:core/config/config.model.ts。
驻留(membership)某个用户图层当前住在哪个插槽的记账。可逆:关底图或移除时按记录回滚。预设切换按 prevMembership 快照还原。
底图注册名底图预设并入样式后在树里的目录名,同时是反查键。出处:features/basemap-presets.ts 的 BASEMAP_PRESET_META。
底图预设内置的一组可选底图(preset),登记在 features/basemap-presets.ts 的 BASEMAP_PRESETS。
styleImports与 basemap 平行的条目化多槽导入通道(imp-N 条目),用于数据补充导入,多份并行、不垫底。
作者档 / 作者链把当前样式标记为「交付给他人当底图」时激活的一族配置:排序键带下移、底图 interactivity 包装、mapstudio:author 作者标记出档投影。纯函数集中在 core/config/basemap-delivery.ts。
装载位底图真实图层行在树里插入插槽之间的显示位置,成员行按插槽锚点排布。

交互与表达式 ​

术语白话解释
附属交互挂在图层上的 hover / click / doubleclick 高亮配置,存 InteractionDocument,不新增真实样式图层。
虚拟图层(附属交互图层)附属交互在树上派生的虚拟子行(行 id 形如 baseId@event):基础层颜色属性被包装成 case 加 feature-state 驱动,样式世界里没有这个图层。出处:core/interaction/interaction-attached.ts。
feature-stateMapLibre 的运行时要素状态通道:setFeatureState 写、表达式里的 feature-state 读。附属交互高亮全靠它。运行时态不持久化、不入撤销栈。
表达式域core/expression/ 的 AST 内核,子域含 ast、registry、capability、typecheck、evaluate、parse-compile、session。详见 ADR-17。
算子注册表89 个表达式算子的唯一登记处,关键词表从注册表读(G1 单源),官方 latest.json 对账互锁(G2)。出处:core/expression/registry/。
词表链恒等(G8)守卫测试:config 值经 formValue、AST 再转回来,必须和原值恒等。表达式内核与值词表的长期等价由它钉死。出处:tests/app/core/config/g8-config-chain.test.ts。
tokens规范里 text-field / icon-image 特有的 {token} 运行时替换。编辑器用等价表达式显式承载,转换单源在 core/expression/token-convert.ts。
spec-zh 三口径中文词表的三种翻译口径:规范翻译(术语本身)、界面语义(界面上怎么说)、枚举值(下拉选项)。出处:shared/spec-zh/。

架构与工程 ​

术语白话解释
分层方向依赖只许向下:app(组合根)到 features 到 core 到 shared。shared 是零上行依赖的最底层,core 永不感知页面。出处:ARCHITECTURE-RULES §1。
组合根唯一允许横切装配的位置:app.component 里手工 new 控制器、跨域接线、当模态宿主。别处出现跨域接线就是违规。
受控组件值进事件出的无状态组件:value in、valueChange out,不落库不持业务态。controls 层全系如此。
目录契约每个目录一句话职责加唯一扩展接入点的登记表。新代码先对表入座,放错层等于违反分层。出处:ARCHITECTURE-RULES §1.1。
纯函数层与组件分家的可直测逻辑层,文件名后缀 *.fns.ts / *-presets.ts / *.model.ts。先例:layer-list-fns、basemap-presets、sort-key-bands。
双引擎两种地图宿主:maplibre 直挂与 GISSDK 适配器,两个 maplibre 大版本(6.11.2 与 6.4.1)独立 module graph 共存。详见 ADR-08。
MapAdapter双引擎的适配器缝:接口加两个实现,GISSDK 路径经 window.__MAPSTUDIO_GISSDK__ 构建期注入选择,上层组件零改动。出处:core/map/map-adapter.ts。
三问门禁新地图能力的登记三问:双引擎都支持吗、降级面是什么、spec 依据在哪。未登记就调用,对账测试直接红。出处:MAP-CAPABILITY-MATRIX。
能力矩阵core/map/map-capabilities.ts,双引擎能力的唯一事实源,对账测试强制「native API 消费 ⊆ 矩阵登记」。
样式 diff(StyleDiff)StyleStore 每次变更产出的结构化增量(增删移、逐层变更键、根级标志),map.service 按它单点同步地图。类型与纯函数在 core/map/style-diff.ts。详见 ADR-19。
rAF 合帧同一帧内的多次变更合成一次 diff 下发,避免每击一次键就碰一次地图。
计数信号通道跨组件「打开面板加联动」的触发通道:计数器而非布尔,未挂载期的请求不丢,消费即焚。R7.1 起内核 Subject 化。出处:core/ui.service.ts。
装载链从打开项目或样式到四个 store 就绪的整条链路:迁移、归一、校验、装载布防。程序化装载必须先 suppressNextSave(),否则草稿自动保存会把装载当成用户编辑,「放弃草稿」变死循环(R6.7 铁律)。
单源守卫同一守卫逻辑只写一份的约束。现成例子:锁定拦截统一走 UiService.notifyStyleLocked(),文案常量 STYLE_LOCKED_TOAST 一处改全局生效(S4 收敛了 24 处复制粘贴)。出处:core/ui.service.ts。
宁响勿静默校验与迁移失败的原则:中文报错并拒绝,不静默吞坏档。出处:migrations 与 codec 注释。
备案对「不收编、不合并、保留现状」的正式登记,附理由,防止同一提案重复立项。翻案需用户裁决销账。出处:ARCHITECTURE-RULES §10。

测试与门禁 ​

术语白话解释
门禁提交或合并前必须全绿的检查项。分层:PR 快检(typecheck、单测、覆盖率、构建、生产冒烟、docs 构建)、nightly 全回归(全量 e2e 加视觉基线)。详见 guide/testing。
架构测试tests/architecture.test.ts,分层铁律的机器固化:依赖方向 grep、import 图无环 DFS、订阅纪律文本扫描。红即禁入。
视觉基线中文界面 11 状态截图对比门禁(pixelmatch,阈值 0.4%),基线 PNG 随仓库,有意视觉变更先 --update 随 PR 提交。出处:tools/visual-baseline.mjs、tools/baseline/zh-cn/。
冻结样式世界e2e 断言不锚定开发默认样式,统一装载 tools/fixtures/ 冻结样式,避免断言随网络演示样式漂移。出处:tools/lib/load-fixture.mjs。
追溯门禁e2e-tests/traceability.mjs:用例文档的 UC-NN 表与 e2e 套件里的 uc('UC-NN') 字面量双向匹配,文档写了没测、测了没文档,两边都红。
e2e 审计独立辅助套件 e2e-audit/:15 域全参数矩阵逐例验证「地图渲染生效加界面回显」,只记录不修复(findings.md)、修复回填 fixes.md。手动运行,不进任何自动门禁。
bench性能基准(vitest bench 加浏览器侧 verify),关注 update 全管线、diffStyles 线性度、回灌成本等热点。出处:style-bench。
Stryker 变异分变异测试得分,衡量测试是不是真在杀逻辑(R6.4 从 75.67% 补到 94.56%)。
单测镜像树测试全部住 editor/tests/,目录结构与 src 镜像;src 保持纯生产代码。出处:ADR-10。

轮次与编号 ​

术语白话解释
M 轮复刻里程碑编号(M0 至 M6.11),2026-09-10 到 09-12 的 Studio 复刻期。索引见 roadmap。
R 轮重构与治理轮次编号(R1 至 R7.x)。明细在 editor/docs/refactor/REFACTOR-CHANGELOG.md。
E 轮表达式内核 AST 化轮次(E1 至 E6),记账在 design/ 与 roadmap。
D 决策用户亲自裁决的方向性决策(D1 GISSDK 集成至 D5 双文档架构),登记在 roadmap 决策表。翻备案类裁决需同级别权限。
R-xx / T-xx需求与任务编号台账,CSV 含状态列。真源:docs/spec/full-requirements/。注释里只许写「为什么」,编号去台账查(S6 口径)。
RK-xx架构风险编号(等级、状态、触发条件、责任域),台账在 DEVELOPMENT-GUIDE 风险节。
UC-NN用例编号,用例文档与 e2e 套件经追溯门禁一一对应。真源:docs/spec/usecases/。
接力轮像素复刻接力进度链(第一至十二轮加 UI 修复批),已收口,明细在 git 历史。
AI 维护文档仓内文档文首的标记:该文档面向 AI 延续性阅读、随轮次同步更新;人类读者以本站为准。登记规则见 doc-map。