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屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM