Skip to content

Entity

Entity是对高层次抽象对象一致性的设计,这些对象将可视化和信息合成统一的数据结构,称之为Entity。Entity的设计目的是让开发者专注于三维数据的呈现,而不必关注可视化底层的设计。Entity还提供了易于实现复杂与时间动态可视化功能的结构,与静态数据自然的结合。但是Entity的底层其实还是Primitive,是对Primitive API的封装整合。

加载点示例:

python
const viewer = new Cesium.Viewer("cesiumContainer");

const wyoming = viewer.entities.add({
   position: Cesium.Cartesian3.fromDegrees(-109.080842, 45.002073),  // 位置
   point: {
   	pixelSize: 10, // 点大小
   	color: Cesium.Color.YELLOW   //点的颜色
   }
});

可以看到point通过viewwe中的entities加载到场景中,entities是Entity的集合对象。

Entity和Primitive一样提供了很多几何体绘制API,但是还是有区别的。Entity因为高度封装,所以必然舍弃了部分渲染效果,例如轮廓线,只有通过Primitive支持,Entity暂不支持。并且Entity不支持绘制圆形和球体。

Entity可以创建添加几何体,那么怎么来管理它们呢?例如:材质、样式、移除以及选择。

材质

空间对象可视化,除了我们要显示出空间对象,我们时常对其样式也是有要求的。而三维概念中,样式就是通过材质来控制的,如颜色、透明度、纹理贴图、光照等等。其中颜色透明度比较常见,如下:

const viewer = new Cesium.Viewer("cesiumContainer");

const wyoming = viewer.entities.add({
   position: Cesium.Cartesian3.fromDegrees(-109.080842, 45.002073),  // 位置
   point: {
   	pixelSize: 10, // 点大小
   	color: Cesium.Color.YELLOW   //点的颜色
   }
});