cesium加载3D—gltf模型

Posted haiszu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cesium加载3D—gltf模型相关的知识,希望对你有一定的参考价值。

var z= new Array(‘./src/1.gltf‘, ‘./src/2.gltf‘,‘./src/3.gltf‘ );
var model,modelin,modelroot;
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(经度, 纬度,1));        //gltf数据加载位置——中点
//加载gltf格式数据到cesium,z为模型名称,modelMatrix为模型中心点的经纬度坐标
function model_add(url){
/*        let index = url.lastIndexOf("/"); // lastIndexOf("/")  找到最后一个  /  的位置
        let fileName = url.substr(index + 1); // substr() 截取剩余的字符,即得文件名xxx.doc*/
        model=scene.primitives.add(Cesium.Model.fromGltf({
            url : url,        //如果为bgltf则为.bgltf
            modelMatrix : modelMatrix,
            scale : 0.001,  //放大倍数
        }));
        /*获取3D model 的旋转矩阵modelMatrix*/
        let m = model.modelMatrix;
        //构建一个三阶旋转矩阵。模型旋转一定的角度,fromRotation[Z]来控制旋转轴,toRadians()为旋转角度,转为弧度再参与运算
        let m1 = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(-78));
        //矩阵计算
        Cesium.Matrix4.multiplyByMatrix3(m,m1,m);
        //将计算结果再赋值给modelMatrix
        model.modelMatrix = m;
}
function mode3D_play(checkbox){
    if(checkbox.checked==true){
        model.show=true;
    }else{
        model.show=false;
    }
}
for(let i=0;i<z.length;i++){
    model_add(z[i]);
}

1对于加载的三个gltf数据模型均为model,因此统一控制其属性(类似于group)

2mode3D_play(checkbox)通过网页上的input标签控制model的show属性

以上是关于cesium加载3D—gltf模型的主要内容,如果未能解决你的问题,请参考以下文章

Cesium学习笔记:导入3D模型(obj转gltf)

cesium czml 3d模型动画

cesium加载gltf模型点击以及列表点击定位弹窗

cesium加载gltf模型点击以及列表点击定位弹窗

surfer如何导出三维gltf文件

ThreeJS 加载gltf模型过暗问题解决