@maptiler/sdk 3.1.0 → 3.3.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/Map.d.ts CHANGED
@@ -4,6 +4,8 @@ import { SdkConfig } from './config';
4
4
  import { LanguageInfo } from './language';
5
5
  import { MinimapOptionsInput } from './controls/Minimap';
6
6
  import { Telemetry } from './Telemetry';
7
+ import { CubemapDefinition, CubemapLayer, CubemapLayerConstructorOptions } from './custom-layers/CubemapLayer';
8
+ import { GradientDefinition, RadialGradientLayer, RadialGradientLayerOptions } from './custom-layers/RadialGradientLayer';
7
9
  export type LoadWithTerrainEvent = {
8
10
  type: "loadWithTerrain";
9
11
  target: Map;
@@ -125,13 +127,30 @@ export type MapOptions = Omit<MapOptionsML, "style" | "maplibreLogo"> & {
125
127
  * If not provided, the style takes precedence. If provided, overwrite the style.
126
128
  */
127
129
  projection?: ProjectionTypes;
130
+ /**
131
+ * Turn on/off spacebox.
132
+ *
133
+ * Default: { color: "#1D29F1" }
134
+ */
135
+ space?: CubemapLayerConstructorOptions | boolean;
136
+ halo?: RadialGradientLayerOptions | boolean;
128
137
  };
129
138
  /**
130
139
  * The Map class can be instanciated to display a map in a `<div>`
131
140
  */
132
141
  export declare class Map extends maplibregl.Map {
133
- private options;
134
142
  readonly telemetry: Telemetry;
143
+ private space?;
144
+ private halo?;
145
+ getSpace(): CubemapLayer | undefined;
146
+ setSpace(space: CubemapDefinition): void;
147
+ private setSpaceFromCurrentStyle;
148
+ private setHaloFromCurrentStyle;
149
+ private initSpace;
150
+ private initHalo;
151
+ getHalo(): RadialGradientLayer | undefined;
152
+ setHalo(halo: GradientDefinition): void;
153
+ private options;
135
154
  private isTerrainEnabled;
136
155
  private terrainExaggeration;
137
156
  private primaryLanguage;
@@ -0,0 +1,29 @@
1
+ import { CustomLayerInterface, CustomRenderMethodInput } from 'maplibre-gl';
2
+ import { Map as MapSDK } from '../../Map';
3
+ import { WebGLContext } from '../../utils/webgl-utils';
4
+ import { CubemapDefinition, CubemapLayerConstructorOptions } from './types';
5
+ declare class CubemapLayer implements CustomLayerInterface {
6
+ id: string;
7
+ type: CustomLayerInterface["type"];
8
+ renderingMode: CustomLayerInterface["renderingMode"];
9
+ private map;
10
+ private faces?;
11
+ private useCubemapTexture;
12
+ private currentFadeOpacity;
13
+ private cubeMapNeedsUpdate;
14
+ private bgColor;
15
+ private gl;
16
+ private cubemap?;
17
+ private texture?;
18
+ constructor(cubemapConfig: CubemapLayerConstructorOptions | true);
19
+ updateCubemap(): void;
20
+ onAdd(map: MapSDK, gl: WebGLRenderingContext | WebGL2RenderingContext): void;
21
+ onRemove(_map: MapSDK, gl: WebGLRenderingContext | WebGL2RenderingContext): void;
22
+ prerender(gl: WebGLContext, _options: CustomRenderMethodInput): void;
23
+ private animateIn;
24
+ render(gl: WebGLRenderingContext | WebGL2RenderingContext, _options: CustomRenderMethodInput): void;
25
+ setCubemap(cubemap: CubemapDefinition): void;
26
+ show(): void;
27
+ hide(): void;
28
+ }
29
+ export { CubemapLayer };
@@ -0,0 +1,3 @@
1
+ declare const VERTICES: number[];
2
+ declare const INDICES: number[];
3
+ export { VERTICES, INDICES };
@@ -0,0 +1,2 @@
1
+ export * from './CubemapLayer';
2
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ import { CubemapFaces } from './types';
2
+ export declare function loadCubemapTexture({ gl, faces, onLoadedCallback }: {
3
+ gl: WebGLRenderingContext | WebGL2RenderingContext;
4
+ faces?: CubemapFaces;
5
+ onLoadedCallback?: () => void;
6
+ }): WebGLTexture | undefined;
@@ -0,0 +1,37 @@
1
+ export declare enum CubemapImagesPresets {
2
+ UNIVERSE_DARK = "universe-dark"
3
+ }
4
+ export type CubemapLayerConstructorOptions = CubemapDefinition & {};
5
+ export type CubemapDefinition = {
6
+ path: {
7
+ baseUrl: string;
8
+ format?: "png" | "jpg" | "webp";
9
+ };
10
+ faces?: never;
11
+ preset?: never;
12
+ color?: string;
13
+ } | {
14
+ faces: CubemapFaces;
15
+ path?: never;
16
+ preset?: never;
17
+ color?: string;
18
+ } | {
19
+ preset: string;
20
+ path?: never;
21
+ faces?: never;
22
+ color?: string;
23
+ } | {
24
+ color: string;
25
+ path?: never;
26
+ faces?: never;
27
+ preset?: never;
28
+ };
29
+ export declare enum CubemapFaceNames {
30
+ POSITIVE_X = "pX",
31
+ NEGATIVE_X = "nX",
32
+ POSITIVE_Y = "pY",
33
+ NEGATIVE_Y = "nY",
34
+ POSITIVE_Z = "pZ",
35
+ NEGATIVE_Z = "nZ"
36
+ }
37
+ export type CubemapFaces = Record<CubemapFaceNames, string>;
@@ -0,0 +1,23 @@
1
+ import { CustomLayerInterface, CustomRenderMethodInput } from 'maplibre-gl';
2
+ import { Map as MapSDK } from '../../Map';
3
+ import { GradientDefinition, RadialGradientLayerOptions } from './types';
4
+ export declare class RadialGradientLayer implements CustomLayerInterface {
5
+ id: string;
6
+ type: CustomLayerInterface["type"];
7
+ renderingMode: CustomLayerInterface["renderingMode"];
8
+ private gradient;
9
+ private scale;
10
+ private map;
11
+ private plane?;
12
+ constructor(gradient: RadialGradientLayerOptions | boolean);
13
+ onAdd(map: MapSDK, gl: WebGLRenderingContext | WebGL2RenderingContext): void;
14
+ onRemove(_map: MapSDK, gl: WebGLRenderingContext | WebGL2RenderingContext): void;
15
+ prerender(_gl: WebGLRenderingContext | WebGL2RenderingContext, _options: CustomRenderMethodInput): void;
16
+ render(gl: WebGLRenderingContext | WebGL2RenderingContext, options: CustomRenderMethodInput): void;
17
+ /**
18
+ * Value settings methods
19
+ */
20
+ setGradient(gradient: GradientDefinition): void;
21
+ show(): void;
22
+ hide(): void;
23
+ }
@@ -0,0 +1,2 @@
1
+ export * from './RadialGradientLayer';
2
+ export * from './types';
@@ -0,0 +1,11 @@
1
+ import { Object3D } from '../../utils/webgl-utils';
2
+ export type Color = string;
3
+ export type GradientStop = number;
4
+ export type RadialGradientLayerOptions = GradientDefinition;
5
+ export type GradientDefinition = {
6
+ stops: Array<[GradientStop, Color]>;
7
+ scale: number;
8
+ };
9
+ export type GradientAttributeKey = "vertexPosition";
10
+ export type GradientUniformKey = "stopsNumber" | "stops" | "colors";
11
+ export type GradientPlaneObject3D = Pick<Object3D<GradientAttributeKey, GradientUniformKey>, "shaderProgram" | "programInfo" | "positionBuffer">;
@@ -0,0 +1,17 @@
1
+ import { Map as MapSDK } from '../Map';
2
+ import { StyleSpecification } from 'maplibre-gl';
3
+ import { CubemapLayerConstructorOptions, RadialGradientLayerOptions } from 'custom-layers';
4
+ export type StyleSpecificationWithMetaData = StyleSpecification & {
5
+ metadata?: {
6
+ "maptiler:copyright": string;
7
+ maptiler?: {
8
+ halo: RadialGradientLayerOptions;
9
+ space: CubemapLayerConstructorOptions;
10
+ };
11
+ };
12
+ };
13
+ export interface IExtractCustomLayerStyleOptions {
14
+ map: MapSDK;
15
+ property: "halo" | "space";
16
+ }
17
+ export default function extractCustomLayerStyle<T extends CubemapLayerConstructorOptions | RadialGradientLayerOptions | null>(options: IExtractCustomLayerStyleOptions): T | null;
@@ -0,0 +1,5 @@
1
+ import { RadialGradientLayer } from './RadialGradientLayer';
2
+ import { CubemapLayer } from './CubemapLayer';
3
+ export { RadialGradientLayer, CubemapLayer };
4
+ export * from './RadialGradientLayer/types';
5
+ export * from './CubemapLayer/types';
@@ -1,3 +1,13 @@
1
- export * from './screenshot';
2
- export * from './vectorlayerhelpers';
3
- export * from './stylehelper';
1
+ import { takeScreenshot } from './screenshot';
2
+ import { addPolyline, addPolygon, addPoint, addHeatmap } from './vectorlayerhelpers';
3
+ export type { ZoomStringValues, ZoomNumberValues, PropertyValues, CommonShapeLayerOptions, PolylineLayerOptions, PolygonLayerOptions, PointLayerOptions, HeatmapLayerOptions, } from './vectorlayerhelpers';
4
+ /**
5
+ * Helpers are a set of functions to facilitate the creation of sources and layers
6
+ */
7
+ export declare const helpers: {
8
+ addPolyline: typeof addPolyline;
9
+ addPolygon: typeof addPolygon;
10
+ addPoint: typeof addPoint;
11
+ addHeatmap: typeof addHeatmap;
12
+ takeScreenshot: typeof takeScreenshot;
13
+ };
@@ -0,0 +1,6 @@
1
+ import { LngLat } from 'maplibre-gl';
2
+ declare function getAntipode(lngLat: LngLat): {
3
+ lat: number;
4
+ lng: number;
5
+ };
6
+ export { getAntipode };
@@ -0,0 +1,4 @@
1
+ declare function minMax(value: number, min: number, max: number): number;
2
+ declare function normalize(value: number, min: number, max: number): number;
3
+ declare function diagonalOfSquare(side: number): number;
4
+ export { minMax, normalize, diagonalOfSquare };
@@ -0,0 +1,49 @@
1
+ export type WebGLContext = WebGLRenderingContext | WebGL2RenderingContext;
2
+ /**
3
+ * Load a shader from a source string
4
+ */
5
+ export declare function loadShader({ gl, type, source }: {
6
+ gl: WebGLContext;
7
+ type: GLenum;
8
+ source: string;
9
+ }): WebGLShader;
10
+ /**
11
+ * Create a set of shaders (vertex and fragment) and link them into a program
12
+ *
13
+ * @param gl WebGL context
14
+ * @param vertexShaderSource Vertex shader source code
15
+ * @param fragmentShaderSource Fragment shader source code
16
+ *
17
+ * @returns WebGL program
18
+ */
19
+ export declare function createShadersSetProgram({ gl, vertexShaderSource, fragmentShaderSource }: {
20
+ gl: WebGLContext;
21
+ vertexShaderSource: string;
22
+ fragmentShaderSource: string;
23
+ }): WebGLProgram;
24
+ /**
25
+ * null-free version of getUniformLocation
26
+ */
27
+ export declare function getUniformLocation(gl: WebGLRenderingContext | WebGL2RenderingContext, program: WebGLProgram, name: string): WebGLUniformLocation;
28
+ export type Object3D<Attribute extends string, Uniform extends string> = {
29
+ shaderProgram: WebGLProgram;
30
+ programInfo: {
31
+ attributesLocations: Record<Attribute, number>;
32
+ uniformsLocations: Record<Uniform, WebGLUniformLocation>;
33
+ };
34
+ positionBuffer: WebGLBuffer;
35
+ indexBuffer?: WebGLBuffer;
36
+ indexBufferLength?: number;
37
+ };
38
+ export declare function createObject3D<Attribute extends string, Uniform extends string>({ gl, vertexShaderSource, fragmentShaderSource, attributesKeys, uniformsKeys, vertices, indices, }: {
39
+ gl: WebGLContext;
40
+ vertexShaderSource: string;
41
+ fragmentShaderSource: string;
42
+ attributesKeys: readonly Attribute[];
43
+ uniformsKeys: readonly Uniform[];
44
+ vertices: Array<number>;
45
+ indices?: Array<number>;
46
+ }): Object3D<Attribute, Uniform>;
47
+ export type Vec4 = [number, number, number, number];
48
+ export declare function parseColorStringToVec4(color?: string): Vec4;
49
+ export declare function degreesToRadians(degrees: number): number;
package/eslint.config.mjs CHANGED
@@ -35,7 +35,7 @@ export default tseslint.config(
35
35
  "@typescript-eslint/no-unnecessary-condition": "warn",
36
36
  "@typescript-eslint/no-unnecessary-type-arguments": "off",
37
37
  "@typescript-eslint/no-unnecessary-type-assertion": "off",
38
- "@typescript-eslint/no-unnecessary-type-parameters": "warn",
38
+ "@typescript-eslint/no-unnecessary-type-parameters": "off", // as we are a lib, types serve as documentation
39
39
  "@typescript-eslint/no-unused-vars": "warn",
40
40
  "@typescript-eslint/no-unsafe-argument": "warn",
41
41
  "@typescript-eslint/no-unsafe-assignment": "warn",
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@maptiler/sdk",
3
- "version": "3.1.0",
3
+ "version": "3.3.0-rc2",
4
4
  "description": "The Javascript & TypeScript map SDK tailored for MapTiler Cloud",
5
5
  "author": "MapTiler",
6
6
  "module": "dist/maptiler-sdk.mjs",
7
7
  "types": "dist/maptiler-sdk.d.ts",
8
8
  "style": "dist/maptiler-sdk.css",
9
9
  "type": "module",
10
+ "main": "dist/maptiler-sdk.mjs",
10
11
  "exports": {
11
12
  ".": {
12
13
  "import": "./dist/maptiler-sdk.mjs",
@@ -54,9 +55,14 @@
54
55
  "lint-staged": {
55
56
  "*.ts": "npm run lint:fix"
56
57
  },
58
+ "ts-typecheck": {
59
+ "*.ts": "npm tsc --noEmit"
60
+ },
57
61
  "devDependencies": {
58
62
  "@canvas/image-data": "^1.0.0",
59
63
  "@eslint/js": "^9.21.0",
64
+ "@types/color-convert": "^2.0.4",
65
+ "@types/color-name": "^2.0.0",
60
66
  "@types/uuid": "^10.0.0",
61
67
  "@types/xmldom": "^0.1.31",
62
68
  "@vitest/web-worker": "^3.0.9",
@@ -80,6 +86,7 @@
80
86
  "@maplibre/maplibre-gl-style-spec": "^23.0.0",
81
87
  "@maptiler/client": "^2.3.0",
82
88
  "events": "^3.3.0",
89
+ "gl-matrix": "^3.4.3",
83
90
  "js-base64": "^3.7.7",
84
91
  "maplibre-gl": "^5.0.1",
85
92
  "uuid": "^11.0.5"