【Cesium】地图初始化,添加地形、光照、底图、搜索等基本功能

const viewer = new Cesium.Viewer("cesiumContainer", {
    
        animation: false,       //动画控件 
        baseLayerPicker: true,  //底图选择
        fullscreenButton: true, // 全屏按钮
        geocoder: true,         // 搜索功能
        homeButton: false,  //home键值,返回初始地图
        infoBox: false,   // 选择信息展示框
        navigationHelpButton: false,    //是否显示右上角的帮助按钮 
        navigationInstructionsInitiallyVisible: true,  // 导航说明显示
        requestRenderMode: true, // 显式渲染,渲染优化
        maximumRenderTimeChange : Infinity // 请求新帧的时间
        sceneModePicker: false,   //是否显示3D/2D选择器 
        sceneMode: Cesium.SceneMode.SCENE3D,   //3d视角展示
        shadows: true,  //光照的阴影效果
        terrainProvider: Cesium.createWorldTerrain({
             requestVertexNormals: true,
             requestWaterMask: true, // 动态水流
        }),   // 展示地形
        timeline: true,                 //时间轴控件 
        vrButton: false,                //vr功能
        imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
       url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
        })  // 默认加载arcgis在线地图
    });
    
    viewer.scene.setTerrainExaggeration(2.0); // 地形夸张
    viewer.scene.primitives.add(Cesium.createOsmBuildings()); // 建筑osm
    viewer.scene.globe.enableLighting = true;   // 启用光照
    viewer.scene.globe.depthTestAgainstTerrain = true; //深度检测
    viewer.cesiumWidget.creditContainer.style.display = "none"; //去cesium logo水印
    viewer.scene.screenSpaceCameraController.maximumZoomDistance = 40000000;  //最大缩放高度
    viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1000 // 最小缩放高度

默认requestRenderMode值为false,CesiumJS会以常规方式渲染场景,这意味着它将尽可能频繁地渲染新的帧以保持场景的流畅性。CesiumJS 会在以下情况下自动渲染新的帧:

  • 场景中的摄像机位置或方向发生更改。

  • 场景中的图形图元属性发生更改。

  • 场景中添加或删除图形图元。

  • 渲染器 (Renderer) 的其他属性发生更改。

启用 requestRenderMode 可减少 Cesium 渲染新帧的总时间量,并降低应用程序中 Cesium 的总体 CPU 使用率。启用requestRenderMode值为true,需要在渲染时,使用scene.requestRender()语句手动更新场景。

默认情况下,启用 requestRenderMode 后,当模拟时间变化超过 0.0 秒时,将请求新帧。可以通过设置 maximumRenderTimeChange 来调整此值。如果您的场景具有随时间变化的元素(例如动画、照明变化、水色蒙版或视频),请考虑这一点。如果场景中没有元素随模拟时间而变化,请考虑将最大值渲染时间更改设置为较高的值,例如无穷大。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼遇雨愈愉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值