加载3DTileset
tileset = await Cesium.Cesium3DTileset.fromUrl(
url
);
将tileset的包围球中心点坐标从笛卡尔坐标系转换为地理坐标系
const cartographic = Cesium.Cartographic.fromCartesian(
tileset.boundingSphere.center
);
根据中心点坐标计算出的地表坐标点
const surface = Cesium.Cartesian3.fromRadians(
cartographic.longitude, //经度
cartographic.latitude, //纬度
0.0 //高度
);
根据中心点坐标和height值计算出的新的坐标点
const offset = Cesium.Cartesian3.fromRadians(
新的经度
新的维度
新的高度
);
更新tileset模型矩阵(modelMatrix)的,实现tileset位置的平移变换
const translation = Cesium.Cartesian3.subtract(
offset, //根据中心点坐标和height值计算出的新的坐标点
surface, //根据中心点坐标计算出的地表坐标点
new Cesium.Cartesian3()
);
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);