CesiumJS主要功能介绍(下)

102 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情


Scence

Cesium中所有3D图形对象的容器,在viewer内部隐式创建,可对基础地理环境进行设置; cesium底层空间数据绘制方法是依赖Primitive,Primitive Api功能强大且非常灵活,为程序猿绘制高级图形提供了很大的自由度,开发者可根据图形学原理自定义高级图形; Scene可以对场景进行交互,如鼠标事件,相机事件等

// 隐藏地球
viewer.scene.globe.show = false;
// 对场景相机进行设置
viewer.scene.camera.setView({
    // 切换视口位置(经度,纬度,高度)
    destination:Cesium.Cartesian3.fromDegrees(116,40,15000)
})

Entity

由Primitive封装而来,Entity并不属于Scene;

Entity封装程度高,构造简单,使用便捷,使得开发者专注于数据的呈现,不必担心底层的可视化机制;

Entity Api 能够提供灵活,高性能的可视化,同时提供一致性的,易于学习使用的接口;

// 创建一个圆点
const entity = viewer.entities.add({
    // 位置
    position:Cesium.Cartesian3.fromDegrees(116,40,400),
    point:{
    // 大小
        pixelSize:100,
        // 颜色
        color:new Cesium.Color(0,0,1,1)
    }
})
// 将相机绑定到entity实例
viewer.trackedEntity = entity;

DataSourceCollection

DataSourceCollection是cesium中加载矢量数据的主要方式之一,最大的特点是支持加载矢量数据集合外部文件的调用;

//CzmlDataSource KmlDataSource GeoJsonDataSource 用于加载三种类型的数据
// Promise
viewer.dataSources.add(
     Cesium.GeoJsonDataSource.load('文件路径');
     Cesium.KmlDataSource.load('文件路径');
     Cesium.CzmlDataSource.load('文件路径');
 )
  • add 将数据添加到集合中;
  • contains 检查集合是否包含给定的数据源 return Boolean
  • destory 销毁集合中所有数据源所拥有的资源。明确销毁此对象允许确定性地释放WebGL资源,而不是依赖垃圾集电极。一旦这个物体被销毁,就不应该使用它。

如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