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

cesium相机(camera)控制

camera基础属性:

Cesium 中的相机通过 viewer.camera 来获取和操作。

  • position:相机的位置,用 Cartesian3 坐标表示,表示的是相机在世界坐标系中的绝对位置。

    viewer.camera.position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
    
  • direction:相机的朝向,指向相机正在查看的目标。

    viewer.camera.direction = new Cesium.Cartesian3(x, y, z);
    
  • up:相机的上方向,用于定义相机的倾斜角度(与地面的垂直方向)

    viewer.camera.up = new Cesium.Cartesian3(x, y, z);
    
  • right:相机的右方向,定义相机横向的方向。

控制相机视角:

  • setView() 是 Cesium 中一个常用的方法,用于设置相机的视图,包括位置、目标点和相机的方向。

viewer.camera.setView({// 相机的位置destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),  // 相机方向orientation: {// 水平旋转角度,从正北顺时针旋转到目标方向的角度heading: Cesium.Math.toRadians(heading),  
// 朝向的方位角,即相机绕着地心的水平方向旋转,范围: 0-2π
//0   - 正北
//π/2 - 正东
// π   - 正南
// 3π/2 - 正西//直旋转角度,从水平面向上/向下的角度pitch: Cesium.Math.toRadians(pitch),      
// 俯仰角,即相机绕着横轴的上下旋转,范围: -π/2 到 π/2
// π/2   - 正上方(90°)
// 0     - 水平(0°)
// -π/2  - 正下方(-90°)//相机自身的旋转角度roll: 0                                   
// 滚转角,即相机绕着前后轴的旋转,范围: -π 到 π
// 0     - 正常
// π     - 倒置
// π/2   - 右倾斜90°
// -π/2  - 左倾斜90°}
});
  • flyTo() 方法提供了平滑的动画过渡,来控制相机飞行到指定的位置。

viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),orientation: {heading: Cesium.Math.toRadians(heading),pitch: Cesium.Math.toRadians(pitch),roll: 0},duration: 3,  // 飞行持续时间,单位秒complete: function() {console.log("Fly complete!");}
});
  • lookAt()相机看向某个目标点

var target = Cesium.Cartesian3.fromDegrees(120.0, 30.0);
viewer.camera.lookAt(target, new Cesium.Cartesian3(0.0, 0.0, 5000.0));  // 相机距离目标5000米
  • zoomTo是Cesium中用于控制相机视角和定位

// viewer.zoomTo 实际上是对 camera.viewBoundingSphere 的封装
viewer.zoomTo(target, offset);  // 等同于
viewer.camera.viewBoundingSphere(boundingSphere, offset);// 应用
// 1. 飞向实体
viewer.zoomTo(entity);
// 2. 飞向实体集合
viewer.zoomTo(viewer.entities);// 3. 飞向数据源
viewer.zoomTo(dataSource);

相机事件:

相机轨迹飞行:

Cesium 还可以让相机沿着一条预设的轨迹飞行,比如沿着多段 Cartesian3 位置点。可以使用 flyTo 配合 Polyline 来模拟轨迹飞行。

var positions = [Cesium.Cartesian3.fromDegrees(120.0, 30.0, 5000),Cesium.Cartesian3.fromDegrees(121.0, 30.5, 5000),Cesium.Cartesian3.fromDegrees(122.0, 31.0, 5000)
];viewer.camera.flyTo({destination: positions[0],complete: function() {viewer.camera.flyTo({destination: positions[1]});}
});

视觉化理解相机:


假设你是摄影师,相机属性就像这样:

  1. 你站在哪里? -> position
  2. 你看向哪里? -> direction
  3. 你的头顶朝向哪里? -> up
  4. 你的右手指向? - right
  5. 你水平转动脖子左右转头 -> heading
  6. 你点头或抬头 -> pitch
  7. 你歪着头 -> roll

相关文章:

cesium相机(camera)控制

camera基础属性: Cesium 中的相机通过 viewer.camera 来获取和操作。 position:相机的位置,用 Cartesian3 坐标表示,表示的是相机在世界坐标系中的绝对位置。 viewer.camera.position Cesium.Cartesian3.fromDegrees(longitude, latitude, height);dir…...

Java 反射

一、基本概念 Java反射机制是Java语言的一种动态特性,允许程序在运行时检查和操作类、接口、字段和方法。反射机制使得Java程序可以在运行时获取关于类的详细信息,并且可以动态地调用类的方法、访问类的字段等。反射机制主要涉及以下几个核心类和接口&a…...

【目标检测01】真实框、预测框、锚框和交并比IoU

