Cesium修改地球的贴图为视频或者图片

简介: 这篇文章说明了如何在Cesium中修改地球的贴图,替换为自定义的图像或视频纹理。

这节讲下如何修改Cesium的纹理贴图,可以修改为图片或者视频,因为默认的地球贴图其实类似百度地图,用一张张的瓦片贴上去的,在鼠标给地球放大的同时会切换更加精细的图片,这里修改后的贴图可能没有放大变得精细的功能,就只是修改一个球面的外部贴图,详细的实现方式和步骤会在代码的中提供,这里放上代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="Cesium/Cesium.js" charset="utf-8"></script>
    <link href="Cesium/Widgets/widgets.css" rel="stylesheet"/>
  </head>

<body>
    <div id="cesiumContainer"></div>
    <video id="trailer" style="display: none;" muted autoplay loop crossorigin controls>
        <source src="tt.mp4" type="video/mp4">
    </video>

    <script>
        // 设置token
        Cesium.Ion.defaultAccessToken = 'token';

        //初始化div容器为cesium
        var viewer = new Cesium.Viewer('cesiumContainer');
        //修改地球的贴为另一个图片
        //var viewer = new Cesium.Viewer('cesiumContainer', {
        //    imageryProvider: new Cesium.SingleTileImageryProvider({
        //        url: 'worldimage.jpg'
        //   })
        //});

        //获取视频的div
        var videoElement = document.getElementById('trailer');
        //设置视频自动播放
        videoElement.play();
        //添加一个实体到Cesium场景中
        var rect = viewer.entities.add({
        //指定实体为矩形
            rectangle: {
                //表示全球范围的矩形区域。该矩形的经度范围为-180到180度,纬度范围为-90到90度
                coordinates: Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0),
                //将视频元素作为矩形的材质.也就是将视频作为贴图
                material: videoElement
            }
        });
        //使视图跟踪该实体
        viewer.trackedEntity = rect;
    </script>
</body>

</html>

效果图 1693962808926.jpg 测试的时候需要提供MP4的视频,如果是替换图片的话需要提供图片。保证相对路径的准确, 好了,以上如果有问题可以在评论区给我留言

相关文章
|
定位技术
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
2827 0
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
|
定位技术
干货!解决Cesium中Entity移动漂移的问题
案例场景:在Cesium开发三维场景展示中,肯定会碰到加载Entity的需求,如果在你的gis应用中,带了地形的展示。那么在旋转切换画面时,Entity是否跟着一起动了起来,感觉像漂移一样呢?
5046 0
干货!解决Cesium中Entity移动漂移的问题
cesium添加实体不被地形遮挡的参数设置
disableDepthTestDistance:指定从相机到禁用深度测试的距离,关于深度测试我们将在后面的文章中介绍到,由于深度测试的存在,我们的对象很多时候会被地形挡住,如下:
3434 0
cesium添加实体不被地形遮挡的参数设置
|
JavaScript 数据格式
js 计算两个时间的时间差
如题,就像题目说的需要计算出时间差,虽然不太难,但这个需求经常会在项目中遇到的,我在这边做一下整理,希望能够尽量全的整理出来。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。 本文首发于我的个人blog:obkoro1.com 计算时间差原理: getTime()方法 方法定义: getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。 通常我们计算时间差都是通过获取两个时间数据,然后分别使用getTime()方法返回与固定的1970 年 1 月 1 日的时间差,通过对返回毫秒数的差,换算成时间单位,得出两个时间的时间差。 开始操作:
1604 0
js 计算两个时间的时间差
|
JavaScript 数据可视化 前端开发
1.Cesium介绍及环境配置
本文中我们介绍了cesium开发环境的配置,以及vue中cesium页面的初始化
1481 0
Cesium给物体添加贴图
这篇文章讲解了在Cesium中如何为3D模型添加贴图,并提供了具体的实现步骤和代码示例。
1199 2
|
程序员 Docker Python
解决Python中没有模块名‘PyQt5.QtCore’的问题
只要抓住了以上的原则和步骤,解决“没有模块名‘PyQt5.QtCore’”的问题就不再是难题。当然,对于更复杂的环境,例如在Docker容器、在特殊操作系统、或使用特殊Python运行时(如PyPy)中运行PyQt5等情况,可能需要采取其他的步骤和策略。不过放心,凭借一点灵活的思维,和饱满的耐心,你肯定能够找到和解决掉问题的源头,然后继续你的PyQt5项目!
789 21
|
JSON 数据格式
Cesium实现贴地线
这篇文章介绍了在Cesium中实现地面贴合线的效果及其相关技术要点。
654 5
Cesium实现贴地线
执行npm run dev的时候发生了什么
执行npm run dev的时候发生了什么
1882 61