ProjectionData<MainMatrix extends mat4 = mat4, FallbackMatrix extends mat4 = MainMatrix>
ProjectionData<
MainMatrixextendsmat4=mat4,FallbackMatrixextendsmat4=MainMatrix> =object
Этот тип содержит все данные, необходимые для проецирования тайла на экран в системе шейдеров MapLibre. Содержит данные, используемые как для проекции Меркатора, так и для проекции глобуса.
Параметры типа
| Параметр типа | Тип по умолчанию |
|---|---|
MainMatrix extends mat4
| mat4 |
FallbackMatrix extends mat4
| MainMatrix |
Свойства
clipAntimeridian
clipAntimeridian:
boolean
Определяет, следует ли отбрасывать фрагменты линий за пределами экстента тайла по оси X: true для тайла с масштабом (zoom) 0 в проекции глобуса, иначе false. Тайл z0 охватывает весь мир, поэтому его буфер оборачивается вокруг планеты на сам тайл, дважды отрисовывая геометрию вблизи антимеридиана. Отсечение с помощью трафарета (stencil clipping) не может устранить это перекрытие одних и тех же пикселей, поэтому линии отсекаются во фрагментном шейдере (полигоны заливки отсекаются во время разбиения). Имя uniform-переменной: u_projection_clip_antimeridian.
clippingPlane
clippingPlane: [
number,number,number,number]
Уравнение плоскости, пересекающей горизонт планеты. Предполагается, что планета является единичной сферой. Используется проекцией глобуса для отсечения. Имя uniform-переменной: u_projection_clipping_plane.
fallbackMatrix
fallbackMatrix:
FallbackMatrix
Резервная матрица (fallback matrix), проецирующая текущий тайл в соответствии с проекцией Меркатора. Используется проекцией глобуса для анимированного перехода к проекции Меркатора. Имя uniform-переменной: u_projection_fallback_matrix.
mainMatrix
mainMatrix:
MainMatrix
Основная матрица проекции. Для проекции Меркатора она обычно проецирует координаты внутри тайла 0..EXTENT на экран, для проекции глобуса — проецирует единичную сферу планеты на экран. Имя uniform-переменной: u_projection_matrix.
projectionTransition
projectionTransition:
number
Значение в диапазоне 0..1, указывающее интерполяцию между проекциями Меркатора (0) и глобуса (1). Используется проекцией глобуса для скрытия перехода между проекциями на больших масштабах. Имя uniform-переменной: u_projection_transition.
tileMercatorCoords
tileMercatorCoords: [
number,number,number,number]
Экстент текущего тайла в меркаторском квадрате. Используется проекцией глобуса. Первые два компонента представляют собой смещение по X и Y, последние два — масштаб по X и Y. Имя uniform-переменной: u_projection_tile_mercator_coords.
Преобразование координат внутри тайла в диапазоне 0..EXTENT выполняется следующим образом:
Пример
vec2 mercator_coords = u_projection_tile_mercator_coords.xy + in_tile.xy * u_projection_tile_mercator_coords.zw;
© MapLibre contributors
Licensed under the 3-Clause BSD License.
https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/ProjectionData/