文章目录 1. 任务定义2. 基本概念2.1 边界框(bounding box)2.2 真实框、预测框和锚框2.3 交并比 (IoU)2.4 代码实现 1. 任务定义 目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框&#x…...

青少年编程能力等级测评CPA C++五级试卷(2)

青少年编程能力等级测评CPA C++五级试卷(2) 一、单项选择题(共15题,每题3分,共45分) CP5_2_1.下列有关类的重用方法的叙述中,不正确的是( )。 A.类的继承可以实现类的重用 B.类的组合可以实现类的重用 C.类的封装可以实现类的重用 D.类的继承和类的组合都可…...

SATA数据线

SATA 数据线(Serial ATA 数据线)是一种用于连接计算机主板与存储设备(如硬盘、固态硬盘和光驱)的线缆。它的主要作用是传输数据,允许计算机与这些设备之间进行高效的数据交换。 主要作用 数据传输:SATA 数…...

《云原生安全攻防》-- K8s攻击案例:权限维持的攻击手法

在本节课程中,我们将一起深入了解K8s权限维持的攻击手法,通过研究这些攻击手法的技术细节,来更好地认识K8s权限维持所带来的安全风险。 在这个课程中,我们将学习以下内容: K8s权限维持:简单介绍K8s权限维持…...

回溯算法-Java【力扣】【算法学习day.14】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…...

从本地到云端:跨用户请求问题的完美解决方案

对于某些单个请求或响应中含有多个用户信息的服务,SDK提供了一套基于统一的UCS拆分和聚合的解决方案供开发者使用。 请求拆分 对于跨用户服务的请求,我们提供了两个处理方案: 【1】根据用户信息拆分请求: 场景:请求内…...

leetcode day4 409+5

409 最长回文串 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 示例 1: 输入:s "abccccdd" 输出:7 解…...

英语语法学习框架(考研)

一、简单句 英语都是由简单句构成,简单句共有五种基本句型:①主谓;②主谓宾;③主谓宾宾补;④主谓宾间宾(间接宾语);⑤主系表; 其中谓语是句子最重要的部分,谓…...

基于neo4j的学术论文关系管理系统

正在为毕业设计头疼?又或者在学术研究中总是找不到像样的工具来管理浩瀚的文献资料?今天给大家介绍一款超实用的工具——基于Neo4j的学术论文关系管理系统,让你轻松搞定学术文献的管理与展示!🎉 系统的核心是什么呢&a…...

C#中的委托、匿名方法、Lambda、Action和Func

委托 委托概述 委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型,可以把一个方法当作另一方法的参数。所有的委托(Delegate)都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。 # 声明委托类型 委托类型声…...

IDEA关联Tomcat——最新版本IDEA 2024

