当前位置: 首页 > news >正文

【Cesium】自定义材质,添加带有方向的滚动路线

在这里插入图片描述

【Cesium】自定义材质,添加带有方向的滚动路线

  • 🍖 前言
  • 🎶一、实现过程
  • ✨二、代码展示
  • 🏀三、运行结果
  • 🏆四、知识点提示


🍖 前言

【Cesium】自定义材质,添加带有方向的滚动路线


🎶一、实现过程

  1. 自定义材质类PolylineImageTrailMaterialProperty
  2. 创建一个Polyline,调用自定义的材质类
  3. 结合Vue,实现路线的静态、动态转换

✨二、代码展示

以下是组件源码(未包含自定义的材质类):

<template><div id="cesiumContainer"><div class="toolbar"><span>静态</span><el-switch v-model="status"></el-switch><span>动态</span></div></div>
</template>
<script>
const Cesium = window.Cesium;
let viewer = undefined;
import PolylineImageTrailMaterialProperty from "@/utils/map/PolylineImageTrailMaterialProperty.js";
export default {data() {return {status: false,speed: 0.000001,entity: undefined};},mounted() {let key = window.global.key;Cesium.Ion.defaultAccessToken = key;window.viewer = viewer = new Cesium.Viewer("cesiumContainer", {imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",}),// terrainProvider: Cesium.createWorldTerrain(),geocoder: true,homeButton: true,sceneModePicker: true,baseLayerPicker: true,navigationHelpButton: true,animation: true,timeline: true,fullscreenButton: true,vrButton: true,//关闭点选出现的提示框selectionIndicator: true,infoBox: true});viewer._cesiumWidget._creditContainer.style.display = "none"; // 隐藏版权this.initData();},watch: {status: {handler(newVal) {if (newVal) {this.speed = 10.0} else {this.speed = 0.00000001}this.entity.polyline.material._speed = this.speed;}}},methods: {initData() {this.entity = viewer.entities.add({polyline: {clampToGround: true,positions: Cesium.Cartesian3.fromDegreesArray([113.9, 30, 114.4, 30.70, 115.0, 30.4, 116.0, 31.4,]),material: new PolylineImageTrailMaterialProperty({color: Cesium.Color.YELLOW,speed: this.speed,image: require("@/assets/imgs/starp.png"),repeat: { x: 50, y: 1 }}),width: 20,},});this.initCamera();},initCamera() {viewer.camera.flyTo({destination: new Cesium.Cartesian3.fromDegrees(114.9, 30, 400000),orientation: {heading: 0.005342248184040166,pitch: -1.3759883623507303,roll: 0.000001,},duration: 3,});}},
};
</script>
<style lang="scss" scoped>
$--el-color-primary: rgb(48, 93, 241);#cesiumContainer {width: 100%;height: 100%;position: relative;
}.toolbar {position: absolute;top: 60px;right: 40px;z-index: 999;background: white;padding: 3px 20px;border-radius: 4px;display: flex;align-items: center;gap: 5px;color: rgba(102, 102, 102, 1);
}:deep(.el-switch__core) {width: 40px !important;height: 18px !important;
}
</style>

在这里插入图片描述

🏀三、运行结果

运行成功展示:
在这里插入图片描述

在这里插入图片描述

🏆四、知识点提示

1.自定义材质
2.结合关键帧实现滚动
3.需要源码的请留言或者看图1(包含自定义的材质类,可以运行的完整源码)

http://www.lryc.cn/news/517307.html

相关文章:

  • C 语言奇幻之旅 - 第11篇:C 语言动态内存管理
  • IDEA 撤销 merge 操作(详解)
  • swarm天气智能体调用流程
  • LED背光驱动芯片RT9293应用电路
  • 二叉树的二叉链表和三叉链表
  • 【学习路线】Python 算法(人工智能)详细知识点学习路径(附学习资源)
  • C++直接内存管理new和delete
  • Linux 内核中网络接口的创建与管理
  • 人工智能 前馈神经网络练习题
  • Windows搭建RTMP服务器
  • Vue重新加载子组件
  • 【VScode】设置代理,通过代理连接服务器
  • js es6 reduce函数, 通过规格生成sku
  • 基于R语言的DICE模型
  • 【C】PAT 1006-1010
  • 力扣双指针-算法模版总结
  • 解释一下:运放的输入偏置电流
  • Windows 11 上通过 WSL (Windows Subsystem for Linux) 安装 MySQL 8
  • 信用租赁系统助力企业实现免押金租赁新模式
  • OSPF特殊区域(open shortest path first LSA Type7)
  • Element-plus表单总结
  • unity学习13:gameobject的组件component以及tag, layer 归类
  • 51单片机——中断(重点)
  • 企业级Java 实体对象类定义规范
  • 【网络云SRE运维开发】2025第2周-每日【2025/01/07】小测-【第7章 GVRP链路捆绑】理论和实操
  • 蓝桥杯算法|练习记录
  • C语言 扫雷程序设计
  • CSS语言的文件操作
  • 前端-计算机网络篇
  • 行为分析:LSTM、3D CNN、SlowFast Networks。这三者的优缺点