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

cesuim

new Cesium.Color(255,255,0,1),  //颜色
Math.PI/2color: Cesium.Color.fromCssColorString("#f40"), //16进制颜色

初始化地球

import * as Cesium from "cesium";import { onMounted } from "vue";
onMounted(() => {Cesium.Ion.defaultAccessToken ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0YTY1Yzc3MS05MWU3LTQxNGQtOGI3ZS04NTVhZjcwZjdjZmMiLCJpZCI6MjE2NjYwLCJpYXQiOjE3MTYyNzQ0MTh9.7EQqzCrI8s0-s76NAQZ3-EwRbhqAQ16FYuVWb1dCwos";// arcgis影像图层const ersi = new Cesium.UrlTemplateImageryProvider({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",});const viewer = new Cesium.Viewer("CesiumContainer", {terrainProvider: Cesium.createWorldTerrain(),// requestWaterMask:true // 开启水// imageryProvider: ersi,  //自定义图层baseLayerPicker: false, // 关闭图层选择器animation: false, // 关闭动画timeline: false, // 关闭时间线fullscreenButton: false, // 关闭全屏按钮homeButton: false,sceneModePicker: false, //3d,2d 关闭navigationHelpButton: false, //帮助geocoder: false, //搜索infoBox: false, //隐藏点击信息框selectionIndicator: false, //隐藏选择指示器});

坐标

//经纬度转笛卡尔坐标const position1 = Cesium.Cartesian3.fromDegrees(110, 20,30); //参数为经度,纬度,高度,返回笛卡尔坐标const position = new Cesium.Cartesian3(106, 29, 50);  //笛卡尔坐标x,y,z// 笛卡尔转弧度坐标let position2 = Cesium.Cartographic.fromCartesian(position1); //转成经纬度
//弧度坐标转角度// let lon = 180 / Math.PI * position2.longitude;  let lon = Cesium.Math.toDegrees(position2.longitude); //longitude经度let lat = Cesium.Math.toDegrees(position2.latitude); //latitude纬度console.log(lat)console.log(lon)console.log(position2.height)

相机

  // 相机const position = Cesium.Cartesian3.fromDegrees(110, 20, 20000); //经度,纬度,高度// setView通过定义相机相机目的地(方向),直接跳转到目的地const camera = viewer.camera.setView({destination: position,orientation: { //相机视角//默认(0-900)heading: Cesium.Math.toRadians(0),pitch: Cesium.Math.toRadians(-90),roll: Cesium.Math.toRadians(0),  //歪头看},});

相机动画

// 相机切换视角动画const position = Cesium.Cartesian3.fromDegrees(110, 20, 20000); //经度,纬度,高度viewer.camera.flyTo({destination: position,duration: 10, //飞行时间})

相机锁定视角

  const position2 = Cesium.Cartesian3.fromDegrees(106, 29, 50); //经度,纬度,viewer.camera.lookAt(position2,new Cesium.HeadingPitchRange(Cesium.Math.toRadians(0),Cesium.Math.toRadians(-90),20000))

实体画点

  // 相机const position = Cesium.Cartesian3.fromDegrees(110, 20, 20000); //经度,纬度,高度// 实体entity// 写法1const entity = new Cesium.Entity({position: position,point: {pixelSize: 20, //像素点大小color: Cesium.Color.RED, //颜色}})// 添加实体viewer.entities.add(entity)viewer.zoomTo(entity)  //切换位置// 写法2viewer.entities.add({id:'point',position:Cesium.Cartesian3.fromDegrees(106, 29, 50),point:{pixelSize:20,color:Cesium.Color.RED}})

实体画图片

  const billboard = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(116, 40, 222),billboard: {image: "/src/assets/img/doteck_logo.png",scale: 0.5,color:Cesium.Color.YELLOW}})viewer.zoomTo(billboard)

实体画文字

  // 文字const label = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(106, 29, 2222),label: {text:'丛继永',fillColor: Cesium.Color.YELLOW,showBackground:true,backgroundColor:new Cesium.Color(255,255,0,1),}})viewer.zoomTo(label)

实体画线条

const polyline = viewer.entities.add({polyline:{positions:Cesium.Cartesian3.fromDegreesArray([120,20,121,20]),width:10,material:Cesium.Color.RED}})viewer.zoomTo(polyline)

实体画多边型

// 多边型const polygon = viewer.entities.add({polygon:{hierarchy:{positions:Cesium.Cartesian3.fromDegreesArray([120,25,121,25,121,25.5]),},material:Cesium.Color.RED,extrudedHeight:100000,  //拉伸高度height:2000,//距离高度outline:true,outlineColor:Cesium.Color.WHITE,fill:false,//是否填充}})
viewer.zoomTo(polygon)

