SuperMap iClient3D for Cesium 常用方法

Cesium Color 颜色 

// 设置透明度(withAlpha)
Cesium.Color.BLUE.withAlpha(0.4)
// 透明色
Cesium.Color.TRANSPARENT;
// CSS色值转换
Cesium.Color.fromCssColorString("#ffffff")
Cesium.Color.fromCssColorString("rgba(255, 255, 255, 0.75)")
// 32位GRBA值
Cesium.Color.fromRgba(0x67ADDFFF)
// 随机颜色(alpha 透明度)
Cesium.Color.fromRandom({alpha: 0.5})

cesium常用事件

let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); 
// 左键单击事件
handler.setInputAction(function (e) {
  // 获取点击位置坐标
  let cartesian = viewer.scene.pickPosition(e.position);
  let cartographic = Cesium.Cartographic.fromCartesian(cartesian);
  let lng = Cesium.Math.toDegrees(cartographic.longitude); // 经度
  let lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度
  let height = cartographic.height //高度
  // 获取点击位置模型和实体(entity)
  let pickedObject = viewer.scene.pick(e.position);

}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
// 鼠标悬浮事件
handler.setInputAction(function (e) { 


}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
//监听渲染
viewer.scene.postRender.addEventListener(function (){ 
//每一帧触发

})
//相机变化触发
viewer.camera.changed.addEventListener(function (){

  
})

开启场景阴影和模型阴影

//开启场景阴影
viewer.scene.sun.show = true;//开启阳光照
viewer.scene.shadowMap.enabled = true;//开启阴影


//开启图层阴影,必须先开启场景阴影 --layer加载的图层对象
layer.shadowType = Cesium.ShadowType.ALL
//所有参数
//Cesium.ShadowType.ALL//图层上所有的模型都产生阴影
//Cesium.ShadowType.NONE//关闭阴影
//Cesium.ShadowType.SELECTION//图层选中的模型产生阴影



 

IndexDB优化加载图层速度,内存常驻图层拖远不会触发LOD

  const maxMemory = Cesium.MemoryManager.getMaxMemory() //获取可用内存的最大空间
  const CacheSize = Cesium.MemoryManager.getCacheSize() //获取缓存空间大小
  Cesium.MemoryManager.setCacheSize(maxMemory) //设置缓存空间大小单位MB
  Cesium.MemoryManager.setMaxMemory(maxMemory - 500)//设置内存的最大空间单位MB
  //加载完后的图层
  layer.indexedDBSetting.isGeoTilesSave = true; // 设置是否保存切片缓存
  layer.indexedDBSetting.isGeoTilesRootNodeSave = true; // 保存根节点
  layer.indexedDBSetting.isAttributesSave = true //保存属性
  layer.clearMemoryImmediately = false//是否及时释放内存,默认值为true,若设置为false.

设置图层线框模式
 

  //设置线框模式
  layer.style3D.fillStyle = Cesium.FillStyle.Fill_And_WireFrame;
  layer.wireFrameMode = Cesium.WireFrameType.EffectOutline;
  layer.style3D.lineWidth = 1; //设置线框宽度

关闭地形裙边 

//每次加载地形都要重新设置 
viewer.terrainProvider.isCreateSkirt = false; //地形关闭裙边

设置场景光照

//设置时间光照受时间影响。
viewer.clock.currentTime = Cesium.JulianDate.fromDate(new Date("2021/07/04 11:00:00"));
//设置图层是否受光照影响
layer.hasLight = true

开启深度检测

viewer.scene.globe.depthTestAgainstTerrain = true; // 开启深度检测

 经纬度转换

//经纬度转换笛卡尔三
Cesium.Cartesian3.fromDegrees(x, y, z);
//经纬度集合转换笛卡尔三
Cesium.Cartesian3.fromDegreesArray(positions);

 关闭透明排序

layer.orderIndependentTranslucency = false;

 关闭entity的遮掩


 

disableDepthTestDistance: Number.POSITIVE_INFINITY //永远不会应用深度测试 
distanceDisplayCondition:Cesium.DistanceDisplayCondition(0.0, distanceDisplay)//显示距离

你可能感兴趣的:(笔记)