Skip to content

ui/map/aircraft/AircraftRoute3DRenderer

Classes

AircraftRoute3DRenderer

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:26

3D aircraft route renderer using Three.js.

Renders the selected aircraft's route as elevated line segments and waypoint spheres in the 3D scene so the route visually aligns with the 3D aircraft's altitude.

Altitude rule per segment endpoint: - If wpalt[i] > 0: use that constraint altitude (meters) - Otherwise: use the aircraft's current altitude

NOTE: v1 uses scene-relative mercator positioning only. In globe projection the geometry is hidden rather than misprojected; real globe support is a known follow-up (would need per-vertex getMatrixForModel).

Constructors

Constructor
new AircraftRoute3DRenderer(displayOptions): AircraftRoute3DRenderer;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:31

Parameters
displayOptions

DisplayOptions

Returns

AircraftRoute3DRenderer

Methods

initialize()
initialize(map): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:36

Parameters
map

Map$1

Returns

void

updateRouteData()
updateRouteData(data): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:74

Parameters
data

RouteData | null

Returns

void

setSelectedAircraft()
setSelectedAircraft(aircraftId): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:78

Parameters
aircraftId

string | null

Returns

void

setAircraftState()
setAircraftState(
   lat, 
   lon, 
   alt
): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:82

Parameters
lat

number

lon

number

alt

number

Returns

void

updateDisplayOptions()
updateDisplayOptions(options): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:86

Parameters
options

DisplayOptions

Returns

void

onStyleChange()
onStyleChange(): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:91

Returns

void

destroy()
destroy(): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:112

Returns

void


AircraftRoute3DCustomLayer

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:141

Base class for Three.js custom layers in MapLibre GL

This class provides the foundation for rendering 3D content using Three.js within MapLibre GL maps. It handles the integration between Three.js and MapLibre's rendering pipeline.

Based on MapLibre example: https://maplibre.org/maplibre-gl-js/docs/examples/add-3d-model-threejs/

Extends

Constructors

Constructor
new AircraftRoute3DCustomLayer(displayOptions): AircraftRoute3DCustomLayer;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:163

Parameters
displayOptions

DisplayOptions

Returns

AircraftRoute3DCustomLayer

Overrides

CustomLayer3D.constructor

Properties

id
id: string;

Defined in: ui/map/rendering/CustomLayer3D.ts:26

A unique layer id.

Inherited from

CustomLayer3D.id

type
type: "custom";

Defined in: ui/map/rendering/CustomLayer3D.ts:27

The layer's type. Must be "custom".

Inherited from

CustomLayer3D.type

renderingMode
renderingMode: "3d";

Defined in: ui/map/rendering/CustomLayer3D.ts:28

Either "2d" or "3d". Defaults to "2d".

Inherited from

CustomLayer3D.renderingMode

camera
protected camera: Camera;

Defined in: ui/map/rendering/CustomLayer3D.ts:30

Inherited from

CustomLayer3D.camera

scene
protected scene: Scene;

Defined in: ui/map/rendering/CustomLayer3D.ts:31

Inherited from

CustomLayer3D.scene

renderer
protected renderer: WebGLRenderer;

Defined in: ui/map/rendering/CustomLayer3D.ts:32

Inherited from

CustomLayer3D.renderer

map
protected map: Map$1;

Defined in: ui/map/rendering/CustomLayer3D.ts:33

Inherited from

CustomLayer3D.map

directionalLight1
protected directionalLight1: DirectionalLight;

Defined in: ui/map/rendering/CustomLayer3D.ts:36

Inherited from

CustomLayer3D.directionalLight1

directionalLight2
protected directionalLight2: DirectionalLight;

Defined in: ui/map/rendering/CustomLayer3D.ts:37

Inherited from

CustomLayer3D.directionalLight2

Methods

onSceneReady()
protected onSceneReady(): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:168

Called when scene is ready for subclass to add objects Override this to add your 3D objects to the scene

Returns

void

Overrides

CustomLayer3D.onSceneReady

setRouteData()
setRouteData(data): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:176

Parameters
data

RouteData | null

Returns

void

setSelectedAircraft()
setSelectedAircraft(aircraftId): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:181

Parameters
aircraftId

string | null

