Entity是一个可视化元素,它可以在地球表面显示图形元素,包括点、线、多边形等等。它也可以有属性,例如名称、描述、颜色、位置等等。在Cesium中,Entity可以表示一般的对象(如汽车、飞机),也可以表示天体(如行星、卫星)。
要创建Entity,需要定义一个包含实体属性的对象,并将其传递给Entity构造函数。例如:
var entity = new Cesium.Entity({
id : 'myEntity',
name : 'My Entity',
position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
point : {
pixelSize : 10,
color : Cesium.Color.YELLOW
}
});
在这个例子中,我们创建了一个名为myEntity
的Entity,设置了名称为My Entity
,并将其放置在-75.59777
经度、40.03883
纬度的位置。此外,我们还为该实体设置了一个大小为10像素、颜色为黄色的点。
在上面的示例中,我们为实体设置了id
、name
、position
和point
属性。以下是常见的Entity属性及其说明:
一个用于唯一标识实体的字符串ID。
实体的名称。
实体的描述,可以包含HTML。
指示实体是否可见的布尔值。默认为true
。
实体的位置,以Cartesian3对象表示。
实体的点。可以是一个包含point属性的对象,也可以是一个PointGraphics对象。
实体的折线。可以是一个包含polyline属性的对象,也可以是一个PolylineGraphics对象。
实体的多边形。可以是一个包含polygon属性的对象,也可以是一个PolygonGraphics对象。
实体的椭圆。可以是一个包含ellipse属性的对象,也可以是一个EllipseGraphics对象。
实体的Billboard。可以是一个包含billboard属性的对象,也可以是一个BillboardGraphics对象。
实体的标签。可以是一个包含label属性的对象,也可以是一个LabelGraphics对象。
查看实体时从哪个方向看的单位矢量。
实体的3D模型。可以是一个包含model属性的对象,也可以是一个ModelGraphics对象。
实体的墙。可以是一个包含wall属性的对象,也可以是一个WallGraphics对象。
实体的线体体积。可以是一个包含polylineVolume属性的对象,也可以是一个PolylineVolumeGraphics对象。
实体的盒子。可以是一个包含box属性的对象,也可以是一个BoxGraphics对象。
实体的走廊。可以是一个包含corridor属性的对象,也可以是一个CorridorGraphics对象。
实体的圆柱。可以是一个包含cylinder属性的对象,也可以是一个CylinderGraphics对象。
实体的椭圆。可以是一个包含ellipse属性的对象,也可以是一个EllipseGraphics对象。
实体的椭球体。可以是一个包含ellipsoid属性的对象,也可以是一个EllipsoidGraphics对象。
实体的多边形层次结构。
除了属性之外,Entity还具有许多方法。下面是一些常用的Entity方法:
添加一个新属性,属性名为propertyName
。
删除一个属性,属性名为propertyName
。
如果Entity具有名称为propertyName
的属性,则返回true。
将名为propertyName
的属性设置为值propertyValue
。
返回名为propertyName
的属性的值。
计算给定时间的模型矩阵,并将结果存储在result
参数中。
当Entity的属性或图形改变时触发事件。
当Entity的属性改变时触发事件。
entityCollection是一个包含所有实体的集合。用户可以使用它来添加、删除或查找Entity。例如:
var viewer = new Cesium.Viewer('cesiumContainer');
var entityCollection = viewer.entities;
var entity = new Cesium.Entity({
id : 'myEntity',
name : 'My Entity',
position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
point : {
pixelSize : 10,
color : Cesium.Color.YELLOW
}
});
entityCollection.add(entity);
在这个例子中,我们创建了一个名为myEntity
的实体,并将其添加到viewer的entityCollection中。