(五)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