Skip to content

ProjectionData

ProjectionData = object

Defined in: src/geo/projection/projection_data.ts:8

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.

Properties

clippingPlane

clippingPlane: [number, number, number, number]

Defined in: src/geo/projection/projection_data.ts:34

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: mat4

Defined in: src/geo/projection/projection_data.ts:46

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: mat4

Defined in: src/geo/projection/projection_data.ts:14

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: src/geo/projection/projection_data.ts:40

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: src/geo/projection/projection_data.ts:27

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;