---
title: "ITransformMutators | 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.

# Interface ITransformMutators

interface ITransformMutators {  
    [apply](#apply-1)(that: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/), constrain: boolean): void;  
    [clearNearFarZOverride](#clearnearfarzoverride-1)(): void;  
    [clone](#clone-1)(): [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/);  
    [interpolatePadding](#interpolatepadding-1)(  
        start: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/),  
        target: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/),  
        t: number,  
    ): void;  
    [overrideNearFarZ](#overridenearfarz-1)(nearZ: number, farZ: number): void;  
    [populateCache](#populatecache-1)(coords: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\[\]): void;  
    [recalculateZoomAndCenter](#recalculatezoomandcenter-1)(terrain?: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)): void;  
    [resize](#resize-1)(width: number, height: number, constrainTransform: boolean): void;  
    [setBearing](#setbearing-1)(bearing: number): void;  
    [setCenter](#setcenter-1)(center: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/)): void;  
    [setConstrainOverride](#setconstrainoverride-1)(constrain?: [TransformConstrainFunction](https://docs.maptiler.com/sdk-js/api-reference/types/TransformConstrainFunction/) | null): void;  
    [setElevation](#setelevation-1)(elevation: number): void;  
    [setFov](#setfov-1)(fov: number): void;  
    [setLocationAtPoint](#setlocationatpoint-1)(lnglat: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): void;  
    [setMaxBounds](#setmaxbounds-1)(bounds?: [LngLatBounds](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLatBounds/) | null): void;  
    [setMaxPitch](#setmaxpitch-1)(pitch: number): void;  
    [setMaxZoom](#setmaxzoom-1)(zoom: number): void;  
    [setMinElevationForCurrentTile](#setminelevationforcurrenttile-1)(elevation: number): void;  
    [setMinPitch](#setminpitch-1)(pitch: number): void;  
    [setMinZoom](#setminzoom-1)(zoom: number): void;  
    [setPadding](#setpadding-1)(padding: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/)): void;  
    [setPitch](#setpitch-1)(pitch: number): void;  
    [setRenderWorldCopies](#setrenderworldcopies-1)(renderWorldCopies: boolean): void;  
    [setRoll](#setroll-1)(roll: number): void;  
    [setTransitionState](#settransitionstate-1)(value: number, error: number): void;  
    [setZoom](#setzoom-1)(zoom: number): void;  
}

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

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

##### Index

### Methods[](#methods)

[apply](#apply) [clearNearFarZOverride](#clearnearfarzoverride) [clone](#clone) [interpolatePadding](#interpolatepadding) [overrideNearFarZ](#overridenearfarz) [populateCache](#populatecache) [recalculateZoomAndCenter](#recalculatezoomandcenter) [resize](#resize) [setBearing](#setbearing) [setCenter](#setcenter) [setConstrainOverride](#setconstrainoverride) [setElevation](#setelevation) [setFov](#setfov) [setLocationAtPoint](#setlocationatpoint) [setMaxBounds](#setmaxbounds) [setMaxPitch](#setmaxpitch) [setMaxZoom](#setmaxzoom) [setMinElevationForCurrentTile](#setminelevationforcurrenttile) [setMinPitch](#setminpitch) [setMinZoom](#setminzoom) [setPadding](#setpadding) [setPitch](#setpitch) [setRenderWorldCopies](#setrenderworldcopies) [setRoll](#setroll) [setTransitionState](#settransitionstate) [setZoom](#setzoom)

## Methods[](#methods-1)

### apply[](#apply)

-   apply(that: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/), constrain: boolean): void[](#apply-1)
    
    Applies a transform to the current transform.
    
    #### Parameters
    
    -   that: [IReadonlyTransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.IReadonlyTransform/)
        
        The transform to apply to the current transform.
        
    -   constrain: boolean
        
        Whether to constrain the transform's center and zoom and recompute internal matrices once applied.
        
    
    #### Returns void
    

### clearNearFarZOverride[](#clearnearfarzoverride)

-   clearNearFarZOverride(): void[](#clearnearfarzoverride-1)
    
    Resets near and far Z plane override. Sets `autoCalculateNearFarZ` to true.
    
    #### Returns void
    

### clone[](#clone)

-   clone(): [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/)[](#clone-1)
    
    #### Returns [ITransform](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ITransform/)
    

### interpolatePadding[](#interpolatepadding)

-   interpolatePadding(  
        start: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/),  
        target: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/),  
        t: number,  
    ): void[](#interpolatepadding-1)
    
    Helper method to update edge-insets in place
    
    #### Parameters
    
    -   start: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/)
        
        the starting padding
        
    -   target: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/)
        
        the target padding
        
    -   t: number
        
        the step/weight
        
    
    #### Returns void
    

### overrideNearFarZ[](#overridenearfarz)

-   overrideNearFarZ(nearZ: number, farZ: number): void[](#overridenearfarz-1)
    
    Sets the overriding values to use for near and far Z instead of what the transform would normally compute. If set to undefined, the transform will compute its ideal values. Calling this will set `autoCalculateNearFarZ` to false.
    
    #### Parameters
    
    -   nearZ: number
    -   farZ: number
    
    #### Returns void
    

### populateCache[](#populatecache)

-   populateCache(coords: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\[\]): void[](#populatecache-1)
    
    #### Parameters
    
    -   coords: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)\[\]
        
        Array of tile IDs that will be rendered.
        
    
    #### Returns void
    
    #### Internal[](#internal)
    
    Called before rendering to allow the transform implementation to precompute data needed to render the given tiles. Used in mercator transform to precompute tile matrices (posMatrix).
    

### recalculateZoomAndCenter[](#recalculatezoomandcenter)

-   recalculateZoomAndCenter(terrain?: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)): void[](#recalculatezoomandcenter-1)
    
    This method works in combination with freezeElevation activated. freezeElevation is enabled during map-panning because during this the camera should sit in constant height. After panning finished, call this method to recalculate the zoom level and center point for the current camera-height in current terrain.
    
    #### Parameters
    
    -   `Optional`terrain: [Terrain](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Terrain/)
        
        the terrain
        
    
    #### Returns void
    

### resize[](#resize)

-   resize(width: number, height: number, constrainTransform: boolean): void[](#resize-1)
    
    Sets the transform's width and height and recomputes internal matrices.
    
    #### Parameters
    
    -   width: number
    -   height: number
    -   constrainTransform: boolean
    
    #### Returns void
    

### setBearing[](#setbearing)

-   setBearing(bearing: number): void[](#setbearing-1)
    
    Sets the transform's bearing, in degrees. Recomputes internal matrices if needed.
    
    #### Parameters
    
    -   bearing: number
    
    #### Returns void
    

### setCenter[](#setcenter)

-   setCenter(center: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/)): void[](#setcenter-1)
    
    Sets the transform's center. Automatically constrains the transform's center and zoom and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   center: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/)
    
    #### Returns void
    

### setConstrainOverride[](#setconstrainoverride)

-   setConstrainOverride(constrain?: [TransformConstrainFunction](https://docs.maptiler.com/sdk-js/api-reference/types/TransformConstrainFunction/) | null): void[](#setconstrainoverride-1)
    
    Sets or clears the custom callback overriding the transform's default constrain, whose responsibility is to respect the longitude and latitude bounds by constraining the viewport's lnglat and zoom.
    
    #### Parameters
    
    -   `Optional`constrain: [TransformConstrainFunction](https://docs.maptiler.com/sdk-js/api-reference/types/TransformConstrainFunction/) | null
        
        A [TransformConstrainFunction](https://docs.maptiler.com/sdk-js/api-reference/types/TransformConstrainFunction/) callback defining how the viewport should respect the bounds.
        
    
    #### Returns void
    

### setElevation[](#setelevation)

-   setElevation(elevation: number): void[](#setelevation-1)
    
    #### Parameters
    
    -   elevation: number
    
    #### Returns void
    

### setFov[](#setfov)

-   setFov(fov: number): void[](#setfov-1)
    
    Sets the transform's vertical field of view, in degrees. Recomputes internal matrices if needed.
    
    #### Parameters
    
    -   fov: number
    
    #### Returns void
    

### setLocationAtPoint[](#setlocationatpoint)

-   setLocationAtPoint(lnglat: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/), point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): void[](#setlocationatpoint-1)
    
    Set's the transform's center so that the given point on screen is at the given world coordinates.
    
    #### Parameters
    
    -   lnglat: [LngLat](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLat/)
        
        Desired world coordinates of the point.
        
    -   point: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        The screen point that should lie at the given coordinates.
        
    
    #### Returns void
    

### setMaxBounds[](#setmaxbounds)

-   setMaxBounds(bounds?: [LngLatBounds](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLatBounds/) | null): void[](#setmaxbounds-1)
    
    Sets or clears the map's geographical constraints.
    
    #### Parameters
    
    -   `Optional`bounds: [LngLatBounds](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLatBounds/) | null
        
        A [LngLatBounds](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.LngLatBounds/) object describing the new geographic boundaries of the map.
        
    
    #### Returns void
    

### setMaxPitch[](#setmaxpitch)

-   setMaxPitch(pitch: number): void[](#setmaxpitch-1)
    
    Sets the transform's maximal allowed pitch, in degrees. Automatically constrains the transform's pitch to the new range and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   pitch: number
    
    #### Returns void
    

### setMaxZoom[](#setmaxzoom)

-   setMaxZoom(zoom: number): void[](#setmaxzoom-1)
    
    Sets the transform's maximal allowed zoom level. Automatically constrains the transform's zoom to the new range and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   zoom: number
    
    #### Returns void
    

### setMinElevationForCurrentTile[](#setminelevationforcurrenttile)

-   setMinElevationForCurrentTile(elevation: number): void[](#setminelevationforcurrenttile-1)
    
    #### Parameters
    
    -   elevation: number
    
    #### Returns void
    

### setMinPitch[](#setminpitch)

-   setMinPitch(pitch: number): void[](#setminpitch-1)
    
    Sets the transform's minimal allowed pitch, in degrees. Automatically constrains the transform's pitch to the new range and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   pitch: number
    
    #### Returns void
    

### setMinZoom[](#setminzoom)

-   setMinZoom(zoom: number): void[](#setminzoom-1)
    
    Sets the transform's minimal allowed zoom level. Automatically constrains the transform's zoom to the new range and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   zoom: number
    
    #### Returns void
    

### setPadding[](#setpadding)

-   setPadding(padding: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/)): void[](#setpadding-1)
    
    #### Parameters
    
    -   padding: [PaddingOptions](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingOptions/)
    
    #### Returns void
    

### setPitch[](#setpitch)

-   setPitch(pitch: number): void[](#setpitch-1)
    
    Sets the transform's pitch, in degrees. Recomputes internal matrices if needed.
    
    #### Parameters
    
    -   pitch: number
    
    #### Returns void
    

### setRenderWorldCopies[](#setrenderworldcopies)

-   setRenderWorldCopies(renderWorldCopies: boolean): void[](#setrenderworldcopies-1)
    
    #### Parameters
    
    -   renderWorldCopies: boolean
    
    #### Returns void
    

### setRoll[](#setroll)

-   setRoll(roll: number): void[](#setroll-1)
    
    Sets the transform's roll, in degrees. Recomputes internal matrices if needed.
    
    #### Parameters
    
    -   roll: number
    
    #### Returns void
    

### setTransitionState[](#settransitionstate)

-   setTransitionState(value: number, error: number): void[](#settransitionstate-1)
    
    #### Parameters
    
    -   value: number
        
        The transition state value.
        
    -   error: number
        
        The error value.
        
    
    #### Returns void
    
    #### Internal[](#internal-1)
    
    Sets the transform's transition state from one projection to another.
    

### setZoom[](#setzoom)

-   setZoom(zoom: number): void[](#setzoom-1)
    
    Sets the transform's zoom. Automatically constrains the transform's center and zoom and recomputes internal matrices if needed.
    
    #### Parameters
    
    -   zoom: number
    
    #### Returns void