1.链接Tomcat到IDEA上 添加Tomcat到IDEA上有两种方式: 第一种: (1)首先,来到欢迎界面,找到左侧的Customize选项 (2)然后找到Build、Execution、Deployment选项 (3&am…...

【如何获取股票数据18】Python、Java等多种主流语言实例演示获取股票行情api接口之沪深A股解禁限售数据获取实例演示及接口API说明文档

最近一两年内,股票量化分析逐渐成为热门话题。而从事这一领域工作的第一步,就是获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的主要任…...

NVR小程序接入平台/设备EasyNVR多品牌NVR管理工具/设备的多维拓展与灵活应用

在数字化安防时代,NVR批量管理软件/平台EasyNVR作为一种先进的视频监控系统设备,正逐步成为各个领域监控解决方案的首选。NVR批量管理软件/平台EasyNVR作为一款基于端-边-云一体化架构的国标视频融合云平台,凭借其部署简单轻量、功能多样、兼…...

GPT-4o 和 GPT-4 Turbo 模型之间的对比

GPT-4o 和 GPT-4 Turbo 之间的对比 备注 要弄 AI ,不同模型之间的对比就比较重要。 GPT-4o 是 GPT-4 Turbo 的升级版本,能够提供比 GPT-4 Turbo 更多的内容和信息,但成功相对来说更高一些。 第三方引用 在 2024 年 5 月 13 日&#xff0…...

gin入门教程(10):实现jwt认证

使用 github.com/golang-jwt/jwt 实现 JWT(JSON Web Token)可以有效地进行用户身份验证,这个功能往往在接口前后端分离的应用中经常用到。以下是一个基本的示例,演示如何在 Gin 框架中实现 JWT 认证。 目录结构 /hello-gin │ ├── cmd/ …...

Python 基础语法 - 数据类型

顾名思义,计算机就是用来做数学计算的机器,因此,计算机程序理所当然的可以处理各种数值。但是,计算机能处理的远远不止数值,还可以处理文本,图形,音频,视频,网页等各种各…...

自托管无代码数据库Undb

什么是 Undb ? Undb 是一个无代码平台,也可以作为后端即服务 (BaaS)。它基于 SQLite,可以使用 Bun 打包成二进制文件用于后端服务。此外,它可以通过 Docker 部署为服务,提供表管理的 UI。 软件特点: ⚡ 无…...

正则的正向前瞻断言和负向前瞻断言

正则的正向前瞻断言和负向前瞻断言 一. 正向前瞻断言二. 负向前瞻断言三. 总结 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 正向前瞻断言和负向前瞻断言是正则表达式中用于检查后续字…...

实战-Spine动画与UI元素的层级穿插艺术

1. Spine动画与UI层级穿插的核心挑战 在2D游戏开发中,角色动画和UI元素的视觉层级管理是个高频痛点。我遇到过最典型的场景是:当角色装备武器时,武器需要插入到手臂和身体之间;释放技能时,特效又要在特定骨骼层级间动态…...

CircuitPython开发实战:从环境搭建到内存优化与硬件选型

1. CircuitPython开发环境搭建与核心概念 如果你是从Arduino或者传统的嵌入式C开发转向微控制器编程,第一次接触CircuitPython的感觉,就像是突然有人给你递了一把万能钥匙。过去,点个灯、读个传感器,你得跟寄存器、数据手册、还有…...

项目烂尾的魔咒:为什么你的物联网系统总是“上线即落后”?

在物联网行业有一个令人沮丧的“3-6-12”现象:3个月调研,6个月开发,12个月后项目烂尾或重构。 为什么投入巨资打造的智慧园区或工业互联系统,往往在验收通过的那一刻,就已经开始走向僵化?问题往往不出在硬…...

别再只用HTTP了!用Flask-SocketIO给你的Python Web应用加上实时聊天功能(附完整前后端代码)

用Flask-SocketIO为Python Web应用注入实时交互能力 当你的博客读者提交评论后,管理员需要刷新页面才能看到新内容;当团队协作工具中的任务状态变更时,同事必须手动同步才能获取最新进展——这些传统HTTP请求带来的延迟与割裂感,正…...

高效构建面试题库系统:React+Node全栈技术实战指南

高效构建面试题库系统:ReactNode全栈技术实战指南 【免费下载链接】mianshiya-public 持续维护的企业面试题库网站,帮你拿到满意 offer!⭐️ 2026年最新Java面试题、前端面试题、AI大模型面试题、AI Agent面试题、RAG面试题、C面试题、Go面试…...

解决企业级日期处理难题:Vue3-DateTime-Picker的现代化架构设计与实战应用

解决企业级日期处理难题:Vue3-DateTime-Picker的现代化架构设计与实战应用 【免费下载链接】vue3-date-time-picker Datepicker component for Vue 3 项目地址: https://gitcode.com/gh_mirrors/vu/vue3-date-time-picker Vue3-DateTime-Picker是一款基于Vue…...

LunaTranslator:打破语言壁垒,让视觉小说触手可及

LunaTranslator:打破语言壁垒,让视觉小说触手可及 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator 还在为日文、英文的视觉小说而烦恼吗&#xff1…...

保姆级教程:在HCL模拟器上给H3C路由器配置DHCP服务器(双网段实战)

从零构建H3C路由器双网段DHCP服务:模拟器实战与协议解析 在虚拟实验室中搭建网络环境已成为现代工程师的必备技能,而DHCP服务作为网络自动化的基石,其配置过程往往成为初学者接触企业级设备的第一个实战挑战。本文将使用H3C官方推出的HCL模拟…...

3步掌握VADER情感分析:颠覆传统NLP方法的实战指南

3步掌握VADER情感分析:颠覆传统NLP方法的实战指南 【免费下载链接】vaderSentiment VADER Sentiment Analysis. VADER (Valence Aware Dictionary and sEntiment Reasoner) is a lexicon and rule-based sentiment analysis tool that is specifically attuned to s…...

特斯拉Model 3车主必看:用华为随行WiFi+流量卡,低成本搞定车载WiFi(附Type-C供电方案)

特斯拉Model 3车主必看:低成本车载WiFi实战指南 特斯拉Model 3的车载娱乐系统依赖网络连接,但官方高级娱乐服务的月费让不少车主犹豫。更糟的是,部分地区的4G信号覆盖不佳,导致在线音乐、实时路况等功能形同虚设。本文将分享一套经…...