cesium 动态线效果

一、扩展材质

function PolylineTrailMaterial(options) {options = Cesium.defaultValue(options, Cesium.defaultValue.EMPTY_OBJECT);this._definitionChanged = new Cesium.Event();// 变量初始化this.color = Cesium.defaultValue(options.color && new Cesium.Color.fromCssColorString(options.color), Cesium.Color.RED);this.image = options.image || '';this.duration = options.duration || 1000;this.time = (new Date()).getTime();}// 材质类型PolylineTrailMaterial.prototype.getType = function (time) {return "PolylineTrail";};// 这个方法在每次渲染时被调用,result的参数会传入glsl中。PolylineTrailMaterial.prototype.getValue = function (time, result) {if (!Cesium.defined(result)) {result = {};}result.color = Cesium.Property.getValueOrClonedDefault(this.color, time, Cesium.Color.WHITE, result.color);result.image = Cesium.Property.getValueOrClonedDefault(this.image);result.time = (((new Date()).getTime() - this.time) % this.duration) / this.duration;return result;};PolylineTrailMaterial.prototype.equals = function (other) {return this === other ||other instanceof PolylineTrailMaterial && Cesium.Property.equals(this.color, other.color) && Cesium.Property.equals(this.image, other.image) && Cesium.Property.equals(this.duration, other.duration);};Object.defineProperties(PolylineTrailMaterial.prototype, {isConstant: {get: function get() {return false;}},definitionChanged: {get: function get() {return this._definitionChanged;}},color: Cesium.createPropertyDescriptor('color'),image: Cesium.createPropertyDescriptor('image'),duration: Cesium.createPropertyDescriptor('duration'),});Cesium.Material._materialCache.addMaterial("PolylineTrail", {fabric: {type: "PolylineTrail",uniforms: {color: new Cesium.Color(1, 1, 0, 1.0),image: '',duration: 1,time: 0},source:`czm_material czm_getMaterial(czm_materialInput materialInput)\n\{\n\czm_material material = czm_getDefaultMaterial(materialInput);\n\vec2 st = materialInput.st;\n\vec4 colorImage = texture2D(image, vec2(fract(st.s - time), st.t));\n\material.alpha = colorImage.a * color.a;\n\material.diffuse = color.rgb;\n\return material;\n\}`},translucent: function translucent() {return true;}});// 写到Cesium对象上,就可以像其他MaterialProperty一样使用了Cesium.Material.PolylineTrailType = 'PolylineTrail'Cesium.PolylineTrailMaterialProperty = PolylineTrailMaterial

二、调用

viewer.entities.add({name: 'polyline',polyline: {positions: Cesium.Cartesian3.fromDegreesArray([113.394743, 38.090979,113.395422, 38.091654,]),width: 10,material: new Cesium.PolylineTrailMaterialProperty({color: '#f00',image: './image/trailLinkBlue.png'})}});

 

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

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

相关文章

web漏洞合集描述和修复建议

完整Excle文件可移步至知识星球查看下载 星球不定时分享网上各种资料,欢迎大家加入交流。

STM32F4 Hal库中IO外部中断(EXIT)的应用

目录 概述 1 中断和事件 1.1 外部中断/事件控制器 (EXTI) 1.2 EXTI主要特性 1.3 中断和事件的差别 1.3.1 中断产生流程 1.3.2 事件产生流程 1.3.3 STM32F4的事件 2 STM32Cube配置工程 2.1 外部中断/事件介绍 2.2 配置参数 2.3 生成Project 3 STM32F4 Hal库中外部中…

助力突发异常事件预警保障公共安全,基于YOLOv7【tiny/l/x】模型开发构建公共生活场景下危险人员持刀行凶异常突发事件检测预警识别系统

基于AI目标检测模型的暴力持刀行凶预警系统是当下保障人民生命安全的新途径,近年来,公众场合下的暴力袭击事件频发,不仅给受害者及其家庭带来了深重的伤害,也对社会的稳定和安全造成了极大的威胁。在这种背景下,如何有…

vulfocus靶场tomcat-cve_2017_12615 文件上传

7.0.0-7.0.81 影响版本 Windows上的Apache Tomcat如果开启PUT方法(默认关闭),则存在此漏洞,攻击者可以利用该漏洞上传JSP文件,从而导致远程代码执行。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多…

【MySQL】InnoDB与MyISAM存储引擎的区别与选择

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。 存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。…

深度剖析图像处理—边缘检测

什么是边缘检测 边缘检测(Edge Detection)就是提取图像中的边缘点(Edge Point)。边缘点是与周围像素相比灰度值有阶跃变化或屋顶状变化的像素。边缘常存在于目标与背景之间、目标与目标之间、目标与其影子之间。 ​ 在图像处理和图像分析中,经常要用到边缘(Edge)、边…

【YOLOv8改进[注意力]】YOLOv8添加DAT(Vision Transformer with Deformable Attention)助力涨点

目录 一 DAT 二 YOLOv8添加DAT助力涨点 1 总体修改 2 配置文件 3 训练 其他 一 DAT 官方论文地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Xia_Vision_Transformer_With_Deformable_Attention_CVPR_2022_paper.pdf Transformers最近在各种视…

学生选课及成绩查询管理系统的设计与开发C#(winform + sqlserver)

源码来自网络 技术栈: C#的窗体程序开发 本系统未采用C#实现MDI——多文档窗口,因为考虑到C#的该技术与java类似,而暑期java实训时,曾用过类似的方法做过停车场管理系统,所以想为这次的系统注入一点新鲜的血液&#x…

C++修炼之路之多态---多态的原理(虚函数表)

目录 一:多态的原理 1.虚函数表 2.原理分析 3.对于虚表存在哪里的探讨 4.对于是不是所有的虚函数都要存进虚函数表的探讨 二:多继承中的虚函数表 三:常见的问答题 接下来的日子会顺顺利利,万事胜意,生活明朗--…

五、【易 AI】鼠标事件与目标焦点

所谓辉煌的人生,不过是欲望的囚徒。 ——叔本华 注:自本节开始,所有的示例都以 OpenGLWidget 实现, 一、鼠标事件 重写鼠标事件, #ifndef MYOPENGL_H #define MYOPENGL_H#include <QOpenGLWidget> #include <QTimer> #include <QMouseEvent>class My…

CUDA编程【2】-(51-78)

系列文章目录 文章目录 系列文章目录前言51、寄存器溢出51.1 溢出概念51.1 使用控制 52、本地内存和共享内存52.1 本地内存52.2. 共享内存 53. 常量内存53.1 概念53.2 初始化 54. 全局内存54.1 概念54.2 初始化 55. GPU缓存和变量作用域55.1 缓存类型55.2 变量作用域 56. 静态全…

鲁抗医药专属采购商城上线,携手隆道公司注入数字化采购新动能

近日&#xff0c;国内领先的医药制造企业——山东鲁抗医药股份有限公司&#xff08;以下简称鲁抗医药&#xff09;与隆道公司联手打造的鲁抗医药专属采购商城上线运行。该商城&#xff0c;通过整合鲁抗医药合作电商和合格供应商资源&#xff0c;创新商城化采供协同模式&#xf…