EntityCollection

优质
小牛编辑
136浏览
2023-12-01

new LSGlobe.EntityCollection(owner)

实体Entity对象的集合,集合中每个实体具有唯一标识符

NameTypeDescription
owner

DataSource
|
CompositeEntityCollection

optional
创建此集合的数据源(或复合实体集合)

Members

readonlycollectionChanged : Event

获取从集合中添加或删除实体时触发的事件。生成的事件是EntityCollection.collectionChangedEventCallback。

readonlyid : String

获取此集合的全局唯一标识符

readonlyowner : DataSource|CompositeEntityCollection

获取此实体集合的所有者,即创建它的数据源或组合实体集合。

show : Boolean

获取此实体集合是否显示。如果此属性为true,还需设置实体的show属性为true才可以显示。

readonlyvalues : Array.<Entity>

获取集合中的实体数组。此数组不能直接修改。

Methods

staticLSGlobe.EntityCollection.collectionChangedEventCallback(collection, added, removed, changed)

EntityCollection#collectionChanged生成的事件签名

NameTypeDescription
collection

EntityCollection

触发事件的集合
added

Array.<Entity>

已添加到集合中的Entity实例数组
removed

Array.<Entity>

已从集合中删除的Entity实例的数组
changed

Array.<Entity>

已修改的Entity实例数组

add(entity) → Entity

向实体集合添加一个实体对象

NameTypeDescription
entity

Entity

待添加的实体对象
Returns:

添加成功返回true,否则返回false

Throws:
  • DeveloperError
    : 集合中已存在具有该id标识符的实体

computeAvailability() → TimeInterval

计算集合中实体的最大可用性。如果集合包含无限可用数据和非无限数据的混合,它将仅返回与非无限数据有关的区间。如果所有数据都是无限的,则会返回无限的时间间隔。

Returns:

集合中实体的可用性

contains(entity) → Boolean

判断实体对象是否已经存在于集合中

NameTypeDescription
entity

Entity

指定的实体对象
Returns:

实体对象已在集合中返回true,不存在则返回false

getById(id) → Entity

获取指定id的实体对象

NameTypeDescription
id

Object

待检索的实体id
Returns:

指定id的实体对象;如果集合中不存在该id的实体,返回undefined

getOrCreateEntity(id) → Entity

获取特定ID的实体对象,或者创建一个实体对象并把添加到集合里面(如果没存在的话)

NameTypeDescription
id

Object

获取或者创建的实体对象ID
Returns:

新建或者已存在的对象

remove(entity) → Boolean

从集合中移除一个实体对象

NameTypeDescription
entity

Entity

待移除的实体对象
Returns:

移除成功返回true;返回false表示集合中不存在此实体,移除失败。

removeAll()

移除集合中的所有实体对象

removeById(id) → Boolean

移除集合中指定id的实体对象

NameTypeDescription
id

Object

待移除的实体id
Returns:

移除成功返回true;如果指定id的实体不存在于集合中,移除失败则返回false

resumeEvents()

在添加或删除项目时立即触发EntityCollection#collectionChanged事件。当事件被暂停时所做的任何修改都将在调用此函数时作为单个事件触发。 此功能是引用计数,只要有相应的EntityCollection#resumeEvents调用,就可以安全地调用多次。

Throws:
  • DeveloperError
    : 在suspendEvents之前不能调用resumeEvents

suspendEvents()

阻止引发EntityCollection#collectionChanged事件, 直到对EntityCollection#resumeEvents进行相应的调用,此时会引发一个涵盖所有暂停操作的事件。 这允许添加多个项目 并有效地移除。只要存在对EntityCollection#resumeEvents的相应调用,就可以安全地调用此函数多次