Cesium Vue(三)— 相机配置

1. 坐标系转换

1.1 cesium使用到的坐标系

  1. 屏幕坐标系,二维的笛卡尔坐标系,API => Cartesian2
  2. 地理空间坐标系,WGS-84坐标系, API => Cartographic(经度,维度,高度)
  3. 三维笛卡尔空间直角坐标系,API => Cartesian3

1.2 坐标转换具体实现

  • 角度与弧度的转换
var radians=Cesium.Math.toRadians(90);
console.log("radians ==> "+radians);
  • 弧度转角度
var degrees=Cesium.Math.toDegrees(2*Math.PI);
console.log("degrees ==> "+degrees);
  • 将经纬度转成笛卡尔坐标系
var cartesian3=Cesium.Cartesian3.fromDegrees(89.5,//经度20.4,//纬度100//高度
);
console.log("cartesian3 ==> "+cartesian3);
  • 将笛卡尔坐标系转换为经纬度
var cartographic=Cesium.Cartographic.fromCartesian(cartesian3);
console.log("cartographic ==> "+cartographic);
//得到结果弧度,转成角度
var longitude=Cesium.Math.toDegrees(cartographic.longitude);
var latitude=Cesium.Math.toDegrees(cartographic.latitude);
console.log("LonLat ==> "+longitude+","+latitude);

在这里插入图片描述

2. 设置相机的位置和视角

  • 设置相机位置和视角
 // 设置相机视角瞬间到达指定位置,角度// (116.393428, 39.90923)生成position是天安门的位置var position = Cesium.Cartesian3.fromDegrees(116.393428, 39.90923, 100);viewer.camera.setView({// 指定相机位置destination: position,// 指定相机视角orientation: {// 指定相机的朝向,偏航角,相当于 X 角heading: Cesium.Math.toRadians(0),// 指定相机的俯仰角,0度是竖直向上,-90度是向下  相当于 y 角pitch: Cesium.Math.toRadians(-20),// 指定相机的滚转角,翻滚角   相当于 z 角roll: 0,},});

在这里插入图片描述

  • 设置带相机动画的位置和视角
// flyto,让相机飞往某个地方
viewer.camera.flyTo({destination: position,orientation: {heading: Cesium.Math.toRadians(0),pitch: Cesium.Math.toRadians(-20),roll: 0,},
});

3. 使用键盘控制相机的位置和视角

// 通过按键移动相机document.addEventListener("keydown", (e) => {// console.log(e);// 获取相机离地面的高度var height = viewer.camera.positionCartographic.height;var moveRate = height / 100;if (e.key == "w") {// 设置相机向前移动viewer.camera.moveForward(moveRate);} else if (e.key == "s") {// 设置相机向后移动viewer.camera.moveBackward(moveRate);} else if (e.key == "a") {// 设置相机向左移动viewer.camera.moveLeft(moveRate);} else if (e.key == "d") {// 设置相机向右移动viewer.camera.moveRight(moveRate);} else if (e.key == "q") {// 设置相机向左旋转相机viewer.camera.lookLeft(Cesium.Math.toRadians(0.1));} else if (e.key == "e") {// 设置相机向右旋转相机viewer.camera.lookRight(Cesium.Math.toRadians(0.1));} else if (e.key == "r") {// 设置相机向上旋转相机viewer.camera.lookUp(Cesium.Math.toRadians(0.1));} else if (e.key == "f") {// 设置相机向下旋转相机viewer.camera.lookDown(Cesium.Math.toRadians(0.1));} else if (e.key == "g") {// 向左逆时针翻滚viewer.camera.twistLeft(Cesium.Math.toRadians(0.1));} else if (e.key == "h") {// 向右顺时针翻滚viewer.camera.twistRight(Cesium.Math.toRadians(0.1));}});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/161378.html

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

相关文章

GPT4 Advanced data analysis Code Interpreter 做行业数据分析、可视化处理图像、视频、音频等

1. 跨境电商如何用ChatGPT选品 ChatGPT Jungle scout 案例:跨境电商如何用ChatGFT选品 ChatGPTJungle scout 素材和资料来自: Jungle ScoutEM, Michael Soltis 和 文韬武韬AIGC 1.1 从Jungle scout上下载数据 Date Range > Last 90 days Downlo…

python+大数据校园卡数据分析 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖&am…

Stable Diffusion绘画,卡通,教室

1 girl, parted lips, blush, makeup, light smile, school uniform, classroom, light rays, glow, thighs, collarbone, narrow waist, (masterpiece), wallpaper 1个女孩,双唇,腮红,化妆,浅笑,校服,教室…

