03 Cesium 您所在的位置:网站首页 logic隐藏主界面 03 Cesium

03 Cesium

2024-06-21 21:23| 来源: 网络整理| 查看: 265

在这里插入图片描述

文章中所有操作均是在 Cesium 1.91 版本下进行的,其它版本差异请自行适配

界面预览

Geocoder,查找位置工具,查找到之后会将镜头对准找到的地址,默认使用 bing 地图。Home Button,视角返回初始位置。Scene Mode Picker,选择视角的模式,有三种:3D、2D、哥伦布视图(CV)。Base Layer Picker,图层选择器,选择要显示的地图服务和地形服务。Navigation Help Button,导航帮助按钮,显示默认的地图控制帮助。Animation,动画器件,控制视图动画的播放速度。Credits Display,版权显示,显示数据归属。Timeline,时间线,指示当前时间,并允许用户跳到特定的时间。Fullscreen Button,全屏按钮。 隐藏界面中的各个元素 方法一,通过js代码控制

界面上默认的小控件可以通过在初始化 Viewer 的时候设置相应的属性来关闭,一下列出了界面默认的小控件的关闭方法,还有很多额外的属性,可以查看帮助文档。代码如下:

const viewer = new Cesium.Viewer('cesiumContainer', { geocoder: false, //隐藏查找控件 homeButton: false, //隐藏视角返回初始位置按钮 sceneModePicker: false, //隐藏视角模式3D 2D CV baseLayerPicker: false, //隐藏图层选择 navigationHelpButton: false, //隐藏帮助 animation: false, //隐藏动画控件 timeline: false, //隐藏时间线控件 fullscreenButton: false, //隐藏全屏 ...... ...... }); 方法二,通过css样式控制

可以通过控制 css 样式起到隐藏效果,代码如下:

.cesium-viewer-toolbar, /* 右上角按钮组 */ .cesium-viewer-animationContainer, /* 左下角动画控件 */ .cesium-viewer-timelineContainer, /* 时间线 */ .cesium-viewer-bottom /* logo信息 */ { display: none; } .cesium-viewer-fullscreenContainer /* 全屏按钮 */ {position: absolute; top: -999em;}

注:全屏按钮不能通过“display: none;”的方式来达到隐藏的目的,因为生成的按钮控件的行业样式设置了“display”属性,会强制覆盖 css 属性,所以还是建议直接通过 js 控制的方式隐藏更合理一些。

如何隐藏版权信息

版权信息需要通过 js 控制隐藏,代码如下:

// 隐藏版权信息 viewer._cesiumWidget._creditContainer.style.display = "none";

下载地址是:https://cesium.com/downloads/,不过众所周知,速度很感人。或者你想了解最新的进展可以直接克隆 GitHub 上的代码 Cesium GitHub 地址,不过注意有些特性在分支版本里面才有。

下载后,将 zip 文件解压到您选择的新目录(自定义即可)中,内容应该看起来像下面(版本不同会存在差异):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nDOdWSh6-1648020026983)(…/assets/环境搭建01.png)]

注意:直接点击 index.html 是无效的,需要放入WebServer 容器中,才能运行起来。

其它一些设置

除了界面中需要隐藏的控件之外,还一些其它的配置,比如:

const viewer = new Cesium.Viewer('cesiumContainer', { //启用请求渲染模式 requestRenderMode: true, //原生自带绿色选择框,双击显示的绿框 selectionIndicator: true, //每个几何实例将只能以3D渲染以节省GPU内存 scene3DOnly: true, //隐藏点击要素之后显示的信息窗口 infoBox: false, //隐藏VR按钮,默认false vrButton: false, //开启动画自动播放 shouldAnimate: true, //默认为true,如果不需要控制渲染循环,则设为false useDefaultRenderLoop: true, //初始场景模式 1:2D 2:2D循环 3:3D,默认3 sceneMode: 3, //地图投影体系,默认Ellipsoid.WGS84 mapProjection : new Cesium.WebMercatorProjection(), /* //用于渲染星空的SkyBox对象 skyBox: new Cesium.SkyBox({ sources : { positiveX : 'Cesium-1.7.1/Skybox/px.jpg', negativeX : 'Cesium-1.7.1/Skybox/mx.jpg', positiveY : 'Cesium-1.7.1/Skybox/py.jpg', negativeY : 'Cesium-1.7.1/Skybox/my.jpg', positiveZ : 'Cesium-1.7.1/Skybox/pz.jpg', negativeZ : 'Cesium-1.7.1/Skybox/mz.jpg' } }), */ /* //全屏时渲染的HTML元素 fullscreenElement: document.body, //如果需要控制渲染循环,则设为true useDefaultRenderLoop: true, //使用默认render loop时的帧率 targetFrameRate: undefined, //如果设为true,将在一个HTML面板中显示错误信息 showRenderLoopErrors: false, //自动追踪最近添加的数据源的时钟设置 automaticallyTrackDataSourceClocks: true, //传递给Scene对象的上下文参数(scene.options) contextOptions: undefined, //初始场景模式 sceneMode: Cesium.SceneMode.SCENE3D, //地图投影体系 mapProjection: new Cesium.WebMercatorProjection(), dataSources: new Cesium.DataSourceCollection() */ }); // 显示帧 FPS viewer.scene.debugShowFramesPerSecond = true; //开启 // 隐藏大气层 viewer.scene.skyAtmosphere.show = true; //开启 // 光照效果 viewer.scene.globe.enableLighting = true; // 开启光照 //高程遮挡效果 viewer.scene.globe.depthTestAgainstTerrain = true; // 开启遮挡 // 去除实体双击事件 viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);

当然还有更多的配置或者设置,需要用到的时候再拿出来配置即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有