干翻全岛蛙蛙 发表于 2024-11-21 09:04:16

Cesium 加载B3DM模型

一、引入Cesium,可以利用该链接下载cesium
链接: https://pan.baidu.com/s/1BRQyaFCkxO2xQQT5RzFUCw?pwd=kcv9 提取码: kcv9 
在index.html文件中引入cesium
<script type="text/javascript" src="/Cesium/Cesium.js"></script> 二、初始化cesium,cesium初始化参数可自行配置
const cesiurView = ref();
const initCesiut = () => {
        Cesium.Ion.defaultAccessToken ='';
        cesiurView.value = new Cesium.Viewer(props.id, {
                animation: false, //是否显示动画控件
                shouldAnimate: true,
                homeButton: false, //是否显示Home按钮
                fullscreenButton: false, //是否显示全屏按钮
                baseLayerPicker: false, //是否显示图层选择控件
                geocoder: false, //是否显示地名查找控件
                timeline: false, //是否显示时间线控件
                sceneModePicker: false, //是否显示投影方式控件
                navigationHelpButton: false, //是否显示帮助信息控件
                infoBox: false, //是否显示点击要素之后显示的信息
                requestRenderMode: true, //启用请求渲染模式
                scene3DOnly: true, //仅渲染3D
                sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式Cesium.SceneMode
                selectionIndicator: false,//不创建selectionIndicator小部件
                skyAtmosphere:false,//不显示天空
        });
        cesiurView.value._cesiumWidget._creditContainer.style.display = 'none';// 隐藏logo
        cesiurView.value.scene.screenSpaceCameraController.inertiaZoom = 0.5;
        cesiurView.value.scene.screenSpaceCameraController.enableTilt = true; // 禁止俯仰角
        cesiurView.value.scene.globe.depthTestAgainstTerrain = false; //关闭地形
        cesiurView.value.scene.globe.show = false;
        cesiurView.value.scene.sun.show = false; //是否显示太阳
        cesiurView.value.scene.moon.show = false; //是否显示有月亮
        cesiurView.value.scene.skyBox.show = false; //是否显示星空
        cesiurView.value.scene.backgroundColor = new Cesium.Color(0,0,0,1)
}; cesium内置token,容易因token过期造成cesium加载失败,可以在Cesium官网中注册账号,获取token,然后可利用Cesium.Ion.defaultAccessToken该方法更换内置token。
二、添加B3DM到cesium中
const addB3DMModel = async () => {
        let tileset = await Cesium.Cesium3DTileset.fromUrl(``, {
                maximumScreenSpaceError: 2,//各级别最大误差
                show: true,
                skipLevels: 0,//加载图层是跳转的最小级别,0 不跳转
                immediatelyLoadDesiredLevelOfDetail: false,//只加载所需图块
                loadSiblings: false,//是否下载所有图块
                cullWithChildrenBounds: true,
        });
        cesiurView.value.scene.primitives.add(tileset, {
                disableDepthTestDistance: Number.POSITIVE_INFINITY,
        });
        cesiurView.value.zoomTo(tileset);//定位到当前模型
}; 效果如下:
https://i-blog.csdnimg.cn/direct/f1aa2624638a4af8abbfbb1d8cc67e3f.png
以上方法仅仅是记载利用cesium展示B3DM模型,详细详情大家可以自行研究

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Cesium 加载B3DM模型