---
title: "Map | Geosplats sdk"
description: "Documentation for MapTiler GeoSplats SDK"
---

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

# Class Map

The main Map class for creating and controlling a MapTiler WebGPU interactive map.

#### Example[](#example)

```typescript
import { Map } from '@maptiler/geosplats';

const map = new Map({
  container: 'map',
  apiKey: 'YOUR_MAPTILER_API_KEY_HERE',
  center: [16.37, 48.21],
  zoom: 12
});
```

#### Hierarchy ([View Summary](https://docs-qmgv.pages.dev/geosplats-sdk/api/hierarchy/#Map))

-   [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/)<[MapEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapEvent/)\>
    -   Map

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[loaded](#loaded)

### Methods[](#methods)

[addControl](#addcontrol) [addSplatModel](#addsplatmodel) [fitBounds](#fitbounds) [getAltitudeAt](#getaltitudeat) [getBasemap](#getbasemap) [getBearing](#getbearing) [getCenter](#getcenter) [getFov](#getfov) [getMaxPitch](#getmaxpitch) [getMinPitch](#getminpitch) [getPitch](#getpitch) [getZoom](#getzoom) [jumpTo](#jumpto) [off](#off) [on](#on) [once](#once) [remove](#remove) [removeSplatModel](#removesplatmodel) [setBasemap](#setbasemap) [setBearing](#setbearing) [setCenter](#setcenter) [setMaxPitch](#setmaxpitch) [setMinPitch](#setminpitch) [setModelResolution](#setmodelresolution) [setPitch](#setpitch) [setPitchLocked](#setpitchlocked) [setZoom](#setzoom) [zoomIn](#zoomin) [zoomOut](#zoomout)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Map(options: [MapOptions](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapOptions/)): Map[](#constructormap)
    
    Creates a new Map instance.
    
    #### Parameters
    
    -   options: [MapOptions](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapOptions/)
        
        The options for the map.
        
    
    #### Returns Map
    
    #### Example[](#example-1)
    
    ```typescript
    const map = new Map({
      apiKey: 'YOUR_MAPTILER_API_KEY_HERE',
      container: 'map',
      center: [14.454266, 50.089376],
      zoom: 12,
      debug: true
    });
    ```
    
    Overrides [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/).[constructor](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#constructor)
    

## Properties[](#properties-1)

### `Protected`loaded[](#loaded)

loaded: boolean = false

Inherited from [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/).[loaded](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#loaded)

## Methods[](#methods-1)

### addControl[](#addcontrol)

-   addControl(control: [Control](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/Control/), position?: [ControlPosition](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ControlPosition/)): this[](#addcontrol-1)
    
    Adds a control to the map.
    
    #### Parameters
    
    -   control: [Control](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/Control/)
        
        The control instance to add.
        
    -   `Optional`position: [ControlPosition](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ControlPosition/)
        
        The position of the control.
        
    
    #### Returns this
    

### addSplatModel[](#addsplatmodel)

-   addSplatModel(splatModel: [SplatModel](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/SplatModel/), cameraParams?: [CameraParams](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/CameraParams/) | null): void[](#addsplatmodel-1)
    
    Adds a SplatModel visualization to the map.
    
    #### Parameters
    
    -   splatModel: [SplatModel](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/SplatModel/)
        
        The SplatModel instance to add.
        
    -   cameraParams: [CameraParams](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/CameraParams/) | null = null
        
        optional pitch and bearing for camera.
        
    
    #### Returns void
    
    #### Example[](#example-2)
    
    ```typescript
    const splatModel = new SplatModel({ model: "model_url" });
    map.on('load', () => {
      map.addSplatModel(splatModel);
    });
    ```
    

### fitBounds[](#fitbounds)

-   fitBounds(lngLatBoundsLike: [LngLatBoundsLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatBoundsLike/)): void[](#fitbounds-1)
    
    Moves the camera such that the provided bounds are visible.
    
    #### Parameters
    
    -   lngLatBoundsLike: [LngLatBoundsLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatBoundsLike/)
        
        The bounds to fit.
        
    
    #### Returns void
    
    #### Example[](#example-3)
    
    ```typescript
    map.fitBounds([
      [14.408177, 50.080911],
      [14.440250, 50.085178]
    ]);
    ```
    

### getAltitudeAt[](#getaltitudeat)

-   getAltitudeAt(position: [LngLatLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatLike/), callback: (altitude: number) \=> void): void[](#getaltitudeat-1)
    
    Returns the current terrain exaggeration factor.
    
    #### Parameters
    
    -   position: [LngLatLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatLike/)
        
        LngLat position.
        
    -   callback: (altitude: number) \=> void
        
        Function called with the position's altitude or NaN if position is invalid or basemap is VOID.
        
    
    #### Returns void
    

### getBasemap[](#getbasemap)

-   getBasemap(): [ReferenceMapStyle](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ReferenceMapStyle/)[](#getbasemap-1)
    
    Returns the current basemap.
    
    #### Returns [ReferenceMapStyle](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ReferenceMapStyle/)
    
    The current basemap.
    

### getBearing[](#getbearing)

-   getBearing(): number[](#getbearing-1)
    
    Returns the current bearing (rotation) of the map in degrees.
    
    #### Returns number
    
    The bearing in degrees.
    

### getCenter[](#getcenter)

-   getCenter(callback: (center: [LngLat](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/LngLat/)) \=> void): void[](#getcenter-1)
    
    Returns the current center of the map.
    
    #### Parameters
    
    -   callback: (center: [LngLat](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/LngLat/)) \=> void
        
        Function called with the center position.
        
    
    #### Returns void
    

### getFov[](#getfov)

-   getFov(): number[](#getfov-1)
    
    Returns the current field of view (FOV) of the map.
    
    #### Returns number
    
    The FOV in degrees.
    

### getMaxPitch[](#getmaxpitch)

-   getMaxPitch(): number[](#getmaxpitch-1)
    
    Returns the maximum allowed pitch (tilt).
    
    #### Returns number
    
    The maximum pitch.
    

### getMinPitch[](#getminpitch)

-   getMinPitch(): number[](#getminpitch-1)
    
    Returns the minimum allowed pitch (tilt).
    
    #### Returns number
    
    The minimum pitch.
    

### getPitch[](#getpitch)

-   getPitch(): number[](#getpitch-1)
    
    Returns the current pitch (tilt) of the map in degrees.
    
    #### Returns number
    
    The pitch in degrees.
    

### getZoom[](#getzoom)

-   getZoom(): number[](#getzoom-1)
    
    Returns the current zoom level of the map.
    
    #### Returns number
    
    The zoom level.
    

### jumpTo[](#jumpto)

-   jumpTo(options: [CameraOptions](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/CameraOptions/)): void[](#jumpto-1)
    
    Instantly moves the camera to the specified position and zoom.
    
    #### Parameters
    
    -   options: [CameraOptions](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/CameraOptions/)
        
        The camera options to jump to.
        
    
    #### Returns void
    
    #### Example[](#example-4)
    
    ```typescript
    map.jumpTo({
      center: [13.497569, 47.344369],
      zoom: 12,
      pitch: 80,
      bearing: 60,
    });
    ```
    

### off[](#off)

-   off<  
        [EventType](#offeventtype) extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart",  
    \>(  
        eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype),  
        handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>,  
        ) \=> void,  
    ): void[](#off-1)
    
    Removes a listener for a specific event type.
    
    #### Type Parameters
    
    -   EventType extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart"
    
    #### Parameters
    
    -   eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype)
        
        The type of event to remove the listener from.
        
    -   handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#offeventtype) }\>,  
        ) \=> void
        
        The listener function to remove.
        
    
    #### Returns void
    
    Inherited from [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/).[off](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#off)
    

### on[](#on)

-   on<  
        [EventType](#oneventtype) extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart",  
    \>(  
        eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype),  
        handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>,  
        ) \=> void,  
    ): void[](#on-1)
    
    Adds a listener for a specific event type.
    
    #### Type Parameters
    
    -   EventType extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart"
    
    #### Parameters
    
    -   eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype)
        
        The type of event to listen for.
        
    -   handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#oneventtype) }\>,  
        ) \=> void
        
        The function to call when the event is fired.
        
    
    #### Returns void
    
    #### Example[](#example-5)
    
    ```typescript
    map.on('load', () => {
      console.log('Map loaded!');
    });
    ```
    
    Inherited from [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/).[on](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#on)
    

### once[](#once)

-   once<  
        [EventType](#onceeventtype) extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart",  
    \>(  
        eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype),  
        handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>,  
        ) \=> void,  
    ): void[](#once-1)
    
    Adds a listener for a specific event type that will be called only once.
    
    #### Type Parameters
    
    -   EventType extends  
            | "load"  
            | "error"  
            | "click"  
            | "splatmodel:load"  
            | "splatmodel:error"  
            | "splatmodel:remove"  
            | "splatmodel:update"  
            | "splatmodel:mouseover"  
            | "splatmodel:mouseout"  
            | "splatmodel:click"  
            | "splatmodel:dragstart"  
            | "splatmodel:dragend"  
            | "resolution"  
            | "move"  
            | "moveend"  
            | "movestart"
    
    #### Parameters
    
    -   eventType: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype)
        
        The type of event to listen for.
        
    -   handler: (  
            event:  
                | Extract<[MapClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapModelResolutionEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapModelResolutionEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapMoveStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/interfaces/MapMoveStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelLoadEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelLoadEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelErrorEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelErrorEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelRemoveEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelRemoveEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelUpdateEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelUpdateEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelMouseOverEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOverEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelMouseOutEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelMouseOutEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelClickEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelClickEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelDragStartEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragStartEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>  
                | Extract<[MapSplatModelDragEndEvent](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/MapSplatModelDragEndEvent/), { type: [EventType](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#onceeventtype) }\>,  
        ) \=> void
        
        The function to call when the event is fired.
        
    
    #### Returns void
    
    #### Example[](#example-6)
    
    ```typescript
    map.once('splatmodel:load', () => {
      console.log('First SplatModel loaded!');
    });
    ```
    
    Inherited from [Evented](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/).[once](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/Evented/#once)
    

### remove[](#remove)

-   remove(): void[](#remove-1)
    
    Removes the map and cleans up all related resources.
    
    #### Returns void
    

### removeSplatModel[](#removesplatmodel)

-   removeSplatModel(splatModel: [SplatModel](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/SplatModel/)): void[](#removesplatmodel-1)
    
    Removes a SplatModel visualization from the map.
    
    #### Parameters
    
    -   splatModel: [SplatModel](https://docs-qmgv.pages.dev/geosplats-sdk/api/classes/SplatModel/)
        
        The SplatModel instance to remove.
        
    
    #### Returns void
    

### setBasemap[](#setbasemap)

-   setBasemap(basemap: [ReferenceMapStyle](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ReferenceMapStyle/)): void[](#setbasemap-1)
    
    Changes the basemap.
    
    #### Parameters
    
    -   basemap: [ReferenceMapStyle](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ReferenceMapStyle/)
        
        The new basemap identifier (e.g., 'satellite-v4').
        
    
    #### Returns void
    

### setBearing[](#setbearing)

-   setBearing(bearing: number): void[](#setbearing-1)
    
    Sets the bearing (rotation) of the map.
    
    #### Parameters
    
    -   bearing: number
        
        The new bearing in degrees.
        
    
    #### Returns void
    

### setCenter[](#setcenter)

-   setCenter(center: [LngLatLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatLike/)): void[](#setcenter-1)
    
    Sets the center position of the map.
    
    #### Parameters
    
    -   center: [LngLatLike](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/LngLatLike/)
        
        The new center position.
        
    
    #### Returns void
    

### setMaxPitch[](#setmaxpitch)

-   setMaxPitch(pitch: number): void[](#setmaxpitch-1)
    
    Sets the maximum pitch (tilt) of the map.
    
    #### Parameters
    
    -   pitch: number
        
        The new maximum pitch, from 0 to 180.
        
    
    #### Returns void
    

### setMinPitch[](#setminpitch)

-   setMinPitch(pitch: number): void[](#setminpitch-1)
    
    Sets the minimum pitch (tilt) of the map.
    
    #### Parameters
    
    -   pitch: number
        
        The new minimum pitch, from 0 to 180.
        
    
    #### Returns void
    

### setModelResolution[](#setmodelresolution)

-   setModelResolution(resolution: [ModelResolutionType](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ModelResolutionType/)): void[](#setmodelresolution-1)
    
    Changes rendered model quality.
    
    #### Parameters
    
    -   resolution: [ModelResolutionType](https://docs-qmgv.pages.dev/geosplats-sdk/api/types/ModelResolutionType/)
        
        sets render quality for models. QUALITY option might have impact on performance.
        
    
    #### Returns void
    

### setPitch[](#setpitch)

-   setPitch(pitch: number): void[](#setpitch-1)
    
    Sets the pitch (tilt) of the map.
    
    #### Parameters
    
    -   pitch: number
        
        The new pitch in degrees.
        
    
    #### Returns void
    

### setPitchLocked[](#setpitchlocked)

-   setPitchLocked(locked: boolean): void[](#setpitchlocked-1)
    
    Locks or unlocks the current pitch of the map.
    
    #### Parameters
    
    -   locked: boolean
        
        Whether to lock the pitch.
        
    
    #### Returns void
    

### setZoom[](#setzoom)

-   setZoom(zoom: number): void[](#setzoom-1)
    
    Sets the zoom level of the map.
    
    #### Parameters
    
    -   zoom: number
        
        The new zoom level.
        
    
    #### Returns void
    

### zoomIn[](#zoomin)

-   zoomIn(): void[](#zoomin-1)
    
    Zooms in by one level.
    
    #### Returns void
    

### zoomOut[](#zoomout)

-   zoomOut(): void[](#zoomout-1)
    
    Zooms out by one level.
    
    #### Returns void
