Cesium 加载B3DM模型

打印 上一主题 下一主题

主题 887|帖子 887|积分 2661

一、引入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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表