Returns

void

setAircraftState()
setAircraftState(
   lat, 
   lon, 
   alt
): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:186

Parameters
lat

number

lon

number

alt

number

Returns

void

updateDisplayOptions()
updateDisplayOptions(options): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:191

Parameters
options

DisplayOptions

Returns

void

exportState()
exportState(): RouteLayerState;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:196

Returns

RouteLayerState

importState()
importState(state): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:204

Parameters
state

RouteLayerState

Returns

void

cleanup()
cleanup(): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:210

Returns

void

updateScene()
protected updateScene(args?): void;

Defined in: ui/map/aircraft/AircraftRoute3DRenderer.ts:442

Update scene objects before rendering Override this to update your 3D objects each frame

Parameters
args?

Render3DArgs

Rendering arguments from MapLibre

Returns

void

Overrides

CustomLayer3D.updateScene

onAdd()
onAdd(map, gl): void;

Defined in: ui/map/rendering/CustomLayer3D.ts:48

Initialize Three.js scene (called by MapLibre when layer is added)

Parameters
map

Map$1

MapLibre map instance

gl

WebGLRenderingContext | WebGL2RenderingContext

WebGL rendering context

Returns

void

Inherited from

CustomLayer3D.onAdd

setupLighting()
protected setupLighting(): void;

Defined in: ui/map/rendering/CustomLayer3D.ts:104

Setup scene lighting Override this method to customize lighting for your scene

Returns

void

Inherited from

CustomLayer3D.setupLighting

render()
Call Signature
render(gl, matrix): void;

Defined in: ui/map/rendering/CustomLayer3D.ts:132

Render the scene (called by MapLibre every frame)

Parameters
gl

WebGLRenderingContext | WebGL2RenderingContext

WebGL rendering context

matrix

number[]

Transformation matrix (deprecated, use args)

Returns

void

Inherited from

CustomLayer3D.render

Call Signature
render(gl, args): void;

Defined in: ui/map/rendering/CustomLayer3D.ts:133

Render the scene (called by MapLibre every frame)

Parameters
gl

WebGLRenderingContext | WebGL2RenderingContext

WebGL rendering context

args

CustomRenderMethodInput

Returns

void

Inherited from

CustomLayer3D.render

lngLatToMercator()
protected lngLatToMercator(
   lng, 
   lat, 
   altitude?
): object;

Defined in: ui/map/rendering/CustomLayer3D.ts:181

Convert longitude/latitude to Mercator coordinates

Parameters
lng

number

Longitude in degrees

lat

number

Latitude in degrees

altitude?

number = 0

Altitude in meters

Returns

object

Mercator coordinates and scale factor

x
x: number;
y
y: number;
z
z: number;
scale
scale: number;
Inherited from

CustomLayer3D.lngLatToMercator

createTransformMatrix()
protected createTransformMatrix(
   lng, 
   lat, 
   altitude, 
   heading?, 
   pitch?, 
   roll?, 
   scale?
): Matrix4;

Defined in: ui/map/rendering/CustomLayer3D.ts:211

Create a transformation matrix for positioning an object on the map

Parameters
lng

number

Longitude in degrees

lat

number

Latitude in degrees

altitude

number

Altitude in meters

heading?

number = 0

Heading in radians (0 = North, clockwise)

pitch?

number = 0

Pitch in radians (rotation around X axis)

roll?

number = 0

Roll in radians (rotation around Y axis)

scale?

number = 1

Additional scale factor

Returns

Matrix4

Three.js transformation matrix

Inherited from

CustomLayer3D.createTransformMatrix

isGlobeProjection()
protected isGlobeProjection(): boolean;

Defined in: ui/map/rendering/CustomLayer3D.ts:255

Check if the current map projection is globe

Returns

boolean

True if globe projection is active

Inherited from

CustomLayer3D.isGlobeProjection

onRemove()?
optional onRemove(_map, _gl): void;

Defined in: ui/map/rendering/CustomLayer3D.ts:269

Cleanup when layer is removed (called by MapLibre) Override to cleanup any resources

Parameters
_map

Map$1

_gl

WebGLRenderingContext | WebGL2RenderingContext

Returns

void

Inherited from

CustomLayer3D.onRemove