实体画立方体

//立方体
const box = viewer.entities.add({position:Cesium.Cartesian3.fromDegrees(106, 29, 3000),box:{dimensions:new Cesium.Cartesian3(100, 200, 3000),//长宽高material:Cesium.Color.RED,}
})
viewer.zoomTo(box)

实体画矩形

  // 矩形const rectangle = viewer.entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(120, 40, 123, 45),material: Cesium.Color.RED,extrudedHeight: 30000, //拉伸material:'src/assets/img/doteck_logo.png'  //图片},});viewer.zoomTo(rectangle);

先定义后添加

 // 声明点const point = new Cesium.Entity({position: Cesium.Cartesian3.fromDegrees(120, 30),point: {pixelSize: 10,},});viewer.entities.add(point);viewer.zoomTo(point);  //跳转

实体添加标注

// 标注const billboard = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(116, 40, 500),billboard: {image: "/src/assets/img/doteck_logo.png",scale: 0.1,},});viewer.zoomTo(billboard);

多个实体定在一个里面

const bill = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(120, 30, 100),billboard: {image: "/src/assets/img/rotate.png",scale: 0.1,color: Cesium.Color.YELLOW,},polyline: {positions: Cesium.Cartesian3.fromDegreesArrayHeights([120, 30, 100, 120, 30, 0,]),material: Cesium.Color.YELLOW,},label: {text: "丛继永家",pixelOffset: new Cesium.Cartesian2(0, -50),},});

删除实体方法

bill = viewer.entities.add({id: "point", //增加idposition: Cesium.Cartesian3.fromDegrees(120, 30, 100),billboard: {image: "/src/assets/img/rotate.png",scale: 0.1,color: Cesium.Color.YELLOW,},polyline: {positions: Cesium.Cartesian3.fromDegreesArrayHeights([120, 30, 100, 120, 30, 0,]),material: Cesium.Color.YELLOW,},label: {text: "丛继永家",pixelOffset: new Cesium.Cartesian2(0, -50),},});const toDel = () => {console.log(234);// 直接删除// viewer.entities.remove(bill);// id删除方法// viewer.entities.removeById("point");// 先查后删const entity = viewer.entities.getById("point");viewer.entities.remove(entity);// 删除所有viewer.entities.removeAll();};

实体分组删除

let point1 = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(120.0001, 30),point: {color: Cesium.Color.RED,pixelSize: 10,},});let point2 = viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(120.0002, 30),point: {color: Cesium.Color.RED,pixelSize: 10,},});blueList.push(point1);blueList.push(point2);const toDel = () => {blueList.map((item) => {viewer.entities.remove(item);});blueList = []  //将数组清空,不要忘了
};

相关文章:

cesuim

new Cesium.Color(255,255,0,1), //颜色 Math.PI/2color: Cesium.Color.fromCssColorString("#f40"), //16进制颜色初始化地球 import * as Cesium from "cesium";import { onMounted } from "vue"; onMounted(() > {Cesium.Ion.defaultAcc…...

2023、2024国赛web复现wp

2023 Unzip 类型&#xff1a;任意文件上传漏洞 主要知识点&#xff1a;软链接 随便上传一个一句话木马文件&#xff0c;得到一串php代码 根据代码上传zip文件发现进入后还是此页面 代码审计&#xff1a; <?php error_reporting(0); highlight_file(__FILE__);$finfo fin…...

day34 贪心算法 455.分发饼干 376. 摆动序列

贪心算法理论基础 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心一般解题步骤&#xff08;贪心无套路&#xff09;&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 455.分发饼干 …...

养老院管理系统基于springboot的养老院管理系统java项目

文章目录 养老院管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 养老院管理系统 一、项目演示 养老院管理系统 二、项目介绍 基于springboot的养老院管理系统 角色&#xff1a;超级…...

跳台阶扩展问题

题目链接 f(1) 1f(2) 1 1 2f(3) 1 2 1 4f(4) 1 2 4 1 8 所以 f(n) 2 n − 1 ^{n-1} n−1 import java.util.Scanner;public class Solution {public int jumpFloorII(int target) {return 1 << (target - 1);} }...

超清高帧,成像升级 | SWIR短波红外相机500万像素992芯片

博图光电5MP短波红外相机&#xff0c;搭载了索尼IMX992 SenSWIR传感器&#xff0c;支持5.2MP分辨率&#xff0c;适合探测波长在400nm-1700nm波段的可见光和短波红外光&#xff0c;有效面积和透光率得到提升&#xff0c;内置TEC制冷片&#xff0c;实现了像素尺寸和图像均匀性方面…...