基于SSM框架的安全教育平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【Eclipse】设置自动提示

前言: eclipse默认有个快捷键:alt /就可以弹出自动提示,但是这样也太麻烦啦!每次都需要手动按这个快捷键,下面给大家介绍的是:如何设置敲的过程中就会出现自动提示的教程! 先按路线找到需要的页…

uniapp使用uQRCode绘制二维码,下载到本地,调起微信扫一扫二维码核销

1.效果 2.在utils文件夹下创建uqrcode.js // uqrcode.js //--------------------------------------------------------------------- // github https://github.com/Sansnn/uQRCode //---------------------------------------------------------------------let uQRCode {…

设计模式(1)-设计模式前置基础知识

1,设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大(Christopher Alexand…

PS 学习笔记

书籍:Photoshop 2022从入门到精通-敬伟-微信读书 1. PS 常用快捷键 复位右侧基本工作栏:【窗口】-【工作区】- 【复位基本功能】 Ctrl 鼠标滚轮:主界面图片左右滚动Shift 鼠标滚轮:主界面图片上下滚动Alt 鼠标滚轮&#xff1…

算法通关村第19关【青铜】| 动态规划

动态规划(Dynamic Programming,简称DP)是一种解决多阶段决策过程最优化问题的数学方法。它通常用于解决那些具有重叠子问题和最优子结构性质的问题,这些问题可以分解为多个相互关联的子问题。 动态规划的核心思想是将原问题分解为…

模板学堂|DataEase协助电商企业开展用户运营

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并…

MyBatis进行单表多表查询以及其中的${}涉及的SQL注入

目录 回顾: 参数占位符#{}和${} ${}唯一使用地方 使用${}造成的SQL注入漏洞 like查询 mapper中接收结果的参数 resultType和resultMap​编辑 多表查询 回顾: 参数占位符#{}和${} #{} 占位符语法通常用于模板引擎或动态查询语句中。它是一种更加安全的…

docker中使用GPU+rocksdb

配置环境 delldell-Precision-3630-Tower  ~  lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focaldelldell-Precision-3630-Tower  ~  nvcc --version nvcc: NVIDIA (R) Cuda comp…

Aroid问题笔记 - ViewPager嵌套RecyclerView,降低ViewPager灵敏度

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

力扣:133. 克隆图(Python3)

题目: 给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 class Node {public int val;public Lis…

高程DEM-等高线生成-AutoCAD等高线

高程DEM-等高线生成-AutoCAD等高线 发布时间:2018-01-17 版权: 同步视频教程:卫星地图_高清卫星地图_卫星地图视频_下载高程等高线使用视频教程 专题地图制作视频教程:卫星地图_高清卫星地图_卫星地图视频_地图数据应用&#xf…

【14】基础知识:React - redux

一、 redux理解 1、学习文档 英文文档:https://redux.js.org/ 中文文档:http://www.redux.org.cn/ Github: https://github.com/reactjs/redux 2、redux是什么 redux 是一个专门用于做状态管理的 JS 库(不是 react 插件库)。 它可以用在 react&am…

Unity2023, Unity2022, Unity2021的性能对比(帧率)

最近由于需要用到Unity最新版的一些功能,比如Spline,比如Foward渲染,新项目用了Unity2022.3.5版本,但是出包之后,感觉帧率很低。本着好奇的态度,专门写了一个测试场景,分别在Unity2023.1.15&…

【数据仓库】hadoop生态圈与数据仓库

文章目录 1.大数据定义2. Hadoop与数据仓库3. 关系数据库的可扩展性瓶颈4. CAP理论5. Hadoop数据仓库工具5.1. RDS和TDS5.2. 抽取过程5.3. 转换与装载过程5.4. 过程管理和自动化调度5.5.数据目录(或者称为元数据管理)5.6.查询引擎…

【灵动 Mini-G0001开发板】+Keil5开发环境搭建+ST-Link/V2程序下载和仿真+4颗LED100ms闪烁。

我们拿到手里的是【灵动 Mini-G0001开发板】 如下图 我们去官网下载开发板对应资料MM32G0001官网 我们需要下载Mini—G0001开发板的库函数与例程(第一手学习资料)Keil支持包, PCB文件有需要的,可以自行下载。用户指南需要下载&a…

阿里云starrocks监控告发至钉钉群

背景:新入职一家公司,现场没有对sr的进行监控,根据开发的需求编写了一个python脚本。 脚本逻辑:抓取sr的be/fe/routine load状态信息,判读是否触发告警,若满足告警条件,则发送告警信息到钉钉群…