cesium 倾斜摄影位置调整

680 阅读1分钟
viewer.scene.globe.depthTestAgainstTerrain = true;
      var tilesetModel = new Cesium.Cesium3DTileset({
          url: url,
          minimumPixelSize: 640,
      });
      tilesetModel.readyPromise.then(function (argument) {
          var params = {
              tx: 120.72558333333333 - .00419,  
              ty: 31.043325 + .00159,    
              tz: -80,   //修改高度
              rx: 30,    
              ry: 0,    
              rz: -65    //修改旋转
          };
          update3dtilesMaxtrix(tilesetModel);
          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);
              //缩放 修改缩放比例
              var scale = Cesium.Matrix4.fromUniformScale(0.95)
              Cesium.Matrix4.multiply(m, scale, m)
              //赋值给tileset
              tilesetModel._root.transform = m;
          }
          viewer.scene.primitives.add(tilesetModel);
          viewer.zoomTo(tilesetModel);
          
      }).otherwise(function (error) {
          new Error(error);
      });