cesium 3d-tiles平移、贴地和旋转

作者: 李仙伟 | 来源:发表于2019-02-12 19:00 被阅读78次

    //示例参数,根据实际情况设置(可定制UI实现动态调整,直到满意为止)

    var params = {

        tx: 110.5,  //模型中心X轴坐标(经度,单位:十进制度)

        ty: 30,    //模型中心Y轴坐标(纬度,单位:十进制度)

        tz: 1120,    //模型中心Z轴坐标(高程,单位:米)

        rx: 60,    //X轴(经度)方向旋转角度(单位:度)

        ry: 30,    //Y轴(纬度)方向旋转角度(单位:度)

        rz: 0      //Z轴(高程)方向旋转角度(单位:度)

    };

    //平移、贴地、旋转模型

    function update3dtilesMaxtrix(tileset) {

        //旋转

        var mx = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(params.rx));

        var my = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(params.ry));

        var mz = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(params.rz));

        var rotationX = Cesium.Matrix4.fromRotationTranslation(mx);

        var rotationY = Cesium.Matrix4.fromRotationTranslation(my);

        var rotationZ = Cesium.Matrix4.fromRotationTranslation(mz);

        //平移

        var position = Cesium.Cartesian3.fromDegrees(params.tx, params.ty, params.tz);

        var m = Cesium.Transforms.eastNorthUpToFixedFrame(position);

        //旋转、平移矩阵相乘

        Cesium.Matrix4.multiply(m, rotationX, m);

        Cesium.Matrix4.multiply(m, rotationY, m);

        Cesium.Matrix4.multiply(m, rotationZ, m);

        //赋值给tileset

        tileset._root.transform = m;

    }

    //调用示例

    function test(viewer) {

        viewer.scene.globe.depthTestAgainstTerrain = true;

        var url = "./test/tileset.json";

        var tileset = new Cesium.Cesium3DTileset({

            url: url

        });

        var primitive = viewer.scene.primitives.add(tileset);

        primitive.readyPromise.then(function (t) {

            var originalSphere = t.boundingSphere;

            var radius = originalSphere.radius;

            viewer.zoomTo(t, new Cesium.HeadingPitchRange(0.5, -0.5, radius * 4.0));

            //平移、贴地、旋转模型

            update3dtilesMaxtrix(tileset);

        }).otherwise(function (error) {

            var msg = JSON.stringify(error);

            console.log(msg);

        });

    }

    欢迎加QQ群(cesium 3dtiles):392437033。

    相关文章

      网友评论

        本文标题:cesium 3d-tiles平移、贴地和旋转

        本文链接:https://www.haomeiwen.com/subject/gfakeqtx.html