cesium实现区域贴图及加载多个gif动图

       1、cesium加载多个gif动图

        Cesium的Billboard支持单帧纹理贴图,如果能够将gif动图进行解析,获得时间序列对应的每帧图片,然后按照时间序列动态更新Billboard的纹理,即可实现动图纹理效果。为此也找到了相对于好一点的第三方库libgif能够将gif转化为一帧帧图像,正好能够满足我们的需求!!!

let gifImgList = [];data?.forEach((tag) => {let url = huangren;let gifDiv = document.createElement("div");let gifImg = document.createElement("img");// gif库需要img标签配置下面两个属性gifImg.setAttribute("rel:animated_src", url);gifImg.setAttribute("rel:auto_play", "1"); // 设置自动播放属性gifDiv.appendChild(gifImg);let superGif = new SuperGif({gif: gifImg,});gifImgList.push(superGif);});data?.forEach((tag, ind) => {gifImgList[ind].load(function () {onViewer.entities.add({_content: tag,position: new Cesium.Cartesian3.fromDegrees(Number(tag.longitude),Number(tag.latitude),100),billboard: {//图标image: new Cesium.CallbackProperty(() => {// 转成base64,直接加canvas理论上是可以的,这里设置有问题return gifImgList[ind].get_canvas().toDataURL();}, false),scale: 0.25,// width: 36,// height: 36,//sizeInMeters: true,//以米为单位,近大远小//pixelOffset: new Cesium.Cartesian2(0,20), //设置左右、上下移动//rotation:1.58, //设置旋转角度//scaleByDistance: new Cesium.NearFarScalar(20000,1,8000000, 0.1), //设置近大远小//pixelOffsetScaleByDistance: new Cesium.NearFarScalar(20000,10,8000000,100), //设置偏移量// translucencyByDistance:new Cesium.NearFarScalar(20000,1,8000000,0), //设置透明// distanceDisplayCondition: new Cesium.DistanceDisplayCondition(//   20000,//   8000000// ), //限制区域显示与隐藏//水平方向heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,// 垂直方向verticalOrigin: Cesium.VerticalOrigin.BASELINE,},});});});

2、cesium加载geoJSON并贴图

const dataSource = new Cesium.GeoJsonDataSource();dataSource.load("https://geo.datav.aliyun.com/areas_v3/bound/110000.json", {clampToGround: true,}).then(() => {onViewer.dataSources.add(dataSource);const entities = dataSource.entities.values;for (let i = 0; i < entities.length; i++) {const entity = entities[i];// 修改 entity 样式entity.polygon.material = new Cesium.ImageMaterialProperty({image: beijin,});entity.polygon.outline = false;// 添加 entity 的 polylineentity.polyline = {positions: entity.polygon.hierarchy._value.positions,width: 2,material: Cesium.Color.fromCssColorString("#ffff"),clampToGround: true,};// 获取一个 entity 的中心位置const center = Cesium.BoundingSphere.fromPoints(entity.polygon.hierarchy._value.positions).center;// 设置中心位置entity.position = center;// 添加 textentity.label = {text: entity.properties.name,color: Cesium.Color.fromCssColorString("#fff"),font: "normal 32px MicroSoft YaHei",showBackground: true,scale: 0.5,horizontalOrigin: Cesium.HorizontalOrigin.LEFT_CLICK,verticalOrigin: Cesium.VerticalOrigin.BOTTOM,disableDepthTestDistance: 10000.0,};}// if (zoomto) {onViewer.zoomTo(dataSource);// }});return dataSource;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 strcpy_s 函数 - C语言零基础入门教程

目录 一.strcpy 函数简介二.strcpy 函数实战 1.strcpy 函数简单使用2.strcpy 函数拷贝内容以’\0’结尾3.strcpy 函数注意崩溃问题 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strcpy 函数简介 C 语言在 string.h 中strcpy函数,可用完成…

Lock锁详细讲解

package com.wuming.thread;import java.util.concurrent.locks.ReentrantLock;//测试Lock锁 public class TestLock {public static void main(String[] args) {TestLock2 testLock2 new TestLock2();//多个对象操作同一个资源票&#xff0c;不用lock时线程不安全/* 1089765…

DevOps“兵器”60样,你都会使哪几样?

戳蓝字“CSDN云计算”关注我们哦&#xff01;编前按&#xff1a;获得开发者社区支持的自动化&#xff0c;开源的工具是大家梦寐以求的。这里列举了 60 多款最棒的开源工具&#xff0c;可以帮助你很好的实行 DevOps。一、开发工具版本控制&协作开发1.版本控制系统 GitGit是一…

synchronized和lock

区别&#xff1a; lock手动开启和关闭锁&#xff0c;synchronized出了作用域自动释放 lock只要代码块锁&#xff0c;synchronized有方法锁和代码块锁 lock锁jvm花费较少的时间调度线程&#xff0c;性能更好&#xff0c;更好的扩展性&#xff08;提供更多的子类&#xff09; …

C语言 memcpy 函数 - C语言零基础入门教程

目录 一.memcpy 函数简介二.memcpy 函数实战 1.memcpy 函数简单使用2.strcpy 函数属于字符串拷贝3.memcpy 函数属于内存拷贝4.memcpy 函数注意崩溃问题 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.memcpy 函数简介 C 语言在 string.h 中…

云漫圈 | 腾讯面试,我竟然输给了final关键字

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;乔戈里来源&#xff1a;程序员乔戈里腾讯面试现场——————final 在 Java 中是一个保留的关键字&#xff0c;可以声明变量、方法、类。什么是final变量 / 类 / 方法&#xff1f;任何变量前被 final 修饰就是 fin…

C语言 memcpy_s 函数 - C语言零基础入门教程

目录 一.memcpy_s 函数简介 1.memcpy 函数报错&#xff1a;error C49962.memcpy 函数没有方法来保证有效的缓冲区尺寸&#xff0c;使用不安全 二.memcpy_s 函数语法三.memcpy_s 函数实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.memcp…

多线程:生产者消费者问题

1.假设仓库只能存一件产品&#xff0c;生产者将产品放入仓库&#xff0c;消费者将产品从仓库取出 2.仓库没有产品&#xff0c;生产者将产品放仓库&#xff0c;否则停止生产并等待&#xff0c;直到仓库产品被消费者取走 3.如果仓库放有产品&#xff0c;消费者可取走&#xff0…

学习微服务网关zuul,看这篇就够了

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;爱撒谎的男孩 原文&#xff1a;https://chenjiabing666.github.io/2018/12/25/zuul%E6%9C%8D%E5%8A%A1%E7%BD%91%E5%85%B3/本文系读者投稿&#xff0c;已获作者原创授权。如果你有好文章&#xff0c;可以戳这里投稿…

C语言 strcat 函数 - C语言零基础入门教程

目录 一.strcat 函数简介二.strcat 函数原理三.strcat 函数实战四.注意 strcat 函数崩溃问题五.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strcat 函数简介 前面文章中介绍了关于字符串拷贝的相关函数&#xff0c;例如&#xff1a;strcpy…

多线程:管cheng法

package com.wuming.thread;//测试&#xff1a;生产者消费者模型&#xff0c;利用缓冲区解决&#xff1a;管程法 //生产者&#xff0c;消费者&#xff0c;产品&#xff0c;缓冲区 public class TestPC {public static void main(String[] args) {SynContainer container new S…

C语言 strcat_s 函数 - C语言零基础入门教程

目录 一.strcat_s 函数简介二.strcat_s 函数原理三.strcat_s 函数实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strcat_s 函数简介 前面文章中介绍了关于字符串拼接函数 strcat &#xff0c;而 strcat_s 函数和 strcat 函数一样&…

写给程序员的裁员防身指南

戳蓝字“CSDN云计算”关注我们哦&#xff01;大家都知道 18 年底许多大公司都开始了「人员优化」动作&#xff0c;不仅仅美团等大厂有所行动&#xff0c;就连一些平时求贤若渴的小公司也有所动作。本来我以为关于劳动法的事情&#xff0c;许多人应该多多少少都应该了解。但最近…

多线程:信号灯法

package com.wuming.thread;//测试生产者消费者问题2&#xff1a;信号灯法&#xff0c;标志位解决 public class TestPc2 {public static void main(String[] args) {TV tv new TV();new Player(tv).start();new Watcher(tv).start();} } //生产者-->演员 class Player ext…

C语言 va_start 宏 - C语言零基础入门教程

目录 一.前言二.va_start 简介三.va_start 使用四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 对 printf 函数的使用&#xff0c;我们并不陌生&#xff0c;首先我们来看看下面关于 printf 函数的几种调用方式&#xff1a; printf(&q…

使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署

戳蓝字“CSDN云计算”关注我们哦&#xff01;对于本教程&#xff0c;您将拥有一个Docker化Spring-Boot实例程序&#xff0c;该应用程序与MongoDB通信以获取GET/POST API请求&#xff0c;并部署在Kubernetes集群中。前提条件MinikubeKubectlDockerMavenDocker是一个具有"社…

C语言 va_end 宏 - C语言零基础入门教程

目录 一.前言二.va_end 简介三.va_end 使用四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 对 printf 函数的使用&#xff0c;我们并不陌生&#xff0c;首先我们来看看下面关于 printf 函数的几种调用方式&#xff1a; printf("…

5种数据分析常用的思维方法!

戳蓝字“CSDN云计算”关注我们哦&#xff01;转自&#xff1a;中国统计网来源&#xff1a;网络大数据在数据分析中&#xff0c;数据分析思维是框架式的指引&#xff0c;实际分析问题时还是需要很多“技巧工具”的。就好比中学里你要解一元二次方式&#xff0c;可以用公式法、配…

多线程总结

package com.wuming.thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;//多线程总结 public class ThreadNew {public static void main(String[] args) {new MyThread1().start();new…

C语言 va_arg 宏 - C语言零基础入门教程

目录 一.前言二.va_arg 简介三.va_arg 使用四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 对 printf 函数的使用&#xff0c;我们并不陌生&#xff0c;首先我们来看看下面关于 printf 函数的几种调用方式&#xff1a; printf("…