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

Methods mixed in to other classes for event capabilities.

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

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

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties-1)

[atmosphereMesh](#atmospheremesh) [mesh](#mesh) [properties](#properties)

### Methods[](#methods)

[calculateFogBlendOpacity](#calculatefogblendopacity) [fire](#fire) [getSky](#getsky) [hasTransition](#hastransition) [listens](#listens) [off](#off) [on](#on) [once](#once) [recalculate](#recalculate) [setEventedParent](#seteventedparent) [setSky](#setsky) [updateTransitions](#updatetransitions)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Sky(sky?: [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/)): Sky[](#constructorsky)
    
    #### Parameters
    
    -   `Optional`sky: [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/)
    
    #### Returns Sky
    
    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-2)

### atmosphereMesh[](#atmospheremesh)

atmosphereMesh: [Mesh](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Mesh/) | undefined

### mesh[](#mesh)

mesh: [Mesh](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Mesh/) | undefined

This is used to cache the gl mesh for the sky, it should be initialized only once.

### properties[](#properties)

properties: [PossiblyEvaluated](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.PossiblyEvaluated/)<[SkyProps](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SkyProps/), [SkyPropsPossiblyEvaluated](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SkyPropsPossiblyEvaluated/)\>

## Methods[](#methods-1)

### calculateFogBlendOpacity[](#calculatefogblendopacity)

-   calculateFogBlendOpacity(pitch: number): number[](#calculatefogblendopacity-1)
    
    Currently fog is a very simple implementation, and should only used to create an atmosphere near the horizon. But because the fog is drawn from the far-clipping-plane to map-center, and because the fog does nothing know about the horizon, this method does a fadeout in respect of pitch. So, when the horizon gets out of view, which is at about pitch 70, this methods calculates the corresponding opacity values. Below pitch 60 the fog is completely invisible.
    
    #### Parameters
    
    -   pitch: number
    
    #### Returns number
    

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

### getSky[](#getsky)

-   getSky(): [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/)[](#getsky-1)
    
    #### Returns [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/)
    

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

### 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\> | Sky[](#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\> | Sky
    
    `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)
    

### recalculate[](#recalculate)

-   recalculate(parameters: [EvaluationParameters](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.EvaluationParameters/)): void[](#recalculate-1)
    
    #### Parameters
    
    -   parameters: [EvaluationParameters](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.EvaluationParameters/)
    
    #### 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)
    

### setSky[](#setsky)

-   setSky(sky?: [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/), options?: [StyleSetterOptions](https://docs.maptiler.com/sdk-js/api-reference/types/StyleSetterOptions/)): void[](#setsky-1)
    
    #### Parameters
    
    -   `Optional`sky: [SkySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/SkySpecification/)
    -   `Optional`options: [StyleSetterOptions](https://docs.maptiler.com/sdk-js/api-reference/types/StyleSetterOptions/)
    
    #### Returns void
    

### updateTransitions[](#updatetransitions)

-   updateTransitions(parameters: [TransitionParameters](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TransitionParameters/)): void[](#updatetransitions-1)
    
    #### Parameters
    
    -   parameters: [TransitionParameters](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TransitionParameters/)
    
    #### Returns void
