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.mzph.cn/news/826988.shtml

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

相关文章

基于区间预测的调度方法

《基于区间预测的光伏发电与蓄电池优化调度方法》 为了应对县级市光伏发电与用电需求之间的最优调度问题,提出一种面向蓄电池和光伏发电机的区间预测调度优化方法。该方法分别对发电功率调度、充电/放电功率调度和荷电状态调度进行决策从而获得最优调度的精确范围。…

Python Flask Web框架快速入门

Flask 入门Demo Flask 开发环境搭建,执行如下指令: pip install flask # 第一节: Flask 快速入门from flask import Flask app Flask(__name__)app.route(/flask) def hello_flask():return Hello Flaskapp.run() 核心代码剖析: 从 fla…

RTSP/Onvif视频监控平台EasyNVR如何提高匿名用户的用户名和密码安全性?

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

Nginx+Lua+OpenResty(详解及使用)

一、 Nginx简介 Nginx是一个高性能的Web服务器和反向代理的软件。 Web服务器:就是运行我们web服务的容器,提供web功能,还有tomcat也提供类似的功能。 代理是软件架构和网络设计中,非常重要的一个概念。 二、Nginx的反向代理&…

flutter 谷歌的苹果系统消息推送

flutter firebase 云消息通知教程 (android-安卓、ios-苹果) Android、ReactNative、Flutter集成Firebase推送注意事项 Android:Firebase 凭据 iOS:基于 p8 令牌的 APN 连接 iOS:p12 生成证书 Flutter之对接国外推送onesignal踩坑笔记&a…

0.C++入门(专栏前言)

目录 1.什么是C 2.C的发展史 3.C的重要性 应用: 4.如何学习C 5.关于本专栏 1.什么是C 20世纪80年代,计算机界提出oop(object oriented programming:面向对象)思想,支持面向对象的程序设计应运而生。 1982年,本…

Java实现文件分片上传、大文件秒传

Java实现文件分片上传、大文件秒传,大文件如何做断点续传?JAVAWEB 文件上传及下载,JAVA大文件上传,大文件下载解决方案,JAVA实现文件分片上传并且断点续传,JAVA大文件分片上传/多线程上传功能,超…

JS-47-Node.js06-fs模块-读写文件

Node.js内置的fs模块就是文件系统模块,负责读写文件。 和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。 一、回顾:异步方法VS同步方法 1-1、异步方法 因为JavaScript的单线程模型,执行IO操作时&#xff…

STP学习的第一篇

1.STP的基本概念:根桥 (1)STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。 (2)根桥是一个STP交换网络中的“树根”。 (3)STP开始工作后&#xf…

【C++类和对象】初始化列表与隐式类型转换

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

《C语言深度解剖》(8):一篇文章彻底学会Visual Studio 调试技巧,新手必看!

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

MySQL 基础语法(2)

文章目录 创建表查看表修改表表数据插入 本文为表结构相关的基础语言库相关的基础语句 创建表 CREATE TABLE table_name ( field1 datatype comment xxx, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;CREATE TABLE&#xff1…

NLP(2)--搭建简单的模型(nn)

前言 仅记录学习过程,有问题欢迎讨论 可能使用到的包 可以通过Anaconda直接install,不行就PIP install xxx PythonTorchTransformersScikit-learnNumpyGensimPandas 我的版本: 可以用 conda list 查看 代码 如果有包导入不进来&…

如何搭建私域获取淘宝店铺卖家订单信息trade.fullinfo.get

私域流量主要由已经对企业或品牌感兴趣并进行关注的用户组成,这些用户对企业具有一定的忠诚度和粘性。通过与这些用户建立良好的互动和关系,企业可以进一步提升用户的忠诚度和转化率,从而有助于建立持续稳定的业务模式和盈利模式,…

【ARFoundation自学01】搭建AR框架+检测平面+点击克隆立方体到地面=自信入门!

介绍 AR 的功能其实是个大手机系统厂商和眼镜设备厂商开发的功能,并不是Unity的功能,毕竟Unity没有自己的手机设备!比如谷歌公司的安卓开发了ARcore,让所有安卓8.0版本以上的用户能够在手机上体验AR功能!苹果推出了AR…

2024红明谷杯——Misc 加密的流量

2024红明谷杯——Misc 加密的流量 写在前面: 这里是贝塔贝塔,照例来一段闲聊 打比赛但赛前一波三折,又是成功签到的一个比赛 说起来比赛全名叫红明谷卫星应用数据安全场景赛,但好像真的跟卫星的关系不大,没有bin方…

深入探索Python中的推导式:从列表到字典,全面解析数据结构的快速构建方法

文章目录 1. 列表推导式:快速构造列表1.1 基础用法1.2 条件筛选 2. 字典推导式:动态构建字典2.1 基础用法2.2 使用条件过滤 3. 集合推导式:有效去重与数据筛选3.1 基本语法与应用3.2 去重和转换3.2 使用条件过滤 4. 生成器推导式:…

基于CH32V103的多功能推杆设计

一、项目简介 “创意源于生活,工具始于懒惰。” 整体造型外观参考了最近比较火的夫妻游戏《双人成行》第一关里面那个吸尘器的推杆开关,结构中采用阻尼器/滚珠轴承等器件,使其非常具有质感和手感。功能上我构思不能只有电脑开关这么简单地一…

Jenkins CI/CD 持续集成专题三 Jenkins 使用shell脚本打包组件配置流程

第一步 新建任务 第二步 输入项目名称和选择自由风格的软件项目点击确定 第三步 配置下项目地址和账号密码 第四步 配置 build steps 选择 shell 脚本 第五步 shell 配置 (注意shell 必须以#!/bin/sh开头,否则会报 找不到shell 命令的错) …

【Web】DASCTF X CBCTF 2022九月挑战赛 题解

目录 dino3d Text Reverser cbshop zzz_again dino3d 进来是一个js小游戏 先随便玩一下,显示要玩够1000000分 直接console改分数会被检测 先是JSFinder扫一下,扫出了check.php 到js里关键词索引搜索check.php 搜索sn,发现传入的参数是…