攻击渗透思考题

1. windows登录的明文密码&#xff0c;存储过程是怎么样的&#xff0c;密文存在哪个文件下&#xff0c;该文件是否可以打开&#xff0c;并且查看到密文 在Windows操作系统中&#xff0c;登录时输入的明文密码不会以明文形式存储在系统中。相反&#xff0c;Windows使用一种称为“…...

Flutter 中的 Opacity 小部件:全面指南

Flutter 中的 Opacity 小部件&#xff1a;全面指南 在Flutter中&#xff0c;动画和视觉效果是提升用户体验的重要手段。Opacity小部件允许你改变子组件的透明度&#xff0c;从而实现淡入、淡出或其它透明度相关的动画效果。本文将提供Opacity的全面指南&#xff0c;帮助你了解…...

【介绍下如何在SQL中添加数据】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

【Linux学习】深入了解Linux中进程状态及其转换

文章目录 进程状态进程排队进程的状态&#xff08;运行&#xff0c;阻塞&#xff0c;挂起&#xff09;进程的七个状态 孤儿进程 进程状态 进程 task_struct 可执行程序 进程不是一 直在运行的&#xff0c;可能在等待软硬件资源&#xff0c;比如scanf后&#xff0c;程序停止运…...

【Python设计模式11】建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它将一个复杂对象的构建过程分离出来&#xff0c;使得同样的构建过程可以创建不同的表示。建造者模式通过使用多个简单的对象一步一步构建成一个复杂的对象。 建造者模式的结构 建造者模式…...

coredump文件生成配置

1.打开coredump文件生成开关 查看开关是否打开&#xff1a;ulimit -a 如果core file size 为0&#xff0c;则为关闭。 执行&#xff1a;ulimit -c 10240 将其coredump文件大小设置。 2.coredump文件保存位置&#xff1a; /proc/sys/kernel/core_pattern文件可以控制core文…...

jmeter线程组(下篇)

线程组 线程组作为JMeter测试计划的核心组件之一&#xff0c;对于模拟并发用户的行为至关重要。线程组元件是整个测试计划的入口&#xff0c;所有的取样器和控制器必须放置在线程组下。 可以将线程组视为一个虚拟用户池&#xff0c;其中每个线程可被理解为一个虚拟用户&#x…...

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…...

Android 13 配置默认DN

需求&#xff1a; 如果存在用户配置的DNS服务器&#xff0c;则切面拦截运行商下发的DNS,替换为用户自己配置的DNS. 实现&#xff1a; 直接上代码&#xff1a; 1:TelephonyProperties 内新增属性保存用户设置的dns //QSSI.13/frameworks/base/telephony/java/com/android/in…...

系统开发与运行知识

系统开发与运行知识 导航 文章目录 系统开发与运行知识导航一、软件工程二、软件生命周期三、开发模型四、开发方法五、需求分析结构化分析 六、数据流图分层数据流图的画法设计注意事项 七、数据字典数据字典的内容 八、系统设计九、结构化设计常用工具十、面向对象十一、UML…...

算法训练 | 二叉树Part1 | 递归遍历、迭代遍历、统一迭代

目录 递归遍历 前序遍历 迭代遍历 前序遍历&#xff08;迭代法&#xff09; 中序遍历&#xff08;迭代法&#xff09; 后序遍历&#xff08;迭代法&#xff09; 统一迭代法 统一迭代 嵌入式学习分享个人主页&#xff1a;Orion嵌入式随想录 - 小红书 (xiaohongshu.com) …...

AcWing 2568:树链剖分 ← 线段树+DFS

【题目来源】https://www.acwing.com/problem/content/2570/【题目描述】 给定一棵树&#xff0c;树中包含 n 个节点&#xff08;编号 1∼n&#xff09;&#xff0c;其中第 i 个节点的权值为 ai。 初始时&#xff0c;1 号节点为树的根节点。 现在要对该树进行 m 次操作&#xf…...

PCIe协议之-DLLP详解

✨前言&#xff1a; &#x1f31f;数据链路层的功能 数据链路层将从物理层中获得报文&#xff0c; 并将其传递给事务层&#xff1b; 同时接收事务层的报文&#xff0c; 并将其转发到物理层; 核心的功能有以下三点 1.保证TLP在 PCIe 链路中的正确传递; 2.数据链路层使用了容错…...

Jmeter+prometheus+grafana性能测试

文章目录 Jmeterprometheusgrafana性能测试背景目标设计思路原理案例启发 Jmeterprometheusgrafana性能测试 背景 ​ 在现代社会中&#xff0c;人们对于应用程序的响应速度和性能体验提出了越来越高的要求。无论是电子商务网站、社交媒体平台还是企业级软件系统&#xff0c;都…...

