首页 > 其他分享 >Cesium中Camera的常用方法

Cesium中Camera的常用方法

时间:2023-04-20 10:03:31浏览次数:24  
标签:常用 Camera viewer fromDegrees camera Cesium Math

08-Cesium中Camera的常用方法

camera是viewer.scene中的属性,用来控制当前的可见域。viewer.camera 是快捷写法,访问的是 viewer.scene.camera,所以调用时这两种写法都行。介绍三种常用的view.carmera方法。

(1)setView

Camera根据视图位置直接定位。

const position = Cesium.Cartesian3.fromDegrees(118.923, 32.482, 1785000) //可以根据需求选择坐标与坐标类型
viewer.camera.setView({
    destination: position,                  // 相机位置
    orientation: {
        heading: Cesium.Math.toRadians(0), // 水平旋转  -正北方向
        pitch: Cesium.Math.toRadians(-90), // 上下旋转  --俯视朝向
        roll: 0                                                   // 视口翻滚角度
        }
})

主要参数:
heading: 偏航角,默认方向为正北(0°),正角度为向东旋转,即左右摇头。
pitch: 俯仰角,默认角度为-90°,即朝向地面,0°为平视,正角度为仰视,负角度为俯视,即抬头低头。
roll: 翻转角,默认角度为0°,正角度向右旋转,负角度向左旋转,即左右歪头。

(2)flyHome

默认位置 Cesium.Camera.DEFAULT_VIEW_RECTANGLE(默认视角矩形框),视角由一个矩形组成。

Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(119.9, 30.7501282784158, 121.33, 31.9645982738191);
// 将相机飞到主视图,即默认矩形框区域。
let duration = 2;
viewer.camera.flyHome(duration)

在 Cesium.Rectangle.fromDegrees()中,传入的四个参数分别为最西边坐标点的经度,最南边左边点的纬度,最东边坐标点的经度,最南边坐标点的维度,是矩形框四个坐标点的集合。
duration表示飞行的持续时间,可以不传。默认值为Cesium根据需要行驶的距离来计算飞行持续时间。

(3)flyTo

将相机从当前位置飞行移动到新位置。

// 1. 飞到自上而下视图的位置(垂直视角)
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(118.923, 32.482, 15000.0)
});

// 2. 飞到自上而下视图的矩形(垂直视角)
viewer.camera.flyTo({
    destination : Cesium.Rectangle.fromDegrees(119.9, 30.7501282784158, 121.33, 31.9645982738191)
});

// 3.使用航向、俯仰和滚转飞到一个方位.
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(118.923, 32.482, 5000.0),
    orientation : {
        heading : Cesium.Math.toRadians(175.0),
        pitch : Cesium.Math.toRadians(-35.0),
        roll : 0.0
    }
});

(4)lookAt

场景视角锁定,拖动视图主要以小球视角进行环绕查看。使用目标和偏移量设置相机位置和方向。

const center =  Cesium.Cartesian3.fromDegrees(118.923, 32.482,)  // 目标位置
const heading =   Cesium.Math.toRadians(50)// 水平旋转  -正北方向
const pitch =  Cesium.Math.toRadians(-90) // 上下旋转  --俯视朝向
const range = 2000 // 目标点高度
viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range))

标签:常用,Camera,viewer,fromDegrees,camera,Cesium,Math
From: https://www.cnblogs.com/DTCLOUD/p/17335718.html

相关文章

  • cython常用方法
    Cython是一种将Python代码转换为C或C++代码的编译器,可以提高Python代码的速度和性能。如果Python代码中使用了第三方模块,可以使用Cython将其转换为C或C++代码。下面是使用Cython将带第三方模块的py文件转换成C和C++的详细说明和示例:  安装Cython......
  • Navicat常用快捷键
    1.ctrl+r运行当前查询窗口的所有sql语句2.ctrl+shift+r只运行选中的sql语句3.ctrl+/注释sql语句4.ctrl+shift+/解除注释5.ctrl+q打开查询窗口6.ctrl+n打开一个新的查询窗口7.ctrl+w关闭当前查询窗口8.ctrl+l删除一行9.Shift+Home鼠标在当前一行末尾,按快捷选中当......
  • mysql,redis,mongodb常用命令
    MySQL常用命令:1.mysql-uusername-p:以指定用户身份登录MySQL数据库。2.showdatabases:列出所有数据库。3.usedatabase_name:选择指定的数据库。4.showtables:列出当前数据库中的所有表。5.describetable_name:显示指定表的结构。6.select*fromtable_name:查询指......
  • 3-常用API
    第一章Date类1.1Date概述java.util.Date`类表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数publicDate():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以......
  • 性能测试常用SQL
    查询表空间使用情况SELECTA.TABLESPACE_NAMETABLENAME,ROUND(A.BYTES/1024/1024/1024,2)"TOTAL(G)",ROUND(B.BYTES/1024/1024/1024,2)"USED(G)",ROUND(C.BYTES/1024/1024/1024,2)"FREE(G)"FROMSYS.SM$TS_AVAILA,SYS.SM$TS_US......
  • Docker CLI docker compose events常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • c语言常用语法笔记
    ----代码太长要换行voidmain(){printf("%s","1231232423145123523542353145134\51342512352352135")//实际输出效果123123242314512352354235314513451342512352352135printf("%s","1231232423145123523542353145134\51342512352......
  • Java基础——常用类
    常用类字符串String//初始化////Stringstr1=newString();初始化一个新创建的String对象,使其表示一个空字符序列。////String(Stringoriginal)初始化一个新创建的String对象,使其表示与参数相同的字符序列;换句话说,新创建的字符串是参数字符串的副本。////Strin......
  • 常用的快捷键和dos命令
    常用快捷键ctrl+shift+esc打开任务管理器window+tab切换页面alt+f4关闭网页ctrl+z撤销shift+delete永久删除Dos命令打开cmd的方式1.window+r2.开始+系统+命令提示符3.在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口4.资源管理器的地址栏前......
  • 记录常用的爬虫代码段(长期更新)
    判断文件路径不存在创建文件路径ifnotosp.exists(path):os.makedirs(path)去除字符串非法字符,防止创建文件夹报错#去掉非法字符pitow=re.sub('[\/:*?"<>|]','-',name)......