SuperMap iClient3D for WebGL教程(空间分析)- 视频投放

2024-02-25 09:32

本文主要是介绍SuperMap iClient3D for WebGL教程(空间分析)- 视频投放,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


视频投放的作用是将当前视角作为观察点或者指定观察点,将指定的视频文件投影在场景中播放,用来模拟视频中事件发生的真实情景。实现的思路是用h5的video标签来加载播放视频,然后将它投放到场景的建筑模型上或者地面上,下面我们就直接讲代码如何实现此功能。

开发步骤
1.用video加载需要投放的视频

<video id="trailer" style="display:none" autoplay loop crossorigin controls><source src="media/video.mp4" type="video/mp4">
</video>

2.引用核心样式文件和库文件

<script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script>
<link href="../Build/Cesium/Widgets/widgets.css" rel="stylesheet">

3.实例化三维球,'cesiumContainer’是三维球所在div的ID,并创建视频投放对象

var viewer = new Cesium.Viewer('cesiumContainer');
var projectionImage = new Cesium.ProjectionImage(scene);

4.获取video,并且指定给视频投放对象

var videoElement = document.getElementById('trailer');
projectionImage.setImage({video: videoElement});

5.加载范例数据,相机定位

var promise = scene.open('http://www.supermapol.com/realspace/services/3D-CBD/rest/realspace');
scene.camera.setView({destination: Cesium.Cartesian3.fromDegrees(116.4486, 39.9092, 91.3293),orientation: {heading: 3.179304500963121,pitch: -0.46239072362282485,roll: 6.283185307179583}});

6.设置视频投放对象的距离及方向

	projectionImage.setDistDirByPoint([116.4486, 39.909199999999984, 91.32930000079432]);projectionImage.distance = 200;

7.设置视频投放对象观察点位置以及高度和宽度

	projectionImage.viewPosition = [116.448524, 39.90918546, 85.9432];projectionImage.horizontalFov =20;projectionImage.verticalFov = 20;

8.执行视频投放

projectionImage.build();

最终效果如下图:

在这里插入图片描述

完整Demo可参考SuperMap iClient 3D for WebGL官方在线范例:

http://support.supermap.com.cn:8090/webgl/examples/editor.html#projectionImage

这篇关于SuperMap iClient3D for WebGL教程(空间分析)- 视频投放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745070

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安