Class SymbolBucket
Implements
Index
Constructors
Properties
allowVerticalPlacement
bucketInstanceId
canOverlap
collisionArrays
collisionBoxArray
collisionCircleArray
compareText
fadeStartTime
features
featureSortOrder
glyphOffsetArray
hasDependencies
hasRTLText
icon
iconCollisionBox
iconsInText
iconSizeData
iconsNeedLinear
index
justReloaded
layerIds
layers
lineVertexArray
overscaling
pixelRatio
sdfIcons
sortedAngle
sortFeaturesByKey
sortFeaturesByY
sortKeyRanges
sourceID
sourceLayerIndex
stateDependentLayerIds
stateDependentLayers
symbolInstanceIndexes
symbolInstances
text
textAnchorOffsets
textCollisionBox
textSizeData
tilePixelRatio
uploaded
writingModes
zoom
addDynamicAttributes
MAX_GLYPHS
Methods
addCollisionDebugVertices
addDebugCollisionBoxes
addIndicesForPlacedSymbol
addSymbols
addToLineVertexArray
addToSortKeyRanges
createArrays
deserializeCollisionBoxes
destroy
destroyDebugData
generateCollisionDebugBuffers
getSortedSymbolIndexes
hasDebugData
hasIconCollisionBoxData
hasIconData
hasTextCollisionBoxData
hasTextData
isEmpty
populate
sortFeatures
update
upload
uploadPending
Constructors
constructor
Parameters
- options: BucketParameters<SymbolStyleLayer>
Returns SymbolBucket
Properties
allowVerticalPlacement
allowVerticalPlacement: boolean
bucketInstanceId
bucketInstanceId: number
canOverlap
canOverlap: boolean
collisionArrays
collisionBoxArray
collisionCircleArray
collisionCircleArray: number[]
compareText
fadeStartTime
fadeStartTime: number
features
featureSortOrder
featureSortOrder: number[]
glyphOffsetArray
hasDependencies
hasDependencies: boolean
hasRTLText
hasRTLText: boolean
icon
iconCollisionBox
iconsInText
iconsInText: boolean
iconSizeData
iconsNeedLinear
iconsNeedLinear: boolean
index
index: number
justReloaded
justReloaded: boolean
layerIds
layerIds: string[]
layers
lineVertexArray
overscaling
overscaling: number
pixelRatio
pixelRatio: number
sdfIcons
sdfIcons: boolean
sortedAngle
sortedAngle: number
sortFeaturesByKey
sortFeaturesByKey: boolean
sortFeaturesByY
sortFeaturesByY: boolean
sortKeyRanges
sourceID
sourceID: string
sourceLayerIndex
sourceLayerIndex: number
stateDependentLayerIds
stateDependentLayerIds: string[]
stateDependentLayers
symbolInstanceIndexes
symbolInstanceIndexes: number[]
symbolInstances
text
textAnchorOffsets
textCollisionBox
textSizeData
tilePixelRatio
tilePixelRatio: number
uploaded
uploaded: boolean
writingModes
zoom
zoom: number
StaticaddDynamicAttributes
StaticMAX_GLYPHS
MAX_GLYPHS: number
Methods
addCollisionDebugVertices
- addCollisionDebugVertices(
x1: number,
y1: number,
x2: number,
y2: number,
arrays: CollisionBuffers,
boxAnchorPoint: Point,
symbolInstance: SymbolInstanceStruct,
): voidParameters
- x1: number
- y1: number
- x2: number
- y2: number
- arrays: CollisionBuffers
- boxAnchorPoint: Point
- symbolInstance: SymbolInstanceStruct
Returns void
addDebugCollisionBoxes
- addDebugCollisionBoxes(
startIndex: number,
endIndex: number,
symbolInstance: SymbolInstanceStruct,
isText: boolean,
): voidParameters
- startIndex: number
- endIndex: number
- symbolInstance: SymbolInstanceStruct
- isText: boolean
Returns void
addIndicesForPlacedSymbol
Parameters
- iconOrText: SymbolBuffers
- placedSymbolIndex: number
Returns void
addSymbols
- addSymbols(
arrays: SymbolBuffers,
quads: SymbolQuad[],
sizeVertex: any,
lineOffset: [number, number],
alongLine: boolean,
feature: SymbolFeature,
writingMode: WritingMode,
labelAnchor: Anchor,
lineStartIndex: number,
lineLength: number,
associatedIconIndex: number,
canonical: CanonicalTileID,
): voidParameters
- arrays: SymbolBuffers
- quads: SymbolQuad[]
- sizeVertex: any
- lineOffset: [number, number]
- alongLine: boolean
- feature: SymbolFeature
- writingMode: WritingMode
- labelAnchor: Anchor
- lineStartIndex: number
- lineLength: number
- associatedIconIndex: number
- canonical: CanonicalTileID
Returns void
addToLineVertexArray
addToSortKeyRanges
Parameters
- symbolInstanceIndex: number
- sortKey: number
Returns void
createArrays
Returns void
deserializeCollisionBoxes
Parameters
- collisionBoxArray: CollisionBoxArray
Returns void
destroy
Release the WebGL resources associated with the buffers. Note that because buckets are shared between layers having the same layout properties, they must be destroyed in groups (all buckets for a tile, or all symbol buckets).
Returns void
destroyDebugData
Returns void
generateCollisionDebugBuffers
Returns void
getSortedSymbolIndexes
Parameters
- angle: number
Returns any[]
hasDebugData
Returns CollisionBuffers
hasIconCollisionBoxData
Returns boolean
hasIconData
Returns boolean
hasTextCollisionBoxData
Returns boolean
hasTextData
Returns boolean
isEmpty
Returns boolean
populate
- populate(
features: IndexedFeature[],
options: PopulateParameters,
canonical: CanonicalTileID,
): voidParameters
- features: IndexedFeature[]
- options: PopulateParameters
- canonical: CanonicalTileID
Returns void
sortFeatures
Parameters
- angle: number
Returns void
update
- update(
states: FeatureStates,
vtLayer: VectorTileLayerLike,
imagePositions: { [_: string]: ImagePosition },
): voidParameters
- states: FeatureStates
- vtLayer: VectorTileLayerLike
- imagePositions: { [_: string]: ImagePosition }
Returns void
upload
Parameters
- context: Context
Returns void
uploadPending
Returns boolean
Was this helpful?
Hidden
The
Bucketinterface is the single point of knowledge about turning vector tiles into WebGL buffers.Bucketis an abstract interface. An implementation exists for each style layer type. Create a bucket via theStyleLayer.createBucketmethod.The concrete bucket types, using layout options from the style layer, transform feature geometries into vertex and index data for use by the vertex shader. They also (via
ProgramConfiguration) use feature properties and the zoom level to populate the attributes needed for data-driven styling.Buckets are designed to be built on a worker thread and then serialized and transferred back to the main thread for rendering. On the worker side, a bucket's vertex, index, and attribute data is stored in
bucket.arrays: ArrayGroup. When a bucket's data is serialized and sent back to the main thread, is gets deserialized (usingnew Bucket(serializedBucketData), with the array data now stored inbucket.buffers: BufferGroup. BufferGroups hold the same data as ArrayGroups, but are tuned for consumption by WebGL.