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 mapmetrics'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;