CesiumJS中,TileAvailability是一个用于管理切片(tile)可用性的类。Clustering和TileBoundingVolume都用到了该类来进行判断和处理。
new Cesium.TileAvailability(tileset)
tileset - {Cesium.Cesium3DTileset} - 一个Cesium3DTileset实例。TileAvailability类存储了一个3D Tileset的可用切片(tile)的状态信息,并且支持判断切片是否可用。如果切片不可用,则可以将其标记为不错过(never skip)。可以通过继承该类来修改判断切片可用性的方式。
ready{Boolean} - 表示TileAvailability实例是否已准备好使用。complete{Boolean} - 表示TileAvailability实例是否标记所有切片为不错过。readyPromise{Promise} - 一个Promise对象,当TileAvailability实例准备就绪时将被解决。maximumScreenSpaceError{Number} - 控制判断切片是否可用和标记切片为 never skip 的阈值:当切片的屏幕空间误差(screen space error)小于该值时,该切片视为可用。skipLevelOfDetail{Number} - 在屏幕空间误差大于maximumScreenSpaceError时,如果一个切片的层级(level)比比该值低,则该切片将被标记为 never skip。tilesAvailable{Object} - 一个存储了所有已知切片的状态信息的对象,以切片ID作为键。neverSkip{Number[]} - 一个数组,存储当前已被标记为 never skip 的切片的ID。update(tile)为TileAvailability实例存储一个切片。
tile - {Cesium.Cesium3DTile} - 一个Cesium3DTile实例。isTileAvailable(tile)判断一个切片是否可用。
tile - {Cesium.Cesium3DTile} - 一个Cesium3DTile实例。
{Boolean} - 如果该切片可用则返回 true,否则返回 false。
markTileNeverSkip(tile)将一个切片标记为 never skip。
tile - {Cesium.Cesium3DTile} - 一个Cesium3DTile实例。updateTiles(frameState)更新切片的状态信息。
frameState - {Object} - 帧状态对象。reset()重置所有切片的状态信息。