cesium注意点汇总(遇到的点随时更新)

  1. 在vue框架集成cesium使用的时候,Cesium.Viewer最好挂载在window或者vue的原型链上面,避免将Viewer挂载在组件data上,以优化内存;
  2. viewer的配置项
window.viewer = new this.Cesium.Viewer("cesiumContainer", {
      animation: false, // * 左下角圆盘 速度控制器
      shouldAnimate: false, // * 当动画控件出现,用来控制是否通过旋转控件,旋转场景
      baseLayerPicker: false, // * 右上角图层选择器
      fullscreenButton: false, // * 右下角全屏按钮
      vrButton: false, // * 右下角vr按钮
      homeButton: false, // * 右上角地图恢复到初始页面按钮
      selectionIndicator: false, // * 点击后地图上显示的选择控件
      infoBox: false, // * 右上角鼠标点击后信息展示框
      sceneModePicker: false, // * 右上角2D和3D之间的切换
      timeline: false, // * 页面下方的时间条
      navigationHelpButton: false, // * 右上角帮助按钮
      navigationInstructionsInitiallyVisible: false, // * 是否展开帮助
      scene3DOnly: true, // * 如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
      useDefaultRenderLoop: true, // * 控制渲染循环
      showRenderLoopErrors: true, // * HTML面板中显示错误信息
      useBrowserRecommendedResolution: true, // * 如果为true,则以浏览器建议的分辨率渲染并忽略window.devicePixelRatio
      automaticallyTrackDataSourceClocks: true, // * 自动追踪最近添加的数据源的时钟设置
      orderIndependentTranslucency: true, // * 如果为true并且配置支持它,则使用顺序无关的半透明性
      shadows: false, // * 阴影效果
      projectionPicker: false, // * 透视投影和正投影之间切换
      requestRenderMode: true, // * 在指定情况下进行渲染,提高性能
      imageryProvider: createImageryProvider("osm"),
      terrainProvider: addTerrain("ionTerrain")
    });
  1. 移除图层的第二个参数要特别注意,第二个参数表明这个图层移除后是否销毁,如果不指明,默认销毁
let layers = window.viewer.scene.imageryLayers;
    let imaPro = createImageryProvider(
      "arcgis",
      "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer"
    );
    // * 添加imageryProvider
    let arcLayer = layers.addImageryProvider(imaPro);
    // * 设置图层的可视性
    arcLayer.show = true;
    // * 设置图层的透明度
    arcLayer.alpha = 0.5;
    // * 添加图层
    layers.add(arcLayer);
    // * 移除图层
    layers.remove(arcLayer, false)
  1. cesium中的笛卡尔坐标系: x轴垂直屏幕向外;y轴向东;z轴向北;坐标原点为地球集合中心。
  2. 由于3D tile数据一般数据量比较大,为了保证性能一般选择用Primitive方式添加而不是entity。
  3. 使用primitive加载geometry时注意外观和geometry要匹配(画框线的时候不要使用材质)。
  4. 如果使用vue3集成Cesium,建议使用vite创建Vue3项目,集成方式简单便捷。可参考:一分钟搭建 Vite + Cesium 开发环境
  5. 如果使用vue3集成了Cesium,在创建entity或者primitive时一定不要将其变为响应式数据,不然remove方法会无法移除实例。
  6. 如果使用cesium时数据量太大导致网页展示慢、卡顿,可以通过禁止网页缓存进行缓解:
    <meta http-equiv="pragrma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="expires" content="0" />
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值