CESIUM例子学习(五)——Camera. fyTo与viewer.flyTo(3)

前面两节学习了对Camera的控制,但是还有一个疑问,Camera. fyTo()与viewer.flyTo()这两个函数有区别吗?之前我自己也没有去仔细看过,感觉两个函数应该没什么区别,都是定位而已。

一、Camera. fyTo

Flies the camera from its current position to a new position,相机从当前位置飞到新的位置。参数如下图:

其中destination:指的是相机的目标位置,是相机所在位置,这一点一定要注意;

orientation:类型尽然是Object类型,显然并不是所有的Object都能对定位起作用,那是什么样的Object类型呢?其实它是这样一个对象,如下:

 orientation: {
                heading: viewer.camera.heading,
                pitch: viewer.camera.pitch,
                roll: viewer.camera.roll
            }

这个对象是对相机姿态参数。有这两个参数基本上就够了。

二、viewer. fyTo

Flies the camera to the provided entity, entities, or data source. If the data source is still in the process of loading or the visualization is otherwise still loading, this method waits for the data to be ready before performing the flight。把相机飞到entity, entities, 或者data source位置。在这些数据还加载和渲染完成后,才能触发fyTo。

参数如下图:

这个说得就比较清楚。target:可以是entity、entities、tilse或者data source;option虽然也是Object,但解释得很明白:飞行时间、飞行最大高度、偏移量。其中offset也是相机的姿态参数。

三、如何应用

如果在场景中已经添加了各个要素,需要定位到某个目标,显然viewer. fyTo()是比较合适的;也就是说目标是要素,viewer. fyTo()比较合适。比如定位到某个坐标;如果是设置相机位置,Camera. fyTo()比较合适。

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用CesiumCamera对象的`viewMatrix`属性来获取当前相机的位置和方向信息,然后将这些信息保存在变量中,以便后续使用`viewer.camera.flyTo`方法进行定位。以下是一个示例代码: ```javascript var camera = viewer.camera; // 获取视图器的相机对象 var position = camera.position; // 获取相机的位置 var direction = camera.direction; // 获取相机的朝向 var up = camera.up; // 获取相机的上方向 var right = camera.right; // 获取相机的右方向 // 将相机参数保存在变量中 var cameraParams = { position: position, direction: direction, up: up, right: right }; // 通过变量进行定位 viewer.camera.flyTo({ destination: cameraParams.position, orientation: { direction: cameraParams.direction, up: cameraParams.up }, duration: 3 }); ``` 说明: - `viewer`是CesiumViewer对象,代表了整个场景。 - `camera`是该Viewer对象的相机对象。 - `position`属性返回一个Cesium.Cartesian3对象,表示相机的位置。 - `direction`属性返回一个Cesium.Cartesian3对象,表示相机的朝向。 - `up`属性返回一个Cesium.Cartesian3对象,表示相机的上方向。 - `right`属性返回一个Cesium.Cartesian3对象,表示相机的右方向。 - 将相机参数保存在变量中,可以在后续的操作中进行重复使用,避免重复计算相机参数。 - `destination`参数指定了动画结束时相机的位置。 - `orientation`参数指定了相机的朝向和上方向。 - `duration`参数指定了动画的持续时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值