ToB企服应用市场:ToB评测及商务社交产业平台

标题: Cesium 加载B3DM模型 [打印本页]

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

以上方法仅仅是记载利用cesium展示B3DM模型,详细详情大家可以自行研究

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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4