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

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

相机系统里面有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.lryc.cn/news/180701.html

相关文章:

  • 运维困局下确保系统稳定的可行性
  • springmvc中DispatcherServlet关键对象
  • 某微e-office协同管理系统存在任意文件读取漏洞复现 CNVD-2022-07603
  • 消息驱动 —— SpringCloud Stream
  • 使用Apache HttpClient爬取网页内容的详细步骤解析与案例示例
  • 传输层协议—UDP协议
  • 【改造中序遍历】 538. 把二叉搜索树转换为累加树
  • 2022年11月工作经历
  • 使用广播信道的数据链路层
  • 第3章-指标体系与数据可视化-3.1.2-Seaborn绘图库
  • excel中将一个sheet表根据条件分成多个sheet表
  • 案例突破——再探策略模式
  • uboot启动流程-涉及lowlevel_init汇编函数
  • 质数距离 - 如何在较合理的时间复杂度内求2e9范围内的质数
  • 八、3d场景的区域光墙
  • 深入探讨 Presto 中的缓存
  • 3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡
  • 【IDEA】IDEA 单行注释开头添加空格
  • 三等分功分器[波导]设计详细教程
  • Mysql分库分表
  • 【算法学习】-【双指针】-【复写零】
  • 【算法优选】双指针专题——叁
  • Java栈的压入、弹出序列(详解)
  • RabbitMQ学习笔记(消息发布确认,死信队列,集群,交换机,持久化,生产者、消费者)
  • PyTorch - 模型训练损失 (Loss) NaN 问题的解决方案
  • 8、Nacos服务注册服务端源码分析(七)
  • MySQL使用Xtrabackup在线做主从
  • scala基础入门
  • 【Java-LangChain:面向开发者的提示工程-5】推断
  • 【C++】手撕vector(vector的模拟实现)