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

Methods mixed in to other classes for event capabilities.

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

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

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[deltaZoom](#deltazoom) [maxzoom](#maxzoom) [minzoom](#minzoom) [tileManager](#tilemanager) [tileSize](#tilesize)

### Methods[](#methods)

[anyTilesAfterTime](#anytilesaftertime) [destruct](#destruct) [findTileInCaches](#findtileincaches) [fire](#fire) [freeRtt](#freertt) [getRenderableTiles](#getrenderabletiles) [getSource](#getsource) [getSourceTile](#getsourcetile) [getTerrainCoords](#getterraincoords) [getTileByID](#gettilebyid) [listens](#listens) [off](#off) [on](#on) [once](#once) [setEventedParent](#seteventedparent) [update](#update)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new TerrainTileManager(tileManager: [TileManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TileManager/)): TerrainTileManager[](#constructorterraintilemanager)
    
    #### Parameters
    
    -   tileManager: [TileManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TileManager/)
    
    #### Returns TerrainTileManager
    
    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)

### deltaZoom[](#deltazoom)

deltaZoom: number

raster-dem tiles will load for performance the actualZoom - deltaZoom zoom-level.

### maxzoom[](#maxzoom)

maxzoom: number

maximum zoomlevel to render the terrain.

### minzoom[](#minzoom)

minzoom: number

minimum zoomlevel to render the terrain.

### tileManager[](#tilemanager)

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

tile manager for the raster-dem source.

### tileSize[](#tilesize)

tileSize: number

render-to-texture tileSize in scene.

## Methods[](#methods-1)

### anyTilesAfterTime[](#anytilesaftertime)

-   anyTilesAfterTime(time?: number): boolean[](#anytilesaftertime-1)
    
    gets whether any tiles were loaded after a specific time. This is used to update depth & coords framebuffers.
    
    #### Parameters
    
    -   `Optional`time: number
        
        the time
        
    
    #### Returns boolean
    
    true if any tiles came into view at or after the specified time
    

### destruct[](#destruct)

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

### findTileInCaches[](#findtileincaches)

-   findTileInCaches(key: string): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined[](#findtileincaches-1)
    
    #### Parameters
    
    -   key: string
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined
    

### 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)
    

### freeRtt[](#freertt)

-   freeRtt(tileID?: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): void[](#freertt-1)
    
    Free render to texture cache
    
    #### Parameters
    
    -   `Optional`tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        optional, free only corresponding to tileID.
        
    
    #### Returns void
    

### getRenderableTiles[](#getrenderabletiles)

-   getRenderableTiles(): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)\[\][](#getrenderabletiles-1)
    
    get a list of tiles, which are loaded and should be rendered in the current scene
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)\[\]
    
    the renderable tiles
    

### 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/)
    

### getSourceTile[](#getsourcetile)

-   getSourceTile(  
        tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/),  
        searchForDEM?: boolean,  
    ): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined[](#getsourcetile-1)
    
    find the covering raster-dem tile
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the tile to look for
        
    -   `Optional`searchForDEM: boolean
        
        Optional parameter to search for (parent) source tiles with loaded dem.
        
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) | undefined
    
    the tile
    

### getTerrainCoords[](#getterraincoords)

-   getTerrainCoords(  
        tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/),  
        terrainTileRanges?: { \[zoom: string\]: [CanonicalTileRange](https://docs.maptiler.com/sdk-js/api-reference/types/CanonicalTileRange/) },  
    ): [Record](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Record/)<string, [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\>[](#getterraincoords-1)
    
    Searches for the corresponding current renderable terrain-tiles
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the tile to look for
        
    -   `Optional`terrainTileRanges: { \[zoom: string\]: [CanonicalTileRange](https://docs.maptiler.com/sdk-js/api-reference/types/CanonicalTileRange/) }
    
    #### Returns [Record](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Record/)<string, [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\>
    
    the tiles that were found
    

### getTileByID[](#gettilebyid)

-   getTileByID(id: string): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)[](#gettilebyid-1)
    
    get terrain tile by the TileID key
    
    #### Parameters
    
    -   id: string
        
        the tile id
        
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
    
    the tile
    

### 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)
    

### 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)
    

### once[](#once)

-   once(type: string, listener?: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): Promise<any\> | TerrainTileManager[](#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 Promise<any\> | TerrainTileManager
    
    `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)
    

### 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)
    

### 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)
    
    Load Terrain Tiles, create internal render-to-texture tiles, free GPU memory.
    
    #### Parameters
    
    -   transform: [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/)
        
        the operation to do
        
    -   terrain: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)
        
        the terrain
        
    
    #### Returns void
