(五)Cesium加载3Dtiles报错

目前大多网站写的加载3Dtiles都是如下:

const tileset = await Cesium.Cesium3DTileset(
'http://localhost:9003/model/tKwkn4XY6/tileset.json'
);
viewer.scene.primitives.add(tileset);
viewer.zoomTo(tileset) // 缩放到 tileset 范围
但是!!!

Cesium的API修改了,这样是会报错的

API文档:Cesium3DTileset - Cesium 文档

 

此对象通常不直接实例化,请使用 Cesium3DTileset.fromUrl。

好吧,还是得多看官方文档。

try {
const tileset = await Cesium.Cesium3DTileset.fromUrl(
'src/assets/beforeWater2/tileset.json'
)
viewer.scene.primitives.add(tileset,{
disableDepthTestDistance: Number.POSITIVE_INFINITY
});
viewer.zoomTo(tileset);

// 将3d tiles离地高度抬升20米
let cartographic = Cesium.Cartographic.fromCartesian(
tileset.boundingSphere.center
);

let surface = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
0.0
);

let offset = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
20.0
);

let translation = Cesium.Cartesian3.subtract(
offset,
surface,
new Cesium.Cartesian3()
);

tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
// viewer.scene.primitives.add(tileset);
// viewer.zoomTo(tileset) // 缩放到 tileset 范围
} catch (error) {
console.error(`Error creating tileset: ${error}`);
}
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/a974313302/article/details/137563644

posted @ 2024-11-26 16:51  疯子110  阅读(39)  评论(0编辑  收藏  举报