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()
重置所有切片的状态信息。