像素语言传送门效果实测:Hunyuan-MT-7B对中文网络新词(如‘绝绝子‘)的跨语种意译能力

像素语言传送门效果实测&#xff1a;Hunyuan-MT-7B对中文网络新词&#xff08;如绝绝子&#xff09;的跨语种意译能力 1. 测试背景与工具介绍 像素语言跨维传送门是基于腾讯Hunyuan-MT-7B翻译引擎构建的创新翻译工具。与传统翻译软件不同&#xff0c;它将语言转换过程设计成一…...

Pixel Script Temple 效果进阶:YOLOv11目标识别引导的精准构图像素画

Pixel Script Temple 效果进阶&#xff1a;YOLOv11目标识别引导的精准构图像素画 1. 效果亮点预览 当像素艺术遇上目标检测技术&#xff0c;会碰撞出怎样的火花&#xff1f;最新发布的YOLOv11模型与Pixel Script Temple的结合&#xff0c;让像素画创作进入了精准构图的新阶段…...

Pixel Couplet Gen入门必看:Streamlit Components封装像素春联React组件

Pixel Couplet Gen入门必看&#xff1a;Streamlit Components封装像素春联React组件 1. 项目介绍 Pixel Couplet Gen是一款基于ModelScope大模型驱动的创意春联生成器。与传统春联设计不同&#xff0c;它采用了独特的8-bit像素游戏风格&#xff0c;将中国传统春节元素与复古电…...

Git-RSCLIP入门到精通:从基础地物识别到复杂场景分析全流程解析

Git-RSCLIP入门到精通&#xff1a;从基础地物识别到复杂场景分析全流程解析 1. 遥感智能分析的新利器 在遥感图像分析领域&#xff0c;传统方法往往需要大量标注数据和复杂的模型训练流程。Git-RSCLIP的出现彻底改变了这一局面&#xff0c;它基于先进的SigLIP架构&#xff0c…...

【数据结构】数组与特殊矩阵

数据结构的学习中&#xff0c;数组与特殊矩阵是基础且核心的内容。它们不仅是程序设计中最常用的线性结构&#xff0c;更是处理复杂矩阵运算的基础。本文将结合解析与真题&#xff0c;带你彻底搞懂数组的存储方式和特殊矩阵的压缩存储技巧。一、一维数组与二维数组&#xff1a;…...

PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复

PXE装机避坑大全&#xff1a;从TFTP根目录设置到Kickstart无人值守的13个常见错误修复 在企业级IT运维中&#xff0c;PXE&#xff08;预启动执行环境&#xff09;网络装机技术因其高效、自动化的特点&#xff0c;已成为服务器批量部署的标配方案。但看似简单的PXE部署流程背后&…...

Graphormer实战教程:基于ogb库加载PCQM4M数据微调模型示例

Graphormer实战教程&#xff1a;基于ogb库加载PCQM4M数据微调模型示例 1. 引言 Graphormer是一种创新的分子属性预测模型&#xff0c;采用纯Transformer架构的图神经网络设计。它专门针对分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测任务&#xff0c;…...

别再手动查ID了!用R包一键搞定单细胞Marker基因ID转换(附org.Hs.eg.db实战)

单细胞Marker基因ID转换实战&#xff1a;用org.Hs.eg.db实现高效精准映射 刚完成单细胞聚类分析的研究者&#xff0c;常常会面临一个看似简单却极其耗时的任务——将Marker基因的Symbol标识转换为标准的Entrez ID。这个步骤虽然基础&#xff0c;却直接影响后续GO富集分析的可靠…...

告别手动操作!Open-AutoGLM部署教程,让AI接管你的手机

告别手动操作&#xff01;Open-AutoGLM部署教程&#xff0c;让AI接管你的手机 1. 引言&#xff1a;AI手机助手的革命性突破 想象一下这样的场景&#xff1a;早上醒来&#xff0c;你只需要对手机说"帮我点一杯星巴克燕麦拿铁&#xff0c;加双份浓缩&#xff0c;送到公司&…...

GLM-OCR部署避坑:CPU模式也能用,无显卡用户详细指南

GLM-OCR部署避坑&#xff1a;CPU模式也能用&#xff0c;无显卡用户详细指南 你是不是也遇到过这种情况&#xff1a;看到别人用AI模型轻松识别文档、提取表格&#xff0c;自己也想试试&#xff0c;结果一查部署要求——“需要NVIDIA显卡&#xff0c;显存8GB以上”。手头只有一台…...