CompositeEntityCollection - Cesium Documentation

# CompositeEntityCollection

#### new CompositeEntityCollection(collections)

  Non-destructively composites multiple `EntityCollection` instances into a single collection. If a Entity with the same ID exists in multiple collections, it is non-destructively merged into a single new entity instance. If an entity has the same property in multiple collections, the property of the Entity in the last collection of the list it belongs to is used. CompositeEntityCollection can be used almost anywhere that a EntityCollection is used.

  Name | Type | Description
  --- | --- | ---
  `collections` | Array.<EntityCollection> | optional The initial list of EntityCollection instances to merge.

  Source: DataSources/CompositeEntityCollection.js, line 129

### Members

#### readonlycollectionChanged :Event

  Gets the event that is fired when entities are added or removed from the collection. The generated event is a `EntityCollection.collectionChangedEventCallback`.
  Source: DataSources/CompositeEntityCollection.js, line 148

#### readonlyid :String

  Gets a globally unique identifier for this collection.
  Source: DataSources/CompositeEntityCollection.js, line 159

#### readonlyvalues :Array.<Entity>

  Gets the array of Entity instances in the collection. This array should not be modified directly.
  Source: DataSources/CompositeEntityCollection.js, line 171

### Methods

#### addCollection(collection, index)

  Adds a collection to the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to add.
  `index` | Number | optional the index to add the collection at. If omitted, the collection will added on top of all existing collections.

  ##### Throws:

  - DeveloperError : index, if supplied, must be greater than or equal to zero and less than or equal to the number of collections.
  Source: DataSources/CompositeEntityCollection.js, line 187

#### computeAvailability() → TimeInterval

  Computes the maximum availability of the entities in the collection. If the collection contains a mix of infinitely available data and non-infinite data, It will return the interval pertaining to the non-infinite data only. If all data is infinite, an infinite interval will be returned.

  ##### Returns:

  The availability of entities in the collection.
  Source: DataSources/CompositeEntityCollection.js, line 433

#### contains(entity) → Boolean

  Returns true if the provided entity is in this collection, false otherwise.

  Name | Type | Description
  --- | --- | ---
  `entity` |  | The entity.

  ##### Returns:

  true if the provided entity is in this collection, false otherwise.
  Source: DataSources/CompositeEntityCollection.js, line 253

#### containsCollection(collection) → Boolean

  Checks to see if the composite contains a given collection.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to check for.

  ##### Returns:

  true if the composite contains the collection, false otherwise.
  Source: DataSources/CompositeEntityCollection.js, line 243

#### getById(id) → Entity

  Gets an entity with the specified id.

  Name | Type | Description
  --- | --- | ---
  `id` | Object | The id of the entity to retrieve.

  ##### Returns:

  The entity with the provided id or undefined if the id did not exist in the collection.
  Source: DataSources/CompositeEntityCollection.js, line 443

#### getCollection(index)

  Gets a collection by index from the composite.

  Name | Type | Description
  --- | --- | ---
  `index` | Number | the index to retrieve.

  Source: DataSources/CompositeEntityCollection.js, line 272

#### getCollectionsLength()

  Gets the number of collections in this composite.
  Source: DataSources/CompositeEntityCollection.js, line 285

#### indexOfCollection(collection) → Number

  Determines the index of a given collection in the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | The collection to find the index of.

  ##### Returns:

  The index of the collection in the composite, or -1 if the collection does not exist in the composite.
  Source: DataSources/CompositeEntityCollection.js, line 263

#### lowerCollection(collection)

  Lowers a collection down one position in the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to move.

  ##### Throws:

  - DeveloperError : collection is not in this composite.
  Source: DataSources/CompositeEntityCollection.js, line 342

#### lowerCollectionToBottom(collection)

  Lowers a collection to the bottom of the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to move.

  ##### Throws:

  - DeveloperError : collection is not in this composite.
  Source: DataSources/CompositeEntityCollection.js, line 372

#### raiseCollection(collection)

  Raises a collection up one position in the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to move.

  ##### Throws:

  - DeveloperError : collection is not in this composite.
  Source: DataSources/CompositeEntityCollection.js, line 330

#### raiseCollectionToTop(collection)

  Raises a collection to the top of the composite.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | the collection to move.

  ##### Throws:

  - DeveloperError : collection is not in this composite.
  Source: DataSources/CompositeEntityCollection.js, line 354

#### removeAllCollections()

  Removes all collections from this composite.
  Source: DataSources/CompositeEntityCollection.js, line 232

#### removeCollection(collection) → Boolean

  Removes a collection from this composite, if present.

  Name | Type | Description
  --- | --- | ---
  `collection` | EntityCollection | The collection to remove.

  ##### Returns:

  true if the collection was in the composite and was removed, false if the collection was not in the composite.
  Source: DataSources/CompositeEntityCollection.js, line 219

#### resumeEvents()

  Resumes raising `EntityCollection#collectionChanged` events immediately when an item is added or removed. Any modifications made while while events were suspended will be triggered as a single event when this function is called. This function also ensures the collection is recomposited if events are also resumed. This function is reference counted and can safely be called multiple times as long as there are corresponding calls to `EntityCollection#resumeEvents`.

  ##### Throws:

  - DeveloperError : resumeEvents can not be called before suspendEvents.
  Source: DataSources/CompositeEntityCollection.js, line 408

#### suspendEvents()

  Prevents `EntityCollection#collectionChanged` events from being raised until a corresponding call is made to `EntityCollection#resumeEvents`, at which point a single event will be raised that covers all suspended operations. This allows for many items to be added and removed efficiently. While events are suspended, recompositing of the collections will also be suspended, as this can be a costly operation. This function can be safely called multiple times as long as there are corresponding calls to `EntityCollection#resumeEvents`.
  Source: DataSources/CompositeEntityCollection.js, line 393