---
title: "TwoFingersTouchHandler | 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 TwoFingersTouchHandler`Abstract`

Handlers interpret dom events and return camera changes that should be applied to the map (`HandlerResult`s). The camera changes are all deltas. The handler itself should have no knowledge of the map's current state. This makes it easier to merge multiple results and keeps handlers simpler. For example, if there is a mousedown and mousemove, the mousePan handler would return a `panDelta` on the mousemove.

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

-   TwoFingersTouchHandler
    -   [TwoFingersTouchZoomHandler](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TwoFingersTouchZoomHandler/)
    -   [TwoFingersTouchRotateHandler](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TwoFingersTouchRotateHandler/)
    -   [TwoFingersTouchPitchHandler](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TwoFingersTouchPitchHandler/)

#### Implements

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

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Methods[](#methods)

[disable](#disable) [enable](#enable) [isActive](#isactive) [isEnabled](#isenabled) [reset](#reset) [touchcancel](#touchcancel) [touchend](#touchend) [touchmove](#touchmove) [touchstart](#touchstart)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new TwoFingersTouchHandler(): TwoFingersTouchHandler[](#constructortwofingerstouchhandler)
    
    #### Returns TwoFingersTouchHandler
    
    #### Internal[](#internal)
    

## Methods[](#methods-1)

### disable[](#disable)

-   disable(): void[](#disable-1)
    
    Disables the "drag to pitch" interaction.
    
    #### Returns void
    
    #### Example[](#example)
    
    ```typescript
    map.touchPitch.disable();
    ```
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[disable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#disable)
    

### enable[](#enable)

-   enable(options?: boolean | [AroundCenterOptions](https://docs.maptiler.com/sdk-js/api-reference/types/AroundCenterOptions/) | null): void[](#enable-1)
    
    Enables the "drag to pitch" interaction.
    
    #### Parameters
    
    -   `Optional`options: boolean | [AroundCenterOptions](https://docs.maptiler.com/sdk-js/api-reference/types/AroundCenterOptions/) | null
    
    #### Returns void
    
    #### Example[](#example-1)
    
    ```typescript
    map.touchPitch.enable();
    ```
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[enable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#enable)
    

### isActive[](#isactive)

-   isActive(): boolean[](#isactive-1)
    
    Returns a Boolean indicating whether the "drag to pitch" interaction is active, i.e. currently being used.
    
    #### Returns boolean
    
    `true` if the "drag to pitch" interaction is active.
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[isActive](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#isactive)
    

### isEnabled[](#isenabled)

-   isEnabled(): boolean[](#isenabled-1)
    
    Returns a Boolean indicating whether the "drag to pitch" interaction is enabled.
    
    #### Returns boolean
    
    `true` if the "drag to pitch" interaction is enabled.
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[isEnabled](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#isenabled)
    

### reset[](#reset)

-   reset(): void[](#reset-1)
    
    `reset` can be called by the manager at any time and must reset everything to it's original state
    
    #### Returns void
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[reset](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#reset)
    

### touchcancel[](#touchcancel)

-   touchcancel(): void[](#touchcancel-1)
    
    #### Returns void
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchcancel](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchcancel)
    

### touchend[](#touchend)

-   touchend(e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/), points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\], mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\]): void[](#touchend-1)
    
    #### Parameters
    
    -   e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/)
    -   points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
    -   mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\]
    
    #### Returns void
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchend](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchend)
    

### touchmove[](#touchmove)

-   touchmove(  
        e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/),  
        points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\],  
        mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\],  
    ): void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)[](#touchmove-1)
    
    #### Parameters
    
    -   e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/)
    -   points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
    -   mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\]
    
    #### Returns void | [HandlerResult](https://docs.maptiler.com/sdk-js/api-reference/types/HandlerResult/)
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchmove](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchmove)
    

### touchstart[](#touchstart)

-   touchstart(e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/), points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\], mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\]): void[](#touchstart-1)
    
    #### Parameters
    
    -   e: [TouchEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TouchEvent/)
    -   points: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)\[\]
    -   mapTouches: [Touch](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Touch/)\[\]
    
    #### Returns void
    
    Implementation of [Handler](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/).[touchstart](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Handler/#touchstart)
