3dtiles加载不出来的问题
错误示范
之前 用的一种方式
const init3dtitles = (url) => {
// 加载3D Tiles数据
tileset.value = new Cesium.Cesium3DTileset({
url: url,
// 根据实际路径调整
});
viewer.scene.primitives.add(tileset.value);
viewer.zoomTo(tileset.value);
}
后面用到香港数据集时,加载怎么都加不出来,要不然无法加载model 要不然停止渲染,后来发现是版本太低,升级版本后发现
tileset.readyPromise.then
这个方法一直报错,网上找了很多,发现新版本的ceisum 不支持Cesium3DTileset 加载,而是使用Cesium.Cesium3DTileset.fromUrl(url)这个方法加载 于是直接替换,但一直渲染出错,后来发现需要等
Cesium.Cesium3DTileset.fromUrl()
这个方法加载完成后,才能调用
viewer.scene.primitives.add
于是,利用Promise实现
正确代码
const tileset = Cesium.Cesium3DTileset.fromUrl(
'http://localhost:8002/tilesets/Seattle/tileset.json', { enableCollision: true }
);
tileset.then(function (_tileset) {
viewer.scene.primitives.add(_tileset);
viewer.zoomTo(_tileset);
});