【Cesium创造属于你的地球】相机系统

news/2025/1/3 3:42:35/

相机系统里面有setView,flyTo,lookAt,viewBoundingsphere这几种方法,以下是相关的使用方法,学起来!!!

setView

该方法可以直接切换相机视口,从而不需要通过一个飞入的效果切换

viewer.camera.setView({
// 设置坐标destination:position,// 设置视口方向orientation: {// 当值为0时,沿着Y轴旋转,方向为正北方向heading: Cesium.Math.toRadians(0),// pitch控制视口的上下旋转,也就是X轴旋转,当数值为-90的话,就是俯视地面的pitch: Cesium.Math.toRadians(-90),// roll控制视口的翻转角度,也就是Z轴旋转roll: 0}
})

flyTo

flyTo该方法可以直接切换相机视口,从而不需要通过一个飞入的效果切换

viewer.camera.flyTo({// 设置坐标destination:position,// 设置视口方向orientation: {// 当值为0时,沿着Y轴旋转,方向为正北方向heading: Cesium.Math.toRadians(0),// pitch控制视口的上下旋转,也就是X轴旋转,当数值为-90的话,就是俯视地面的pitch: Cesium.Math.toRadians(-90),// roll控制视口的翻转角度,也就是Z轴旋转roll: 0},duration: 10})

lookAt

方法使用,lookAt方法一般适用于锁定某个目标场景的位置

// lookAt方法使用,lookAt方法一般适用于锁定某个目标场景的位置// 设置相机的方位,只需要设置经度和纬度const center = Cesium.Cartesian3.fromDegrees(116, 39);
// 设置水平旋转视口方向的角度const heading = Cesium.Math.toRadians(50);// 设置垂直旋转视口方向的角度const pitch = Cesium.Math.toRadians(-30);
// 设置距离目标点的距离
const range = 1000;
// // 使用lookAt方法​// 凉哥参数,第一个是目标位置信息,第二个是视口方向信息​ viewer.camera.lookAt(center,new Cesium.HeadingPitchRange(heading,pitch,range))
 /** viewboundingsphere方法,和setView方法一样,没有一个飞入切换效果,它和setView的不同点在于它可以给定一个指定的目标点,可以从那个多个角度观测事物为了更好的来展现viewboundingsphere的效果,我们可以使用entity的方法来加载一个飞机模型,供我们观测headingPitchRollQuaternion中有两个参数,分别是位置信息和旋转角度信息(垂直旋转,反转角度均为0)**/var orientation = Cesium.Transforms.headingPitchRollQuaternion(position,new Cesium.HeadingPitchRange(-90,0,0))var modelGLB = ''var entity = viewer.entities.add({name:'../Apps/SampleData/models/CesiumAir/Cesium_Air.glb' ,position:position,orientation:orientation,// 存储模型信息model:{// 设置模型信息uri:'../Apps/SampleData/models/CesiumAir/Cesium_Air.glb',// 设置模型最小缩放信息minimunPixelSize:100,// 设置模型缩放最大比例maximunScale:10000,// 设置模型是否显示show:true}
})// 使用viewboundingsphere方法// 使用BoundingSphere方法,第一个变量是位置信息,第二个是物体与我们的距离信息// viewboundingsphere的第二个参数设置的是相机视口朝向信息,我们使用的是HeadingPitchRollQuaternionviewer.camera.viewBoundingSphere(new Cesium.BoundingSphere(position,20),new Cesium.HeadingPitchRange(0,0,0))

写在最后

好啦今天的cesium小知识就到这里啦,最后祝大家十一快乐,也祝祖国母亲繁荣昌盛💪🏻


http://www.ppmy.cn/news/1133510.html

相关文章

910数据结构(2019年真题)

算法设计题 问题1 有一种排序算法叫做计数排序。这种排序算法对一个待排序的表(采用顺序存储)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个…

element安装指定版本ui

安装指定版本的Element UI&#xff0c;可以执行以下步骤&#xff1a; 打开您的终端&#xff0c;并在项目的根目录中运行以下命令&#xff1a; npm install element-ui<version>其中&#xff0c;<version>是您要安装的特定版本号。比如&#xff0c;如果您要安装版…

std::initializer_list详解

std::initializer_list介绍 initializer_list是C11提供的一种新类型&#xff0c;其定义于头文件<initializer_list>中&#xff0c;此头文件是工具库的一部分&#xff0c; <initializer_list>定义如下&#xff1a; namespace std {template<class E> class…

eBPF 的发展历程及工作原理

目录 eBPF 是什么 掌握 eBPF 是不是得先成为内核开发者&#xff1f; eBPF 的发展历程是什么样的? eBPF 是怎么工作的? eBPF 是万能的吗? 小结 eBPF 是什么 eBPF 是什么呢&#xff1f; 从它的全称“扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)” 来看…

XShell远程连接Ubuntu

环境 系统&#xff1a;Ubuntu 18.04.6 LTS IP&#xff1a;192.168.1.4 ps:查看ubuntu版本 lsb_release -a 查看ubuntu的ip地址 Ubuntu系统准备工作 root权限 打开ubuntu系统后&#xff0c;打开终端&#xff0c;切换为root权限&#xff1a;su root 如果出现su root认证失…

Spring之IoC

文章目录 一.SpringIoC核心概念1.IOC&#xff08;Inversion of Control&#xff09;控制反转2.DI&#xff08;Dependency Injection&#xff09;依赖注入 二.bean的实例化1.构造方法实例化bean2.静态工厂方法实例化bean 三.Bean的生命周期1.Bean的实例化2.设置属性3.Bean初始化…

第四十一章 持久对象和SQL - Storage

文章目录 第四十一章 持久对象和SQL - StorageStorage存储定义概览持久类使用的Globals注意 第四十一章 持久对象和SQL - Storage Storage 每个持久类定义都包含描述类属性如何映射到实际存储它们的Global的信息。类编译器为类生成此信息&#xff0c;并在修改和重新编译时更新…

OSI体系结构和TCP/IP体系结构

在第一章&#xff08; 计网第一章 &#xff09;的时候&#xff0c;曾经提到过OSI体系结构和TCP/IP体系结构&#xff0c;并对它们进行了简单的对比。这篇博客在其基础上进行更深层次的理解。 一.OSI体系结构&#xff1a; 通信子网&#xff1a; 计算机网络在逻辑功能上可以分为…