CesiumJS 导出实战手册:截图、录像、地理数据,怎么挑对输出
【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium
把用 CesiumJS 搭好的三维地球塞进汇报、录成演示视频、或者交给别的团队继续用,导出是最后一段路。这篇文章把截图、录像、数据导出三条路径按实操讲清楚:各自什么时候用、怎么做、参数往哪调。
先看三者的横向对比:
| 类型 | 典型场景 | 输出格式 | 上手成本 |
|---|---|---|---|
| 截图 | 汇报插图、演示定格、成果存档 | PNG 图片 | 调一次方法,最低 |
| 录像 | 相机飞行、实体动画、时间动态演示 | WebM 视频 | 中等,需配合浏览器录制能力 |
| 数据导出 | 把地理实体交给其他工具 | KML/KMZ、CZML、GeoJSON | 低,有现成 API |
📦 数据导出先行:三种数据格式怎么选
什么时候用:场景里的实体要拿去 Google Earth 这类工具打开,或者想把地理数据落盘归档、随时能再加载回来。
怎么做:
- 把数据以 CZML、KML 或 GeoJSON 加载成 DataSource,三种 CesiumJS 都认识。
- 调
Cesium.exportKml,把实体集传进去。 - 加
kmz: true,引擎会把 KML 连同模型、纹理一起压成单个 KMZ。 - 用返回的 Blob 触发浏览器下载。
参数怎么调:sampleDuration默认 60 秒,即时间动态属性每 60 秒采一个样本,轨迹变化快就调小;time决定"不能在 KML 里做动态"的属性取哪个时刻的值;场景里有模型时必须提供modelCallback,声明要内嵌哪些文件。格式上:GeoJSON 适合静态几何,纯文本可直接序列化;CZML 保留完整时间维度;KML 走 Google Earth 兼容路线。注意 KML 导出只覆盖点、标绘牌、模型、路径、多边形、折线这几类,其余图元不会进文件。实现细节可查 exportKml.js。
🎥 录像:帧率和分辨率怎么选不翻车
什么时候用:凡是"画面在动"的演示——相机飞行、模型动画、随时间变化的效果——想留成视频,都走这条路。
怎么做:
- 找到 Viewer 内部的 WebGL canvas。
- 调
canvas.captureStream(30)拿到实时渲染流。 - 用
MediaRecorder包起来,编解码选video/webm。 - 监听
onstop,把收到的分片拼成文件下载。
参数怎么调:30fps 是文件大小和观感流畅度的平衡点,60fps 收益很小、体积翻倍,低于 24fps 会明显发顿。录像分辨率跟画布走——画布小,录出来就小,录之前把画布尺寸或分辨率缩放调大,成片才够清晰。
🖼️ 截图:把一帧渲染变成 PNG
什么时候用:要一张定格图——报告插图、成果归档、改前改后对比,都适合。
怎么做:
- 别急着拍,先等场景渲染完成,挂 postRender 事件是最稳的触发时机。
- 对 canvas 调
toDataURL("image/png")。 - 拿一个临时链接把数据写成可下载的文件。
参数怎么调:出图的物理像素就是画布的物理像素。想要更高清,先把画布尺寸或像素比调大再拍;想压体积,则反向操作、把画布调小。
进阶:批量截图与自定义配置
批量出图:把一组相机机位固定下来,循环flyTo每个机位,落地后在 postRender 里各拍一张,几十个角度无人值守出完,适合做素材库或批量验收。
自定义:渲染质量、分辨率缩放这类开关集中在 Scene.js,先按目标质量调好,再开拍。
一个容易踩的坑:WebGL 默认每帧清缓冲(preserveDrawingBuffer 为 false),等画面"显示出去"之后再调 toDataURL,很可能拿到一张黑图或空白图——要么在 postRender 内部取帧,要么切到 requestRenderMode 按需渲染。
按场景选导出
- 汇报、演示要一张定格 → 截图,PNG
- 相机飞行、动画演示 → 录像,webm,30fps
- 地理数据交给外部工具 → 数据导出,KML/CZML/GeoJSON
【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考