@mapcreator/sdk 1.0.0 → 1.1.0
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/MCMap.d.ts +24 -11
- package/dist/Video.d.ts +42 -0
- package/dist/adornments/categoricalLegend.d.ts +1 -1
- package/dist/adornments/connectedLegend.d.ts +1 -1
- package/dist/adornments/copyright.d.ts +3 -0
- package/dist/adornments/customAdornment.d.ts +1 -1
- package/dist/adornments/heading.d.ts +1 -1
- package/dist/adornments/insetMap.d.ts +1 -1
- package/dist/adornments/manualLegend.d.ts +1 -1
- package/dist/adornments/northArrow.d.ts +1 -1
- package/dist/adornments/scalebar.d.ts +1 -1
- package/dist/constants/index.d.ts +4 -2
- package/dist/index.d.ts +2 -1
- package/dist/initMap.d.ts +9 -0
- package/dist/mapcreator-sdk.css +1 -1
- package/dist/mapcreator-sdk.js +2810 -1956
- package/dist/mapcreator-sdk.umd.cjs +245 -220
- package/dist/models/circle.d.ts +3 -1
- package/dist/models/line.d.ts +3 -1
- package/dist/models/marker.d.ts +3 -1
- package/dist/renderAdornments.d.ts +3 -3
- package/dist/report.html +1 -1
- package/dist/types/geometry.d.ts +4 -0
- package/dist/types/index.d.ts +6 -4
- package/dist/types/video.d.ts +13 -0
- package/dist/utils/helpers.d.ts +3 -1
- package/dist/utils/lineSlicer.d.ts +9 -0
- package/dist/utils/overlays.d.ts +3 -3
- package/dist/utils/svgHelpers.d.ts +1 -0
- package/dist/utils/video/animations.d.ts +4 -0
- package/dist/utils/video/cameraCurve.d.ts +39 -0
- package/dist/utils/video/easings.d.ts +31 -0
- package/dist/utils/video/index.d.ts +11 -0
- package/dist/utils/video/monotonicCurve.d.ts +23 -0
- package/package.json +12 -7
package/dist/types/geometry.d.ts
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -11,11 +11,8 @@ export type InitialPositionInfo = {
|
|
|
11
11
|
zoom: number;
|
|
12
12
|
pitch: number;
|
|
13
13
|
rotation: number;
|
|
14
|
-
detailLevel: number;
|
|
15
|
-
width: number;
|
|
16
|
-
height: number;
|
|
17
14
|
};
|
|
18
|
-
export type Mode = 'sdk' | 'app' | 'preview';
|
|
15
|
+
export type Mode = 'sdk' | 'app' | 'preview' | 'video';
|
|
19
16
|
export type Env = 'production' | 'beta' | 'bleeding';
|
|
20
17
|
export type JobObjectAugmented = JobObject & {
|
|
21
18
|
meta: {
|
|
@@ -23,3 +20,8 @@ export type JobObjectAugmented = JobObject & {
|
|
|
23
20
|
layers?: string[] | undefined;
|
|
24
21
|
};
|
|
25
22
|
};
|
|
23
|
+
export type LayerInfo = {
|
|
24
|
+
[layerId: string]: {
|
|
25
|
+
visibility: boolean;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface Keyframe {
|
|
2
|
+
time: number;
|
|
3
|
+
center: [number, number];
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
zoom: number;
|
|
7
|
+
fov: number;
|
|
8
|
+
bearing: number;
|
|
9
|
+
pitch: number;
|
|
10
|
+
elevation: number;
|
|
11
|
+
transition: 'ease' | 'linear' | 'instant';
|
|
12
|
+
hideLabels: boolean;
|
|
13
|
+
}
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JobObjectDataBindings, JobObjectStoredValue } from '../types/jobObject';
|
|
1
|
+
import { JobObject, JobObjectDataBindings, JobObjectStoredValue } from '../types/jobObject';
|
|
2
2
|
import { LngLat } from '../types/geometry';
|
|
3
3
|
export declare const numberRe: RegExp;
|
|
4
4
|
export declare function degToRad(angle: number): number;
|
|
@@ -25,4 +25,6 @@ export declare function clamp(value: number, min: number, max: number): number;
|
|
|
25
25
|
* Fast hash function for non-cryptographic use
|
|
26
26
|
*/
|
|
27
27
|
export declare function fnv32b(str: string): string;
|
|
28
|
+
export declare function calculateScaleCorrection(jobObject: JobObject, container: HTMLElement): number;
|
|
29
|
+
export declare function almostEqual(a: number, b: number, delta?: number): boolean;
|
|
28
30
|
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MercatorCoordinate } from '@mapcreator/maplibre-gl';
|
|
2
|
+
import { Position } from '../types/geometry';
|
|
3
|
+
export declare class LineSlicer {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(line: Position[]);
|
|
6
|
+
sample(position: number): MercatorCoordinate;
|
|
7
|
+
slice(start: number, end: number): Position[];
|
|
8
|
+
get length(): number;
|
|
9
|
+
}
|
package/dist/utils/overlays.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Map, LayerSpecification } from '@mapcreator/maplibre-gl';
|
|
2
|
-
export declare function loadOverlays(
|
|
1
|
+
import { StyleSpecification, Map, LayerSpecification } from '@mapcreator/maplibre-gl';
|
|
2
|
+
export declare function loadOverlays(overlayIds: number[], overlayNames: string[], map: Map, vapiUrl: string, accessToken: string, styleOverrides?: {
|
|
3
3
|
[layerId: string]: Partial<LayerSpecification>;
|
|
4
|
-
}): Promise<
|
|
4
|
+
}): Promise<StyleSpecification[]>;
|
|
@@ -3,6 +3,7 @@ import { Map as MapLibre } from '@mapcreator/maplibre-gl';
|
|
|
3
3
|
import { ColorGenerator } from './choropleth';
|
|
4
4
|
export declare function escapeXML(str: string): string;
|
|
5
5
|
export declare function loadFonts(fontNames: string[], vapiUrl: string, accessToken: string): Promise<void>;
|
|
6
|
+
export declare function createImage(svgString: string, width: number, height: number): Promise<HTMLImageElement>;
|
|
6
7
|
export interface SvgColor {
|
|
7
8
|
name: string;
|
|
8
9
|
color: Color | string | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { JobObjectAnimation, JobObjectAnimationType } from '../../types/jobObject';
|
|
2
|
+
export declare function changesOpacity(animation: JobObjectAnimation): boolean;
|
|
3
|
+
export declare function changesScale(animation: JobObjectAnimation): boolean;
|
|
4
|
+
export declare function getAnimatedValue(animation: JobObjectAnimation, type: JobObjectAnimationType, time: number): number;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { LngLat } from '../../types/geometry';
|
|
2
|
+
import { Keyframe } from '../../types/video';
|
|
3
|
+
interface CameraParams {
|
|
4
|
+
center: LngLat;
|
|
5
|
+
zoom: number;
|
|
6
|
+
bearing: number;
|
|
7
|
+
pitch: number;
|
|
8
|
+
fov: number;
|
|
9
|
+
elevation: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The CameraCurve class represents a camera path of a single video. It takes a video script (array
|
|
13
|
+
* of keyframes) in its constructor. It then provides a single public method sample(time) that
|
|
14
|
+
* returns the camera position for the given time.
|
|
15
|
+
*/
|
|
16
|
+
export declare class CameraCurve {
|
|
17
|
+
private script;
|
|
18
|
+
private xCurve;
|
|
19
|
+
private yCurve;
|
|
20
|
+
private fovCurve;
|
|
21
|
+
private zoomCurve;
|
|
22
|
+
private pitchCurve;
|
|
23
|
+
private bearingCurve;
|
|
24
|
+
private altitudeCurve;
|
|
25
|
+
private elevationCurve;
|
|
26
|
+
constructor(script: Keyframe[]);
|
|
27
|
+
/**
|
|
28
|
+
* Returns the camera position for the given time.
|
|
29
|
+
*/
|
|
30
|
+
sample(time: number): CameraParams;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an instance of MonotonicCurve for the given script and field.
|
|
33
|
+
*/
|
|
34
|
+
private createMonotonicCurve;
|
|
35
|
+
sampleAutoHideOpacity(time: number): number;
|
|
36
|
+
private getKeyframeIndexByTime;
|
|
37
|
+
private getKeyframeValue;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare function linear(t: number, b: number, c: number, d: number): number;
|
|
2
|
+
export declare function easeInQuad(t: number, b: number, c: number, d: number): number;
|
|
3
|
+
export declare function easeOutQuad(t: number, b: number, c: number, d: number): number;
|
|
4
|
+
export declare function easeInOutQuad(t: number, b: number, c: number, d: number): number;
|
|
5
|
+
export declare function easeInCubic(t: number, b: number, c: number, d: number): number;
|
|
6
|
+
export declare function easeOutCubic(t: number, b: number, c: number, d: number): number;
|
|
7
|
+
export declare function easeInOutCubic(t: number, b: number, c: number, d: number): number;
|
|
8
|
+
export declare function easeInQuart(t: number, b: number, c: number, d: number): number;
|
|
9
|
+
export declare function easeOutQuart(t: number, b: number, c: number, d: number): number;
|
|
10
|
+
export declare function easeInOutQuart(t: number, b: number, c: number, d: number): number;
|
|
11
|
+
export declare function easeInQuint(t: number, b: number, c: number, d: number): number;
|
|
12
|
+
export declare function easeOutQuint(t: number, b: number, c: number, d: number): number;
|
|
13
|
+
export declare function easeInOutQuint(t: number, b: number, c: number, d: number): number;
|
|
14
|
+
export declare function easeInSine(t: number, b: number, c: number, d: number): number;
|
|
15
|
+
export declare function easeOutSine(t: number, b: number, c: number, d: number): number;
|
|
16
|
+
export declare function easeInOutSine(t: number, b: number, c: number, d: number): number;
|
|
17
|
+
export declare function easeInExpo(t: number, b: number, c: number, d: number): number;
|
|
18
|
+
export declare function easeOutExpo(t: number, b: number, c: number, d: number): number;
|
|
19
|
+
export declare function easeInOutExpo(t: number, b: number, c: number, d: number): number;
|
|
20
|
+
export declare function easeInCirc(t: number, b: number, c: number, d: number): number;
|
|
21
|
+
export declare function easeOutCirc(t: number, b: number, c: number, d: number): number;
|
|
22
|
+
export declare function easeInOutCirc(t: number, b: number, c: number, d: number): number;
|
|
23
|
+
export declare function easeInElastic(t: number, b: number, c: number, d: number): number;
|
|
24
|
+
export declare function easeOutElastic(t: number, b: number, c: number, d: number): number;
|
|
25
|
+
export declare function easeInOutElastic(t: number, b: number, c: number, d: number): number;
|
|
26
|
+
export declare function easeInBack(t: number, b: number, c: number, d: number, s?: number): number;
|
|
27
|
+
export declare function easeOutBack(t: number, b: number, c: number, d: number, s?: number): number;
|
|
28
|
+
export declare function easeInOutBack(t: number, b: number, c: number, d: number, s?: number): number;
|
|
29
|
+
export declare function easeInBounce(t: number, b: number, c: number, d: number): number;
|
|
30
|
+
export declare function easeOutBounce(t: number, b: number, c: number, d: number): number;
|
|
31
|
+
export declare function easeInOutBounce(t: number, b: number, c: number, d: number): number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Keyframe } from '../../types/video';
|
|
2
|
+
/**
|
|
3
|
+
* This function fixes the given script so that globe and bearing rotations between keyframes always
|
|
4
|
+
* happen along the shortest path. This fixes the camera unexpectedly turning the opposite direction
|
|
5
|
+
* when lng or bearing crosses the wrap boundary of –180°/180°. The function does not mutate the
|
|
6
|
+
* given script, instead generating a brand new one with corrected lng and bearing values.
|
|
7
|
+
*/
|
|
8
|
+
export declare function unwrapGlobeAndCameraRotation(script: Keyframe[]): Keyframe[];
|
|
9
|
+
export declare function zoomToAltitude(zoom: number): number;
|
|
10
|
+
export declare function getTotalDuration(script: Keyframe[]): number;
|
|
11
|
+
export declare function getPreciseFramerate(frameRate: number): number;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Point2D } from '../../types/geometry';
|
|
2
|
+
/**
|
|
3
|
+
* This class is a wrapper around D3's curveMonotoneX. It takes an array of XY-points in the
|
|
4
|
+
* constructor and provides two main public methods: sample(X) calculates Y for the given X and
|
|
5
|
+
* solve(Y) calculates X for the given Y.
|
|
6
|
+
*
|
|
7
|
+
* We build curves like this for every camera parameter (x, y, zoom, bearing, pitch, etc.) where X
|
|
8
|
+
* represents elapsed time in milliseconds and Y represents the value of the parameter.
|
|
9
|
+
*
|
|
10
|
+
* @see https://d3js.org/d3-shape/curve#curveMonotoneX
|
|
11
|
+
*/
|
|
12
|
+
export declare class MonotonicCurve {
|
|
13
|
+
private segments;
|
|
14
|
+
constructor(points: Point2D[]);
|
|
15
|
+
/**
|
|
16
|
+
* Returns the value of Y for the given X.
|
|
17
|
+
*/
|
|
18
|
+
sample(x: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the value of X for the given Y.
|
|
21
|
+
*/
|
|
22
|
+
solve(y: number, initialGuess: number): number;
|
|
23
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapcreator/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": "^24.0.0",
|
|
6
6
|
"npm": "^11.0.0"
|
|
@@ -38,13 +38,7 @@
|
|
|
38
38
|
"dist"
|
|
39
39
|
],
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@types/d3-array": "^3.2.2",
|
|
42
|
-
"@types/d3-format": "^3.0.4",
|
|
43
|
-
"@types/d3-geo": "^3.1.0",
|
|
44
|
-
"@types/d3-interpolate": "^3.0.4",
|
|
45
|
-
"@types/d3-scale": "^4.0.9",
|
|
46
41
|
"@types/node": "^25.5.0",
|
|
47
|
-
"@types/topojson-client": "^3.1.5",
|
|
48
42
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
49
43
|
"@vue/eslint-config-typescript": "^13.0.0",
|
|
50
44
|
"eslint": "^8.57.1",
|
|
@@ -62,11 +56,22 @@
|
|
|
62
56
|
"@turf/bbox-clip": "^7.3.4",
|
|
63
57
|
"@turf/intersect": "^7.3.4",
|
|
64
58
|
"@turf/polygon-smooth": "^7.3.4",
|
|
59
|
+
"@types/d3-array": "^3.2.2",
|
|
60
|
+
"@types/d3-format": "^3.0.4",
|
|
61
|
+
"@types/d3-geo": "^3.1.0",
|
|
62
|
+
"@types/d3-interpolate": "^3.0.4",
|
|
63
|
+
"@types/d3-scale": "^4.0.9",
|
|
64
|
+
"@types/d3-shape": "^3.1.8",
|
|
65
|
+
"@types/topojson-client": "^3.1.5",
|
|
66
|
+
"bezier-easing": "^3.0.0",
|
|
65
67
|
"d3-array": "^3.2.4",
|
|
66
68
|
"d3-format": "^3.1.2",
|
|
67
69
|
"d3-geo": "^3.1.1",
|
|
68
70
|
"d3-interpolate": "^3.0.1",
|
|
69
71
|
"d3-scale": "^4.0.2",
|
|
72
|
+
"d3-shape": "^3.2.0",
|
|
73
|
+
"just-debounce-it": "^3.2.0",
|
|
74
|
+
"newton-raphson-method": "^1.0.2",
|
|
70
75
|
"path-data-polyfill": "^1.0.10",
|
|
71
76
|
"topojson-client": "^3.1.0"
|
|
72
77
|
}
|