使用cesium + earthSDK获取相机位置以及绕点飞行(围绕一个点旋转)

使用cesium + earthSDK获取相机位置以及绕点飞行(围绕一个点旋转)

今天在开发的过程中,需要使用cesium 和earthSDK 的API实现绕点飞行,最开始的思路是,不断获取相机的位置,然后改变相机位置,当然这是弯路,这里还是说一下获取相机位置及参数的一些方法

一.首先利用ellipsoid来找相机的高度

	// 获取摄像机位置世界坐标
		//获取相机位置
        var cartesian3 = viewer.camera.position;
        //获取ellipsoid
        var ellipsoid = viewer.scene.globe.ellipsoid;
        //获取cartographic
        var cartographic = ellipsoid.cartesianToCartographic(cartesian3);
        // 经度:
        var lng = Cesium.Math.toDegrees(cartographic.longitude);
        // 纬度:
        var lat = Cesium.Math.toDegrees(cartographic.latitude);
        // 高度:
        var alt = cartographic.height;
        // 指向
        let heading = Cesium.Math.toDegrees(viewer.camera.heading);
        // 视角
        let pitch = Cesium.Math.toDegrees(viewer.camera.pitch);
        // 旋转
        let roll = Cesium.Math.toDegrees(viewer.camera.roll);

二.其次使用viewer.camera来获取相机的一些信息:

// 经度:
        var lng = viewer.camera.positionCartographic.longitude;
        // 纬度:
        var lat = viewer.camera.positionCartographic.latitude;
        // 高度:
        var alt = viewer.camera.positionCartographic.height;
        // 指向
        let heading = Cesium.Math.toDegrees(viewer.camera.heading);
        // 视角
        let pitch = Cesium.Math.toDegrees(viewer.camera.pitch);
        // 旋转
        let roll = Cesium.Math.toDegrees(viewer.camera.roll);

注意这里在固定点的时候两个得到的经纬度以及高度是一致的,但是当相机运动之后,得到的数据就会相差很大如下:
这是固定点:
在这里插入图片描述
这是相机运动一段时间后:
在这里插入图片描述
后一种针对相机的方法能够准确的获取相机的位置,在使用的时候尤其要注意。

三.实现绕点飞行(绕点旋转)

earthSDK的绕点飞行函数及对应参数:
在这里插入图片描述

            earth.camera.flyAround([2.0991, 0.5497211, 0], 5000, [
                0,
                -0.3,
                0,
            ],1)

earthSDK飞到某一点:
在这里插入图片描述

// 相机直接飞向北京(116.39, 39.9)的位置,高度100米的目标,再距离目标点1000米的距离停下来,此时目标点刚好位置屏幕中心位置。
// 同时相机的方向是正东向,向下倾斜30度。
// 相机方向是这样的 朝北是0度,朝东是90度,朝南是180度,朝西是270度。抬头看天的俯仰角是90度,俯视地面是-90度。
earth.camera.flyTo([116.39*Math.PI/180, 39.9*Math.PI/180, 100], 1000, [90*Math.PI/180, -30*Math.PI/180, 0]);

效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38870665/article/details/112644937