CesiumJS 导出完整指南:截图、录像、数据导出 3 类需求一次说清
2026/9/11 11:51:02 网站建设 项目流程

CesiumJS 导出完整指南:截图、录像、数据导出 3 类需求一次说清

【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium

你在 CesiumJS 里搭好 3D 地理可视化场景后,总要把成果带出去:截一张图、录一段视频,或把地理数据导出成文件。这篇 CesiumJS 导出指南覆盖截图、录像、数据导出三条路,按先选型、后操作的顺序讲清楚每一步怎么做,关键处都标了接口名和源码位置。

🧭 CesiumJS 导出选型:截图、录像、数据导出各适合什么

要"画面"、要"过程"还是要"数据",先想清楚再动手,三者产物完全不同:

需求适合场景产物
CesiumJS 截图汇报配图、成果存档,只要当前这一帧单张 PNG
CesiumJS 录像相机飞行、实体动画、时间动态的全过程一段视频
CesiumJS 数据导出把实体、属性、时间信息交给其他软件继续用GeoJSON / CZML / KML 文件

📷 CesiumJS 截图:如何把当前场景存成 PNG

要的是"当前这一帧"时走这条路。CesiumJS 把场景渲染在 Canvas 上,你用 toDataURL 把画布转成 PNG 数据串,再触发浏览器下载即可。你调用 toDataURL 时,实际发生的是浏览器把 WebGL 画布当前帧读回内存并编码成图片数据,全程不用手动搭管道。

注意:等场景完全加载后再截——瓦片、模型、后处理都渲染完再动手,否则会截到半成品。

🎬 CesiumJS 录像:帧率与分辨率怎么选

要的是"过程"时走录像路线。CesiumJS 没有内置录像接口,标准做法是用浏览器原生的 MediaRecorder 包一层:你对 canvas 的 captureStream() 开始录制,实际发生的是浏览器把逐帧画面流实时编码成视频文件,相机移动、实体动画、时间动态都能被完整录下。

帧率建议 30fps,文件体积和流畅度平衡得最好;分辨率跟随 Canvas 实际尺寸,按需缩放。注意:编码会占用性能,硬件有限时先把分辨率降下来再开录,避免录制过程卡顿。

📦 CesiumJS 数据导出:GeoJSON、CZML、KML 各管什么

要的是"数据"而不是画面时,把实体导出成对应格式即可,三者分工明确:

  • GeoJSON:管点、线、面等几何要素,GIS 工具拿来即用
  • CZML:管时间动态数据,位置、样式随时长变化的内容可完整保留
  • KML:管第三方兼容,Google Earth 等工具直接打开

加载端源码在 GeoJsonDataSource.js、CzmlDataSource.js、KmlDataSource.js;导出侧的完整示例见 export-kml,里面演示了 exportKml 接口和把模型、贴图打包进 KMZ 的完整流程。

提醒:选格式只看下游——给 GIS 用选 GeoJSON,要时间回放选 CZML,给 Google Earth 用户选 KML。

🚀 进阶:脚本控制相机批量自动截图与自定义导出参数

需要多角度、多场景出图时,用脚本驱动相机逐个飞到位、每停稳一帧截一次,比手动快且角度可控。仓库的端到端测试页 CesiumPage.js 就是一个 Playwright 驱动的 CesiumJS 页面封装,可以直接参考它做无头批量出图。

自定义导出与渲染参数则看引擎源码:分辨率缩放、后处理等开关集中在 Scene.js,改这里的配置就能控制出图质量与格式。

三条路各归各位:画面存 PNG、过程存视频、数据存 GeoJSON/CZML/KML,对照开头的选型表对号入座就能开工。

【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询