持续创作,加速成长!这是我参与「掘金日新计划 · 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资源,而不是依赖垃圾集电极。一旦这个物体被销毁,就不应该使用它。
如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