---
title: "Tile | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class Tile

A tile object is the combination of a Coordinate, which defines its place, as well as a unique ID and data tracking for its content

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[abortController](#abortcontroller) [aborted](#aborted) [actor](#actor) [buckets](#buckets) [collisionBoxArray](#collisionboxarray) [dashPositions](#dashpositions) [dem](#dem) [demMatrix](#demmatrix) [demTexture](#demtexture) [dependencies](#dependencies) [etag?](#etag) [expirationTime](#expirationtime) [expiredRequestCount](#expiredrequestcount) [fadeEndTime](#fadeendtime) [fadeOpacity](#fadeopacity) [fadingDirection](#fadingdirection) [fadingParentID](#fadingparentid) [fadingRole](#fadingrole) [fbo](#fbo) [glyphAtlasImage](#glyphatlasimage) [glyphAtlasTexture](#glyphatlastexture) [hasRTLText](#hasrtltext) [hasSymbolBuckets](#hassymbolbuckets) [imageAtlas](#imageatlas) [imageAtlasTexture](#imageatlastexture) [latestEncoding](#latestencoding) [latestFeatureIndex](#latestfeatureindex) [latestRawTileData](#latestrawtiledata) [needsHillshadePrepare](#needshillshadeprepare) [needsTerrainPrepare](#needsterrainprepare) [neighboringTiles](#neighboringtiles) [placementSource](#placementsource) [queryPadding](#querypadding) [redoWhenDone](#redowhendone) [refreshedUponExpiration](#refresheduponexpiration) [reloadPromise](#reloadpromise) [resourceTiming](#resourcetiming) [rtt](#rtt) [rttFingerprint](#rttfingerprint) [selfFading](#selffading) [showCollisionBoxes](#showcollisionboxes) [state](#state) [symbolFadeHoldUntil](#symbolfadeholduntil) [texture](#texture) [tileID](#tileid) [tileSize](#tilesize) [timeAdded](#timeadded) [uid](#uid) [uses](#uses) [vtLayers](#vtlayers)

### Methods[](#methods)

[clearSymbolFadeHold](#clearsymbolfadehold) [clearTextures](#cleartextures) [getBucket](#getbucket) [getExpiryTimeout](#getexpirytimeout) [hasData](#hasdata) [hasDependency](#hasdependency) [holdingForSymbolFade](#holdingforsymbolfade) [isRenderable](#isrenderable) [loadVectorData](#loadvectordata) [patternsLoaded](#patternsloaded) [prepare](#prepare) [queryRenderedFeatures](#queryrenderedfeatures) [querySourceFeatures](#querysourcefeatures) [resetFadeLogic](#resetfadelogic) [setCrossFadeLogic](#setcrossfadelogic) [setDependencies](#setdependencies) [setExpiryData](#setexpirydata) [setFeatureState](#setfeaturestate) [setSelfFadeLogic](#setselffadelogic) [setSymbolHoldDuration](#setsymbolholdduration) [symbolFadeFinished](#symbolfadefinished) [unloadVectorData](#unloadvectordata) [upload](#upload) [wasRequested](#wasrequested)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Tile(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/), size: number): Tile[](#constructortile)
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the tile ID
        
    -   size: number
        
        The tile size
        
    
    #### Returns Tile
    

## Properties[](#properties-1)

### abortController[](#abortcontroller)

abortController: AbortController

### aborted[](#aborted)

aborted: boolean

### actor[](#actor)

actor: [Actor](https://docs.maptiler.com/sdk-js/api-reference/classes/Actor/)

### buckets[](#buckets)

buckets: { \[\_: string\]: [Bucket](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Bucket/) }

### collisionBoxArray[](#collisionboxarray)

collisionBoxArray: [CollisionBoxArray](https://docs.maptiler.com/sdk-js/api-reference/classes/CollisionBoxArray/)

### dashPositions[](#dashpositions)

dashPositions: { \[\_: string\]: [DashEntry](https://docs.maptiler.com/sdk-js/api-reference/types/DashEntry/) }

### dem[](#dem)

dem: [DEMData](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.DEMData/)

### demMatrix[](#demmatrix)

demMatrix: [mat4](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.mat4/)

### demTexture[](#demtexture)

demTexture: [Texture](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Texture/)

### dependencies[](#dependencies)

dependencies: any

### `Optional`etag[](#etag)

etag?: string

### expirationTime[](#expirationtime)

expirationTime: any

### expiredRequestCount[](#expiredrequestcount)

expiredRequestCount: number

### fadeEndTime[](#fadeendtime)

fadeEndTime: number

### fadeOpacity[](#fadeopacity)

fadeOpacity: number

### fadingDirection[](#fadingdirection)

fadingDirection: [FadingDirections](https://docs.maptiler.com/sdk-js/api-reference/enums/Externals.FadingDirections/)

### fadingParentID[](#fadingparentid)

fadingParentID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)

### fadingRole[](#fadingrole)

fadingRole: [FadingRoles](https://docs.maptiler.com/sdk-js/api-reference/enums/Externals.FadingRoles/)

### fbo[](#fbo)

fbo: [Framebuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Framebuffer/)

### glyphAtlasImage[](#glyphatlasimage)

glyphAtlasImage: [AlphaImage](https://docs.maptiler.com/sdk-js/api-reference/classes/AlphaImage/)

### glyphAtlasTexture[](#glyphatlastexture)

glyphAtlasTexture: [Texture](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Texture/)

### hasRTLText[](#hasrtltext)

hasRTLText: boolean

### hasSymbolBuckets[](#hassymbolbuckets)

hasSymbolBuckets: boolean

### imageAtlas[](#imageatlas)

imageAtlas: [ImageAtlas](https://docs.maptiler.com/sdk-js/api-reference/classes/ImageAtlas/)

### imageAtlasTexture[](#imageatlastexture)

imageAtlasTexture: [Texture](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Texture/)

### latestEncoding[](#latestencoding)

latestEncoding: string

### latestFeatureIndex[](#latestfeatureindex)

latestFeatureIndex: [FeatureIndex](https://docs.maptiler.com/sdk-js/api-reference/classes/FeatureIndex/) | null

### latestRawTileData[](#latestrawtiledata)

latestRawTileData: ArrayBuffer

### needsHillshadePrepare[](#needshillshadeprepare)

needsHillshadePrepare: boolean

### needsTerrainPrepare[](#needsterrainprepare)

needsTerrainPrepare: boolean

### neighboringTiles[](#neighboringtiles)

neighboringTiles: [Record](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Record/)<string, { backfilled: boolean }\>

### placementSource[](#placementsource)

placementSource: any

### queryPadding[](#querypadding)

queryPadding: number

### redoWhenDone[](#redowhendone)

redoWhenDone: boolean

### refreshedUponExpiration[](#refresheduponexpiration)

refreshedUponExpiration: boolean

### reloadPromise[](#reloadpromise)

reloadPromise: { reject: () \=> void; resolve: () \=> void }

### resourceTiming[](#resourcetiming)

resourceTiming: PerformanceResourceTiming\[\]

### rtt[](#rtt)

rtt: { id: number; stamp: number }\[\]

### rttFingerprint[](#rttfingerprint)

rttFingerprint: { \[sourceId: string\]: string }

### selfFading[](#selffading)

selfFading: boolean

### showCollisionBoxes[](#showcollisionboxes)

showCollisionBoxes: boolean

### state[](#state)

state: [TileState](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TileState/)

### symbolFadeHoldUntil[](#symbolfadeholduntil)

symbolFadeHoldUntil: number

### texture[](#texture)

texture: any

### tileID[](#tileid)

tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)

### tileSize[](#tilesize)

tileSize: number

### timeAdded[](#timeadded)

timeAdded: number

### uid[](#uid)

uid: number

### uses[](#uses)

uses: number

### vtLayers[](#vtlayers)

vtLayers: { \[\_: string\]: [VectorTileLayerLike](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.VectorTileLayerLike/) }

## Methods[](#methods-1)

### clearSymbolFadeHold[](#clearsymbolfadehold)

-   clearSymbolFadeHold(): void[](#clearsymbolfadehold-1)
    
    #### Returns void
    

### clearTextures[](#cleartextures)

-   clearTextures(painter: any): void[](#cleartextures-1)
    
    #### Parameters
    
    -   painter: any
    
    #### Returns void
    

### getBucket[](#getbucket)

-   getBucket(layer: [StyleLayer](https://docs.maptiler.com/sdk-js/api-reference/classes/StyleLayer/)): [Bucket](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Bucket/)[](#getbucket-1)
    
    #### Parameters
    
    -   layer: [StyleLayer](https://docs.maptiler.com/sdk-js/api-reference/classes/StyleLayer/)
    
    #### Returns [Bucket](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Bucket/)
    

### getExpiryTimeout[](#getexpirytimeout)

-   getExpiryTimeout(): number[](#getexpirytimeout-1)
    
    #### Returns number
    

### hasData[](#hasdata)

-   hasData(): boolean[](#hasdata-1)
    
    #### Returns boolean
    

### hasDependency[](#hasdependency)

-   hasDependency(namespaces: string\[\], keys: string\[\]): boolean[](#hasdependency-1)
    
    #### Parameters
    
    -   namespaces: string\[\]
    -   keys: string\[\]
    
    #### Returns boolean
    

### holdingForSymbolFade[](#holdingforsymbolfade)

-   holdingForSymbolFade(): boolean[](#holdingforsymbolfade-1)
    
    #### Returns boolean
    

### isRenderable[](#isrenderable)

-   isRenderable(symbolLayer: boolean): boolean[](#isrenderable-1)
    
    #### Parameters
    
    -   symbolLayer: boolean
    
    #### Returns boolean
    

### loadVectorData[](#loadvectordata)

-   loadVectorData(  
        data: [WorkerTileResult](https://docs.maptiler.com/sdk-js/api-reference/types/WorkerTileResult/),  
        painter: [Painter](https://docs.maptiler.com/sdk-js/api-reference/classes/Painter/),  
        justReloaded?: boolean | null,  
    ): void[](#loadvectordata-1)
    
    Given a data object with a 'buffers' property, load it into this tile's elementGroups and buffers properties and set loaded to true. If the data is null, like in the case of an empty GeoJSON tile, no-op but still set loaded to true.
    
    #### Parameters
    
    -   data: [WorkerTileResult](https://docs.maptiler.com/sdk-js/api-reference/types/WorkerTileResult/)
        
        The data from the worker
        
    -   painter: [Painter](https://docs.maptiler.com/sdk-js/api-reference/classes/Painter/)
        
        the painter
        
    -   `Optional`justReloaded: boolean | null
        
        `true` to just reload
        
    
    #### Returns void
    

### patternsLoaded[](#patternsloaded)

-   patternsLoaded(): boolean[](#patternsloaded-1)
    
    #### Returns boolean
    

### prepare[](#prepare)

-   prepare(imageManager: [ImageManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ImageManager/)): void[](#prepare-1)
    
    #### Parameters
    
    -   imageManager: [ImageManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ImageManager/)
    
    #### Returns void
    

### queryRenderedFeatures[](#queryrenderedfeatures)

-   queryRenderedFeatures(  
        layers: { \[\_: string\]: [StyleLayer](https://docs.maptiler.com/sdk-js/api-reference/classes/StyleLayer/) },  
        serializedLayers: { \[\_: string\]: any },  
        sourceFeatureState: [SourceFeatureState](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.SourceFeatureState/),  
        queryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        cameraQueryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        scale: number,  
        params:  
            | [Pick](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Pick/)<  
                [QueryRenderedFeaturesOptionsStrict](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryRenderedFeaturesOptionsStrict/),  
                "filter"  
                | "layers"  
                | "availableImages",  
            \>  
            | undefined,  
        transform: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/),  
        maxPitchScaleFactor: number,  
        pixelPosMatrix: [mat4](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.mat4/),  
        getElevation: ((x: number, y: number) \=> number) | undefined,  
    ): [QueryResults](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryResults/)[](#queryrenderedfeatures-1)
    
    #### Parameters
    
    -   layers: { \[\_: string\]: [StyleLayer](https://docs.maptiler.com/sdk-js/api-reference/classes/StyleLayer/) }
    -   serializedLayers: { \[\_: string\]: any }
    -   sourceFeatureState: [SourceFeatureState](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.SourceFeatureState/)
    -   queryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
    -   cameraQueryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
    -   scale: number
    -   params:  
            | [Pick](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Pick/)<  
                [QueryRenderedFeaturesOptionsStrict](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryRenderedFeaturesOptionsStrict/),  
                "filter"  
                | "layers"  
                | "availableImages",  
            \>  
            | undefined
    -   transform: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/)
    -   maxPitchScaleFactor: number
    -   pixelPosMatrix: [mat4](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.mat4/)
    -   getElevation: ((x: number, y: number) \=> number) | undefined
    
    #### Returns [QueryResults](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryResults/)
    

### querySourceFeatures[](#querysourcefeatures)

-   querySourceFeatures(  
        result: [GeoJSONFeature](https://docs.maptiler.com/sdk-js/api-reference/classes/GeoJSONFeature/)\[\],  
        params?: [QuerySourceFeatureOptionsStrict](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QuerySourceFeatureOptionsStrict/),  
    ): void[](#querysourcefeatures-1)
    
    #### Parameters
    
    -   result: [GeoJSONFeature](https://docs.maptiler.com/sdk-js/api-reference/classes/GeoJSONFeature/)\[\]
    -   `Optional`params: [QuerySourceFeatureOptionsStrict](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QuerySourceFeatureOptionsStrict/)
    
    #### Returns void
    

### resetFadeLogic[](#resetfadelogic)

-   resetFadeLogic(): void[](#resetfadelogic-1)
    
    #### Returns void
    

### setCrossFadeLogic[](#setcrossfadelogic)

-   setCrossFadeLogic(\_\_namedParameters: [CrossFadeArgs](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.CrossFadeArgs/)): void[](#setcrossfadelogic-1)
    
    #### Parameters
    
    -   \_\_namedParameters: [CrossFadeArgs](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.CrossFadeArgs/)
    
    #### Returns void
    
    #### Internal[](#internal)
    
    Many-to-one crossfade between a base tile and parent/ancestor tile (when zooming)
    

### setDependencies[](#setdependencies)

-   setDependencies(namespace: string, dependencies: string\[\]): void[](#setdependencies-1)
    
    #### Parameters
    
    -   namespace: string
    -   dependencies: string\[\]
    
    #### Returns void
    

### setExpiryData[](#setexpirydata)

-   setExpiryData(data: [ExpiryData](https://docs.maptiler.com/sdk-js/api-reference/types/ExpiryData/)): void[](#setexpirydata-1)
    
    #### Parameters
    
    -   data: [ExpiryData](https://docs.maptiler.com/sdk-js/api-reference/types/ExpiryData/)
    
    #### Returns void
    

### setFeatureState[](#setfeaturestate)

-   setFeatureState(states: [LayerFeatureStates](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.LayerFeatureStates/), painter: any): void[](#setfeaturestate-1)
    
    #### Parameters
    
    -   states: [LayerFeatureStates](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.LayerFeatureStates/)
    -   painter: any
    
    #### Returns void
    

### setSelfFadeLogic[](#setselffadelogic)

-   setSelfFadeLogic(fadeEndTime: number): void[](#setselffadelogic-1)
    
    Self fading for edge tiles (when panning map)
    
    #### Parameters
    
    -   fadeEndTime: number
    
    #### Returns void
    

### setSymbolHoldDuration[](#setsymbolholdduration)

-   setSymbolHoldDuration(duration: number): void[](#setsymbolholdduration-1)
    
    #### Parameters
    
    -   duration: number
    
    #### Returns void
    

### symbolFadeFinished[](#symbolfadefinished)

-   symbolFadeFinished(): boolean[](#symbolfadefinished-1)
    
    #### Returns boolean
    

### unloadVectorData[](#unloadvectordata)

-   unloadVectorData(): void[](#unloadvectordata-1)
    
    Release any data or WebGL resources referenced by this tile.
    
    #### Returns void
    

### upload[](#upload)

-   upload(context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/)): void[](#upload-1)
    
    #### Parameters
    
    -   context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/)
    
    #### Returns void
    

### wasRequested[](#wasrequested)

-   wasRequested(): boolean[](#wasrequested-1)
    
    #### Returns boolean
