---
title: "TileManager | 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 TileManager

Methods mixed in to other classes for event capabilities.

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.TileManager))

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

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[dispatcher](#dispatcher) [id](#id) [map](#map) [style](#style) [terrain](#terrain) [tileSize](#tilesize) [transform](#transform) [used](#used) [usedForTerrain](#usedforterrain) [maxOverzooming](#maxoverzooming) [maxUnderzooming](#maxunderzooming)

### Methods[](#methods)

[areTilesLoaded](#aretilesloaded) [clearTiles](#cleartiles) [fire](#fire) [getFeatureState](#getfeaturestate) [getIds](#getids) [getLoadedTile](#getloadedtile) [getRenderableIds](#getrenderableids) [getSource](#getsource) [getState](#getstate) [getTile](#gettile) [getTileByID](#gettilebyid) [getVisibleCoordinates](#getvisiblecoordinates) [handleWrapJump](#handlewrapjump) [hasRenderableParent](#hasrenderableparent) [hasTransition](#hastransition) [listens](#listens) [loaded](#loaded) [off](#off) [on](#on) [onAdd](#onadd) [once](#once) [onRemove](#onremove) [pause](#pause) [prepare](#prepare) [refreshTiles](#refreshtiles) [releaseSymbolFadeTiles](#releasesymbolfadetiles) [reload](#reload) [reloadTilesForDependencies](#reloadtilesfordependencies) [removeFeatureState](#removefeaturestate) [resume](#resume) [serialize](#serialize) [setDependencies](#setdependencies) [setEventedParent](#seteventedparent) [setFeatureState](#setfeaturestate) [setRasterFadeDuration](#setrasterfadeduration) [tilesIn](#tilesin) [update](#update) [updateCacheSize](#updatecachesize)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new TileManager(  
        id: string,  
        options: [CanvasSourceSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CanvasSourceSpecification/) | [SourceSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SourceSpecification/),  
        dispatcher: [Dispatcher](https://docs.maptiler.com/sdk-js/api-reference/classes/Dispatcher/),  
    ): TileManager[](#constructortilemanager)
    
    #### Parameters
    
    -   id: string
    -   options: [CanvasSourceSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CanvasSourceSpecification/) | [SourceSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SourceSpecification/)
    -   dispatcher: [Dispatcher](https://docs.maptiler.com/sdk-js/api-reference/classes/Dispatcher/)
    
    #### Returns TileManager
    
    Overrides [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[constructor](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#constructor)
    

## Properties[](#properties-1)

### dispatcher[](#dispatcher)

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

### id[](#id)

id: string

### map[](#map)

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

### style[](#style)

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

### terrain[](#terrain)

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

### tileSize[](#tilesize)

tileSize: number

### transform[](#transform)

transform: [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/)

### used[](#used)

used: boolean

### usedForTerrain[](#usedforterrain)

usedForTerrain: boolean

### `Static`maxOverzooming[](#maxoverzooming)

maxOverzooming: number

### `Static`maxUnderzooming[](#maxunderzooming)

maxUnderzooming: number

## Methods[](#methods-1)

### areTilesLoaded[](#aretilesloaded)

-   areTilesLoaded(): boolean[](#aretilesloaded-1)
    
    #### Returns boolean
    

### clearTiles[](#cleartiles)

-   clearTiles(): void[](#cleartiles-1)
    
    Remove all tiles from this pyramid
    
    #### Returns void
    

### fire[](#fire)

-   fire(event: string | [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/), properties?: any): this[](#fire-1)
    
    #### Parameters
    
    -   event: string | [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/)
    -   `Optional`properties: any
    
    #### Returns this
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[fire](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#fire)
    

### getFeatureState[](#getfeaturestate)

-   getFeatureState(sourceLayer: string, featureId: string | number): [FeatureState](https://docs.maptiler.com/sdk-js/api-reference/types/FeatureState/)[](#getfeaturestate-1)
    
    Get the entire state object for a feature
    
    #### Parameters
    
    -   sourceLayer: string
    -   featureId: string | number
    
    #### Returns [FeatureState](https://docs.maptiler.com/sdk-js/api-reference/types/FeatureState/)
    

### getIds[](#getids)

-   getIds(): string\[\][](#getids-1)
    
    Return all tile ids ordered with z-order, and cast to numbers
    
    #### Returns string\[\]
    

### getLoadedTile[](#getloadedtile)

-   getLoadedTile(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | null[](#getloadedtile-1)
    
    Get a currently loaded tile.
    
    -   a cached tile is not a loaded tile
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | null
    
    the tile if it's in view and had data, null otherwise.
    

### getRenderableIds[](#getrenderableids)

-   getRenderableIds(symbolLayer?: boolean): string\[\][](#getrenderableids-1)
    
    #### Parameters
    
    -   `Optional`symbolLayer: boolean
    
    #### Returns string\[\]
    

### getSource[](#getsource)

-   getSource(): [Source](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Source/)[](#getsource-1)
    
    #### Returns [Source](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Source/)
    

### getState[](#getstate)

-   getState(): [SourceFeatureState](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.SourceFeatureState/)[](#getstate-1)
    
    #### Returns [SourceFeatureState](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.SourceFeatureState/)
    

### getTile[](#gettile)

-   getTile(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)[](#gettile-1)
    
    Get a specific tile by TileID
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
    

### getTileByID[](#gettilebyid)

-   getTileByID(id: string): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined[](#gettilebyid-1)
    
    Get a specific tile by id
    
    #### Parameters
    
    -   id: string
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined
    

### getVisibleCoordinates[](#getvisiblecoordinates)

-   getVisibleCoordinates(symbolLayer?: boolean): [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\[\][](#getvisiblecoordinates-1)
    
    #### Parameters
    
    -   `Optional`symbolLayer: boolean
    
    #### Returns [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\[\]
    

### handleWrapJump[](#handlewrapjump)

-   handleWrapJump(lng: number): void[](#handlewrapjump-1)
    
    #### Parameters
    
    -   lng: number
    
    #### Returns void
    

### hasRenderableParent[](#hasrenderableparent)

-   hasRenderableParent(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): boolean[](#hasrenderableparent-1)
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
    
    #### Returns boolean
    

### hasTransition[](#hastransition)

-   hasTransition(): boolean[](#hastransition-1)
    
    #### Returns boolean
    

### listens[](#listens)

-   listens(type: string): boolean[](#listens-1)
    
    Returns a true if this instance of Evented or any forwardeed instances of Evented have a listener for the specified type.
    
    #### Parameters
    
    -   type: string
        
        The event type
        
    
    #### Returns boolean
    
    `true` if there is at least one registered listener for specified event type, `false` otherwise
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[listens](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#listens)
    

### loaded[](#loaded)

-   loaded(): boolean[](#loaded-1)
    
    Return true if no tile data is pending, tiles will not change unless an additional API call is received.
    
    #### Returns boolean
    

### off[](#off)

-   off(type: string, listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): this[](#off-1)
    
    Removes a previously registered event listener.
    
    #### Parameters
    
    -   type: string
        
        The event type to remove listeners for.
        
    -   listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The listener function to remove.
        
    
    #### Returns this
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[off](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#off)
    

### on[](#on)

-   on(type: string, listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): [Subscription](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Subscription/)[](#on-1)
    
    Adds a listener to a specified event type.
    
    #### Parameters
    
    -   type: string
        
        The event type to add a listen for.
        
    -   listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The function to be called when the event is fired. The listener function is called with the data object passed to `fire`, extended with `target` and `type` properties.
        
    
    #### Returns [Subscription](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Subscription/)
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[on](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#on)
    

### onAdd[](#onadd)

-   onAdd(map: [MapLibreMap](https://docs.maptiler.com/sdk-js/api-reference/classes/MapLibreMap/)): void[](#onadd-1)
    
    #### Parameters
    
    -   map: [MapLibreMap](https://docs.maptiler.com/sdk-js/api-reference/classes/MapLibreMap/)
    
    #### Returns void
    

### once[](#once)

-   once(type: string, listener?: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): TileManager | Promise<any\>[](#once-1)
    
    Adds a listener that will be called only once to a specified event type.
    
    The listener will be called first time the event fires after the listener is registered.
    
    #### Parameters
    
    -   type: string
        
        The event type to listen for.
        
    -   `Optional`listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The function to be called when the event is fired the first time.
        
    
    #### Returns TileManager | Promise<any\>
    
    `this` or a promise if a listener is not provided
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[once](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#once)
    

### onRemove[](#onremove)

-   onRemove(map: [MapLibreMap](https://docs.maptiler.com/sdk-js/api-reference/classes/MapLibreMap/)): void[](#onremove-1)
    
    #### Parameters
    
    -   map: [MapLibreMap](https://docs.maptiler.com/sdk-js/api-reference/classes/MapLibreMap/)
    
    #### Returns void
    

### pause[](#pause)

-   pause(): void[](#pause-1)
    
    #### Returns void
    

### prepare[](#prepare)

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

### refreshTiles[](#refreshtiles)

-   refreshTiles(tileIds: [ICanonicalTileID](https://docs.maptiler.com/sdk-js/api-reference/interfaces/ICanonicalTileID/)\[\]): void[](#refreshtiles-1)
    
    Reload any currently renderable tiles that are match one of the incoming `tileId` x/y/z
    
    #### Parameters
    
    -   tileIds: [ICanonicalTileID](https://docs.maptiler.com/sdk-js/api-reference/interfaces/ICanonicalTileID/)\[\]
    
    #### Returns void
    

### releaseSymbolFadeTiles[](#releasesymbolfadetiles)

-   releaseSymbolFadeTiles(): void[](#releasesymbolfadetiles-1)
    
    #### Returns void
    

### reload[](#reload)

-   reload(sourceDataChanged?: boolean, shouldReloadTileOptions?: any): void[](#reload-1)
    
    Reload tiles based on the current state of the source.
    
    #### Parameters
    
    -   `Optional`sourceDataChanged: boolean
        
        If `true`, reload all tiles using a state of 'expired', otherwise reload only non-errored tiles using state of 'reloading'.
        
    -   `Optional`shouldReloadTileOptions: any
        
        Set of options associated with a `MapSourceDataChangedEvent` that can be passed back to the associated `Source` determine whether a tile should be reloaded.
        
    
    #### Returns void
    

### reloadTilesForDependencies[](#reloadtilesfordependencies)

-   reloadTilesForDependencies(namespaces: string\[\], keys: string\[\]): void[](#reloadtilesfordependencies-1)
    
    Reloads all tiles that depend on the given keys.
    
    #### Parameters
    
    -   namespaces: string\[\]
    -   keys: string\[\]
    
    #### Returns void
    

### removeFeatureState[](#removefeaturestate)

-   removeFeatureState(  
        sourceLayer?: string,  
        featureId?: string | number,  
        key?: string,  
    ): void[](#removefeaturestate-1)
    
    Resets the value of a particular state key for a feature
    
    #### Parameters
    
    -   `Optional`sourceLayer: string
    -   `Optional`featureId: string | number
    -   `Optional`key: string
    
    #### Returns void
    

### resume[](#resume)

-   resume(): void[](#resume-1)
    
    #### Returns void
    

### serialize[](#serialize)

-   serialize(): any[](#serialize-1)
    
    #### Returns any
    

### setDependencies[](#setdependencies)

-   setDependencies(  
        tileKey: string,  
        namespace: string,  
        dependencies: string\[\],  
    ): void[](#setdependencies-1)
    
    Sets the set of keys that the tile depends on. This allows tiles to be reloaded when their dependencies change.
    
    #### Parameters
    
    -   tileKey: string
    -   namespace: string
    -   dependencies: string\[\]
    
    #### Returns void
    

### setEventedParent[](#seteventedparent)

-   setEventedParent(parent?: [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/) | null, data?: any): this[](#seteventedparent-1)
    
    Bubble all events fired by this instance of Evented to this parent instance of Evented.
    
    #### Parameters
    
    -   `Optional`parent: [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/) | null
    -   `Optional`data: any
    
    #### Returns this
    
    Inherited from [Evented](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/).[setEventedParent](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Evented/#seteventedparent)
    

### setFeatureState[](#setfeaturestate)

-   setFeatureState(  
        sourceLayer: string,  
        featureId: string | number,  
        state: any,  
    ): void[](#setfeaturestate-1)
    
    Set the value of a particular state for a feature
    
    #### Parameters
    
    -   sourceLayer: string
    -   featureId: string | number
    -   state: any
    
    #### Returns void
    

### setRasterFadeDuration[](#setrasterfadeduration)

-   setRasterFadeDuration(fadeDuration: number): void[](#setrasterfadeduration-1)
    
    #### Parameters
    
    -   fadeDuration: number
    
    #### Returns void
    

### tilesIn[](#tilesin)

-   tilesIn(  
        pointQueryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        maxPitchScaleFactor: number,  
        has3DLayer: boolean,  
    ): [TileResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TileResult/)\[\][](#tilesin-1)
    
    Search through our current tiles and attempt to find the tiles that cover the given bounds.
    
    #### Parameters
    
    -   pointQueryGeometry: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
        
        coordinates of the corners of bounding rectangle
        
    -   maxPitchScaleFactor: number
    -   has3DLayer: boolean
    
    #### Returns [TileResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TileResult/)\[\]
    
    result items have `{tile, minX, maxX, minY, maxY}`, where min/max bounding values are the given bounds transformed in into the coordinate space of this tile.
    

### update[](#update)

-   update(transform: [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/), terrain?: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)): void[](#update-1)
    
    Removes tiles that are outside the viewport and adds new tiles that are inside the viewport.
    
    #### Parameters
    
    -   transform: [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/)
    -   `Optional`terrain: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)
    
    #### Returns void
    

### updateCacheSize[](#updatecachesize)

-   updateCacheSize(transform: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/)): void[](#updatecachesize-1)
    
    Resizes the tile cache based on the current viewport's size or the maxTileCacheSize option passed during map creation
    
    Larger viewports use more tiles and need larger caches. Larger viewports are more likely to be found on devices with more memory and on pages where the map is more important.
    
    #### Parameters
    
    -   transform: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/)
    
    #### Returns void
