/*** @description: 将地图canvas及上面的entity转换为bolb对象* @param: viewer地图对象
*/
export function captureScreenshot(viewer) {const { when } = Cesium;const deferred = when.defer();const scene = viewer.scene;var removeCallback = scene.postRender.addEventListener(function() {removeCallback();try {const cesiumCanvas = viewer.scene.canvas;// If we're using the splitter, draw the split position as a vertical white line.let canvas = cesiumCanvas;canvas.toBlob(function(blod) {deferred.resolve(blod);}, "image/png");// deferred.resolve(canvas.toDataURL("image/png"));} catch (e) {deferred.reject(e);}}, this);scene.render(viewer.clock.currentTime);return deferred.promise;
}
/*** @description: 将bolb对象导出为图片* @param: blob对象* @param: filename文件名
*/
export function saveAs(blob, filename) {if (blob === null) {return;}if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename);} else {const target = document.createElement("a");const body = document.querySelector("body");target.href = window.URL.createObjectURL(blob);target.download = filename;target.style.display = "none";body.appendChild(target);target.click();body.removeChild(target);window.URL.revokeObjectURL(target.href);}
}

调用以上方法实现场景出图

   const $promise = captureScreenshot(viewer);if ($promise) {$promise.then((blob) => {// 获取地图数据blob && saveAs(blob, `${Date.now()}.png`);});}

实现效果:

Cesium实现场景截图相关推荐

  1. Cesium|xt3d 场景工具、测量工具

    Cesium|xt3d 场景工具.测量工具 效果 代码 预览地址 效果 代码 <!DOCTYPE html> <html lang="zh-CN">< ...

  2. ARFoundation入门教程U2-AR场景截图截屏

    ARFoundation入门教程U2-AR场景截图截屏 <ARFoundation入门教程U1-android权限申请和配置升级>配置了android权限申请,获取权限后使用代码截屏,AR ...

  3. cesium小场景鹰眼地图

    一.基本需求 由于项目需要,用基于CEIUSM引擎和3DMAX建模搭建一个小区级别的三维场景,在导航时,需要实现鹰眼小地图.一看到鹰眼小地图,我们会很自然地想到用百度地图或者别的什么地图加一个小图标, ...

  4. Cesium 开启场景FPS显示

    Viewer.scene.debugShowFramesPerSecond = true

  5. Cesium开发高级篇 | 05场景后期处理

    为实现三维模型的更炫.更酷.更美观,Cesium在1.46的版本中新增了场景的后期处理(Post Processing)功能,包括模型描边.黑白图.明亮度调整.夜市效果.环境光遮蔽,也包括雷达扫描.原 ...

  6. cesium之三维场景展示篇

    本篇实现cesium三维场景展示,效果图如下: 三维模型.gltf场景展示 倾斜摄影场景展示 详细的实现过程见:这里

  7. cesium 之三维场景展示篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  8. DEJA_VU3D - Cesium功能集 之 085-屏幕打印(地图出图)

    前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的追加,所以暂时 ...

  9. 结合WebSocket编写WebGL综合场景示例

    在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制. 首先是场景截图: 上图在场景中导入一个Babylon骨骼模型,使用asdw.空格.鼠标控制加速度移动 ...

最新文章

  1. blocked java线程_Java线程状态:BLOCKED与WAITING的区别
  2. mime设置 压缩html,MIME设置功能
  3. 科大星云诗社动态20201122
  4. LeetCode 1981. 最小化目标值与所选元素的差(DP)
  5. 为什么二级菜单会被挡住_父页面弹出菜单被子页面挡住问题
  6. 【Qt串口调试助手】1.0 - 400行代码撸一个Qt5串口调试助手框架
  7. 【廖雪峰官方网站/Java教程】反射
  8. Android ViewDragHelper的简单分析及应用(二)
  9. 区块链 比特币 以太坊 hyperledger fabric智能合约比较 不同的区块链比较
  10. python中模运算_Python中的模运算
  11. C++与C调用so文件
  12. echarts图表格式记录
  13. 攻防世界easyphp解题wp
  14. 代码读智识  笔墨知人心
  15. 环洋市场调研-2022年全球一次性餐具市场总体规模及应用细分研究报告
  16. python绘制contourf填色图,设置色标,解决填图的颜色与实际数值不一致的问题
  17. 进入AI领域做产品 —— 我的自学之路(AI+行业的基础认知)
  18. azkaban 调度任务一直处于preparing状态
  19. 度娘果然毫无节操,纯粹就是order by 广告费 desc
  20. 数加加众包深耕AI第8年,苹果加码人工智能和机器学习

热门文章

  1. CactiEZ-安装篇
  2. 如何对一个网站进行渗透测试,并且有哪些风险需要进行规避?
  3. 哪种邮件群发软件最好用?不骗人,能免费发邮件.群发邮件进收件箱.
  4. 恩尼格码的发明和破解
  5. 2013年三月GBin1月刊
  6. SQLserver中建立外键时显示引用了无效的表
  7. 支付宝、微信“重兵”搜索,小程序下半场或“变天”
  8. 2020B证(安全员)考试及B证(安全员)实操考试视频
  9. C语言编程年龄的立方是个四位数,C 程序设计 功能:求一个四位数的各位数字的立方和。...
  10. 《3D打印就这么简单》——6.3节Tinkercad总结