Cesium中camera的视角问题

    由于最近接触到的内容需要使用到camera,花了点时间简单地研究了下这个东西.

    在camera这个对象了,有很多方法,我觉得比较好用常用的有setView\lookAt\flyTo.首先谈一谈flyTo

viewer.camera.flyTo({
    camera.flyTo({
                destination: Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
                duration: 1,
                orientation: {
                    heading: Cesium.Math.toRadians(),
                    pitch: Cesium.Math.toRadians(),
                    roll: Cesium.Math.toRadians()
                },
            });
});

flyTo方法可以产生相机视角飞行一段时间到达目的地的效果.

destination-相机目标位置.

duration-相机飞行的时间,秒为单位,值越小,速度越快.

orientation-相机镜头对准的方法.

    heading-代表镜头左右方向,正值为右,负值为左,360度和0度是一样的

    pitch-代表镜头上下方向,正值为上,负值为下.

    roll-代表镜头左右倾斜.正值,向右倾斜,负值向左倾斜

 

camera.lookAt(target,offset):

这个方法使相机的镜头直接对准目标,target为焦点的位置,offset为偏移量(焦距).

target是世界坐标系下的位置,offset是在target为原点的基础上建立的x-y-z坐标(对应east-north-up)

比如:

var center = Cesium.Cartesian3.fromDegrees(-98.0, 40.0);
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));

center就是镜头的目标位置

后面的offset值为(0,-4790000,3930000)意味着 相机离center X轴方向0,Y轴负方向4790000,Z轴正方向3930000.

转载于:https://my.oschina.net/nuistmyx/blog/634414

你可能感兴趣的:(Cesium中camera的视角问题)