# Preview:Cesium 预览层
> 覆盖浏览器运行时 `scripts/lib/cesium-preview.js`(672 行)与
> `cesium-preview.css`(230 行),以及 Node 侧的 `scripts/lib/area-preview.js`。
> 运行时:浏览器。全仓唯一的 DOM 环境。
---
## 定位
预览层是**验证性的,不是产物本身**。它加载 `cesium` 阶段导出的 `.glb` + `.json`,
用来确认资产在真实 Cesium 里的样子。改这一层**不会**改变 Blender/GLB 主资产。
车辆巡航同理——README 里写明它是"用于验证高精度巡航可用性的预览层功能"。
---
## 没有构建步骤
```
scripts/lib/cesium-preview.js ─── 原样 copyFileSync ──▶ outputs//cesium-preview.js
scripts/lib/cesium-preview.css ─── 原样 copyFileSync ──▶ outputs//cesium-preview.css
(area-preview.js:writeCesiumPreviewSupportFiles)
-cesium-preview.html ─── 模板字符串生成 ────▶ 同目录
(area-preview.js:cesiumPreviewHtml)
```
所以:**没有打包、没有转译、没有 npm 依赖、没有模块系统**。浏览器直接吃。
写代码时只能用目标浏览器原生支持的语法,`Cesium` 从 CDN 全局引入。
整个文件是一个 IIFE + `"use strict"`(`cesium-preview.js:1-2`)。
---
## 参数注入
JS 不硬编码任何文件名,全部从 HTML 注入的全局对象读:
```js
const config = window.OSM_ASSET_PREVIEW_CONFIG || {}; // :4
// config.areaId / .glbName / .metadataName / .routeName / .vehicleModelName
```
生成侧在 `scripts/lib/area-preview.js` 的 `cesiumPreviewHtml()`,注入时**必须转义**:
| 场景 | 用 |
|---|---|
| HTML 文本/属性 | `escapeHtml()` |
| `