Skip to content

ProjectionData<MainMatrix, FallbackMatrix>

ProjectionData<MainMatrix, FallbackMatrix> = object

Defined in: geo/projection/projection_data.ts:24

This type contains all data necessary to project a tile to screen in MapLibre's shader system. Contains data used for both mercator and globe projection.

Type Parameters

Type Parameter Default type
MainMatrix extends mat4 mat4
FallbackMatrix extends mat4 MainMatrix

Properties

clippingPlane

clippingPlane: [number, number, number, number]

Defined in: geo/projection/projection_data.ts:50

The plane equation for a plane that intersects the planet's horizon. Assumes the planet to be a unit sphere. Used by globe projection for clipping. Uniform name: u_projection_clipping_plane.


fallbackMatrix

fallbackMatrix: FallbackMatrix

Defined in: geo/projection/projection_data.ts:62

Fallback matrix that projects the current tile according to mercator projection. Used by globe projection to fall back to mercator projection in an animated way. Uniform name: u_projection_fallback_matrix.


mainMatrix

mainMatrix: MainMatrix

Defined in: geo/projection/projection_data.ts:30

The main projection matrix. For mercator projection, it usually projects in-tile coordinates 0..EXTENT to screen, for globe projection, it projects a unit sphere planet to screen. Uniform name: u_projection_matrix.


projectionTransition

projectionTransition: number

Defined in: geo/projection/projection_data.ts:56

A value in range 0..1 indicating interpolation between mercator (0) and globe (1) projections. Used by globe projection to hide projection transition at high zooms. Uniform name: u_projection_transition.


tileMercatorCoords

tileMercatorCoords: [number, number, number, number]

Defined in: geo/projection/projection_data.ts:43

The extent of current tile in the mercator square. Used by globe projection. First two components are X and Y offset, last two are X and Y scale. Uniform name: u_projection_tile_mercator_coords.

Conversion from in-tile coordinates in range 0..EXTENT is done as follows:

Example

vec2 mercator_coords = u_projection_tile_mercator_coords.xy + in_tile.xy * u_projection_tile_mercator_coords.zw;