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.

Type declaration

clippingPlane

clippingPlane: [number, number, number, number]

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

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

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

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]

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;