Cesium 关于3dtileset纠偏

关于位置纠偏,之前尝试了很多办法,有个很复杂的方法可以修改高度,然后发现3dtileset其实就是primitive…为什么不试试矩阵呢?

Cesium.Cartesian3.fromDegrees()------ 将经纬度坐标转化成世界坐标
Cesium.Transforms.eastNorthUpToFixedFrame()--------- 计算一个从4x4变换矩阵到从以提供的原点为中心的东北向上轴(东北天坐标系)的参考框架到提供的椭球的固定参考框架。
Cesium.Matrix4.multiplyByUniformScale()-------控制缩放
tileset._root.transform = mtx;

以上代码需放在tileset.readyPromise.then里面,不然会报错。

var tileset = viewer.scene.primitives.add(
      new Cesium.Cesium3DTileset({
     
        url: '/static/bul/tileset.json',
      })
    )
    tileset.readyPromise.then(function (tileset) {
     
        // debugger
        viewer.scene.primitives.add(tileset)
        // 建立从局部到世界的坐标矩阵
        var position = Cesium.Cartesian3.fromDegrees(...)
        var mtx = Cesium.Transforms.eastNorthUpToFixedFrame(position);
        Cesium.Matrix4.multiplyByUniformScale(mtx,1,mtx);
        tileset._root.transform = mtx;
    }).otherwise(function (error) {
      })

你可能感兴趣的:(Cesium,webgl)