@splnlss/3d-story-viewer 0.5.7 → 0.7.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/README.md +54 -0
- package/build/assets/viewer/geojson.worker-QNi-d8kU.js +1 -0
- package/build/computeElevation.cjs +1 -1
- package/build/computeElevation.js +2 -2
- package/build/{index-C7Ow38PB.js → index-CsZhc21b.js} +303 -181
- package/build/{index-CMipzbxp.cjs → index-wUFLgXbb.cjs} +1 -1
- package/build/types/src/geospatial.d.ts +40 -0
- package/build/types/src/main.d.ts +30 -0
- package/build/types/src/viewer/ContentLayer/GeojsonLayer.d.ts +1 -1
- package/build/types/src/viewer/ContentLayer/MeshLayer.d.ts +1 -1
- package/build/types/src/viewer/ContentLayer/TilesLayer.d.ts +1 -1
- package/build/types/src/viewer/index.d.ts +57 -6
- package/build/types/src/viewer/keyboardMovement.d.ts +4 -0
- package/build/types/src/viewer/utils.d.ts +1 -6
- package/build/types/src/workers/geojson.worker.d.ts +13 -0
- package/build/types/utils/elevation/index.d.ts +11 -2
- package/build/types/utils/elevation/tiles.d.ts +1 -6
- package/build/viewer.cjs +1 -1
- package/build/viewer.js +24977 -24959
- package/package.json +2 -1
- package/build/assets/viewer/geojson.worker-bpUFQjm2.js +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function requireFiniteNumber(value: any, field: any): any;
|
|
2
|
+
export function validateLongitudeLatitude(longitude: any, latitude: any, field?: string): void;
|
|
3
|
+
export function validateGeodeticPosition(longitude: any, latitude: any, altitude: any, field?: string): {
|
|
4
|
+
longitude: any;
|
|
5
|
+
latitude: any;
|
|
6
|
+
altitude: any;
|
|
7
|
+
};
|
|
8
|
+
export function validateRotation(pitch: any, yaw: any, roll: any, field?: string): {
|
|
9
|
+
pitch: any;
|
|
10
|
+
yaw: any;
|
|
11
|
+
roll: any;
|
|
12
|
+
};
|
|
13
|
+
export function validateTuple(value: any, field: any): any[];
|
|
14
|
+
export function validateScale(value: any, field?: string): any;
|
|
15
|
+
export function normalizeLayerOffset(offset: any, field?: string): {
|
|
16
|
+
lon: any;
|
|
17
|
+
lat: any;
|
|
18
|
+
alt: any;
|
|
19
|
+
};
|
|
20
|
+
export function validateEcefPosition(x: any, y: any, z: any): any[];
|
|
21
|
+
export function geodeticToEcefPosition(longitude: any, latitude: any, altitude: any): number[];
|
|
22
|
+
export function ecefToGeodeticPosition(x: any, y: any, z: any): {
|
|
23
|
+
lon: number;
|
|
24
|
+
lat: number;
|
|
25
|
+
alt: number;
|
|
26
|
+
};
|
|
27
|
+
export function getEnuBasis(longitude: any, latitude: any): {
|
|
28
|
+
east: number[];
|
|
29
|
+
north: number[];
|
|
30
|
+
up: number[];
|
|
31
|
+
};
|
|
32
|
+
export function enuToEcefDelta(translation: any, longitude: any, latitude: any): number[];
|
|
33
|
+
export function geodeticOffsetToEcefDelta(position: any, offset: any): [number, number, number];
|
|
34
|
+
export const WGS84_SEMI_MAJOR_AXIS_METERS: 6378137;
|
|
35
|
+
export const WGS84_INVERSE_FLATTENING: 298.257223563;
|
|
36
|
+
export const WGS84_FLATTENING: number;
|
|
37
|
+
export const WGS84_SEMI_MINOR_AXIS_METERS: number;
|
|
38
|
+
export const WGS84_FIRST_ECCENTRICITY_SQUARED: number;
|
|
39
|
+
export const MIN_ELLIPSOIDAL_HEIGHT_METERS: -12000;
|
|
40
|
+
export const MAX_ELLIPSOIDAL_HEIGHT_METERS: 100000;
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
export type Vector3Tuple = [number, number, number];
|
|
2
|
+
export type LabelOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* WGS84 longitude in decimal degrees.
|
|
5
|
+
*/
|
|
6
|
+
lon: number;
|
|
7
|
+
/**
|
|
8
|
+
* WGS84 latitude in decimal degrees.
|
|
9
|
+
*/
|
|
10
|
+
lat: number;
|
|
11
|
+
/**
|
|
12
|
+
* WGS84 ellipsoidal height in meters.
|
|
13
|
+
*/
|
|
14
|
+
alt: number;
|
|
15
|
+
text?: string;
|
|
16
|
+
element?: HTMLElement;
|
|
17
|
+
visible?: boolean;
|
|
18
|
+
hovered?: boolean;
|
|
19
|
+
selected?: boolean;
|
|
20
|
+
};
|
|
2
21
|
export type ViewerOptions = {
|
|
3
22
|
cesiumToken?: string;
|
|
4
23
|
googleMapsToken?: string;
|
|
@@ -38,6 +57,9 @@ export type TilesLayerDefinition = {
|
|
|
38
57
|
data: {
|
|
39
58
|
url: string;
|
|
40
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Offset longitude/latitude are WGS84 decimal degrees; altitude is ellipsoidal meters.
|
|
62
|
+
*/
|
|
41
63
|
options?: {
|
|
42
64
|
renderOrder?: number;
|
|
43
65
|
implicit?: boolean;
|
|
@@ -58,6 +80,9 @@ export type MeshLayerDefinition = {
|
|
|
58
80
|
data: {
|
|
59
81
|
url: string;
|
|
60
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Nonzero offsets require an explicit WGS84 offsetOrigin. Longitude/latitude are decimal degrees; altitude is ellipsoidal meters. The offset translates existing geometry in ECEF; it does not georeference a local model.
|
|
85
|
+
*/
|
|
61
86
|
options?: {
|
|
62
87
|
renderOrder?: number;
|
|
63
88
|
offset?: {
|
|
@@ -65,6 +90,11 @@ export type MeshLayerDefinition = {
|
|
|
65
90
|
lat?: number;
|
|
66
91
|
alt?: number;
|
|
67
92
|
};
|
|
93
|
+
offsetOrigin?: {
|
|
94
|
+
longitude: number;
|
|
95
|
+
latitude: number;
|
|
96
|
+
altitude: number;
|
|
97
|
+
};
|
|
68
98
|
};
|
|
69
99
|
};
|
|
70
100
|
export type GeojsonLayerDefinition = {
|
|
@@ -50,7 +50,11 @@ declare class Viewer extends EventDispatcher {
|
|
|
50
50
|
pointerCoords: ViewerCoords;
|
|
51
51
|
pointerXYZ: any;
|
|
52
52
|
keysDown: {};
|
|
53
|
-
|
|
53
|
+
_keysEnabled: boolean;
|
|
54
|
+
/** Camera-relative translation speed in WGS84 ECEF metres/second. */
|
|
55
|
+
movementSpeed: number;
|
|
56
|
+
/** Dimensionless multiplier while BOOST is held. */
|
|
57
|
+
boostMultiplier: number;
|
|
54
58
|
movementKeys: {
|
|
55
59
|
BOOST: string[];
|
|
56
60
|
FRONT: string[];
|
|
@@ -75,13 +79,24 @@ declare class Viewer extends EventDispatcher {
|
|
|
75
79
|
sky: Sky;
|
|
76
80
|
pointerRaycaster: any;
|
|
77
81
|
_onPointerMove: (event: any) => void;
|
|
82
|
+
set keysEnabled(enabled: boolean);
|
|
83
|
+
get keysEnabled(): boolean;
|
|
78
84
|
updateMovementState(): void;
|
|
79
|
-
|
|
85
|
+
/**
|
|
86
|
+
* @param {number} lon
|
|
87
|
+
* @param {number} lat
|
|
88
|
+
* @returns {{ lon: number, lat: number, alt: number }}
|
|
89
|
+
*/
|
|
90
|
+
getElevation(lon: number, lat: number): {
|
|
80
91
|
lon: number;
|
|
81
92
|
lat: number;
|
|
82
93
|
alt: number;
|
|
83
94
|
};
|
|
84
|
-
|
|
95
|
+
/**
|
|
96
|
+
* @param {[number, number, number?][]} coords
|
|
97
|
+
* @returns {[number, number, number?][]}
|
|
98
|
+
*/
|
|
99
|
+
updateCoordsElevation(coords: [number, number, number?][]): [number, number, number?][];
|
|
85
100
|
setBackgroundColor(color: any): void;
|
|
86
101
|
appendTo(container: any): void;
|
|
87
102
|
container: any;
|
|
@@ -100,12 +115,48 @@ declare class Viewer extends EventDispatcher {
|
|
|
100
115
|
setTimeFrame(start: any, end: any): void;
|
|
101
116
|
timeFrameStart: Date;
|
|
102
117
|
timeFrameEnd: Date;
|
|
103
|
-
|
|
118
|
+
/**
|
|
119
|
+
* @param {string} id
|
|
120
|
+
* @param {{ lon: number, lat: number, alt: number, text?: string, element?: HTMLElement, visible?: boolean, hovered?: boolean, selected?: boolean }} params
|
|
121
|
+
* @returns {HTMLElement}
|
|
122
|
+
*/
|
|
123
|
+
updateLabel(id: string, params: {
|
|
124
|
+
lon: number;
|
|
125
|
+
lat: number;
|
|
126
|
+
alt: number;
|
|
127
|
+
text?: string;
|
|
128
|
+
element?: HTMLElement;
|
|
129
|
+
visible?: boolean;
|
|
130
|
+
hovered?: boolean;
|
|
131
|
+
selected?: boolean;
|
|
132
|
+
}): HTMLElement;
|
|
104
133
|
animate(time: any): void;
|
|
105
134
|
render(): void;
|
|
106
135
|
getCameraPivot(): any;
|
|
107
|
-
|
|
108
|
-
|
|
136
|
+
/**
|
|
137
|
+
* @param {number} lon
|
|
138
|
+
* @param {number} lat
|
|
139
|
+
* @param {number} alt
|
|
140
|
+
* @param {number} [pitch]
|
|
141
|
+
* @param {number} [yaw]
|
|
142
|
+
* @param {number} [roll]
|
|
143
|
+
* @param {number} [duration]
|
|
144
|
+
*/
|
|
145
|
+
alignCamera(lon: number, lat: number, alt: number, pitch?: number, yaw?: number, roll?: number, duration?: number): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* @param {number} lon
|
|
148
|
+
* @param {number} lat
|
|
149
|
+
* @param {number} alt
|
|
150
|
+
* @param {number} [distance]
|
|
151
|
+
* @param {number} [pitch]
|
|
152
|
+
* @param {number} [duration]
|
|
153
|
+
*/
|
|
154
|
+
focusCamera(lon: number, lat: number, alt: number, distance?: number, pitch?: number, duration?: number): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* @param {number} [pitch]
|
|
157
|
+
* @param {number} [yaw]
|
|
158
|
+
* @param {number} [duration]
|
|
159
|
+
*/
|
|
109
160
|
angleCamera(pitch?: number, yaw?: number, duration?: number): Promise<void>;
|
|
110
161
|
setViewMode(mode?: string): Promise<void>;
|
|
111
162
|
exportScene(): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Apply camera-relative translation to a WGS84 ECEF position (metres).
|
|
2
|
+
* Speed is metres/second; deltaTime is seconds; boost is dimensionless.
|
|
3
|
+
*/
|
|
4
|
+
export function applyKeyboardMovement(position: any, forward: any, right: any, up: any, state: any, deltaTime: any, movementSpeed: any, boostMultiplier: any): void;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export function ecefToGeodeticPosition(x: any, y: any, z: any): {
|
|
2
|
-
lon: number;
|
|
3
|
-
lat: number;
|
|
4
|
-
alt: number;
|
|
5
|
-
};
|
|
6
|
-
export function geodeticToEcefPosition(lon: any, lat: any, alt: any): number[];
|
|
7
1
|
export function ecefToGeodeticRotation(x: any, y: any, z: any, quaternion: any): {
|
|
8
2
|
lon: number;
|
|
9
3
|
lat: number;
|
|
@@ -15,3 +9,4 @@ export function ecefToGeodeticRotation(x: any, y: any, z: any, quaternion: any):
|
|
|
15
9
|
export function geodeticToEcefUpVector(lon: any, lat: any): any;
|
|
16
10
|
export function geodeticToEcefRotation(lon: any, lat: any, pitch: any, yaw: any, roll: any): any;
|
|
17
11
|
export function exportScene(root: any): void;
|
|
12
|
+
export { ecefToGeodeticPosition, geodeticToEcefPosition } from "../geospatial.js";
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
+
export function createArrowGeometry(data: any): {
|
|
2
|
+
origin: any;
|
|
3
|
+
meshVertexBuffer: Float32Array<any>;
|
|
4
|
+
};
|
|
5
|
+
export function createPerimeterGeometry(data: any, color: any): {
|
|
6
|
+
origin: any;
|
|
7
|
+
lineVertexBuffer: Float32Array<any>;
|
|
8
|
+
lineVertexRGBBuffer: Uint8Array<ArrayBuffer>;
|
|
9
|
+
meshVertexBuffer: Float32Array<any>;
|
|
10
|
+
meshVertexRGBBuffer: Uint8Array<ArrayBuffer>;
|
|
11
|
+
meshIndexBuffer: Uint16Array<any>;
|
|
12
|
+
};
|
|
13
|
+
export const MAX_FEATURE_EXTENT_METERS: 50000;
|
|
1
14
|
declare const self: Window & typeof globalThis;
|
|
2
15
|
export default self;
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
export default computeElevation;
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* @param {number} lon WGS84 longitude in decimal degrees.
|
|
4
|
+
* @param {number} lat WGS84 latitude in decimal degrees.
|
|
5
|
+
* @param {{ apiKey?: string, maxDepth?: number }} [options]
|
|
6
|
+
* @returns {Promise<{ lon: number, lat: number, alt: number } | null | undefined>}
|
|
7
|
+
*/
|
|
8
|
+
declare function computeElevation(lon: number, lat: number, options?: {
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
maxDepth?: number;
|
|
11
|
+
}): Promise<{
|
|
3
12
|
lon: number;
|
|
4
13
|
lat: number;
|
|
5
14
|
alt: number;
|
|
6
|
-
}>;
|
|
15
|
+
} | null | undefined>;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export function ecefToGeodeticPosition(x: any, y: any, z: any): {
|
|
2
|
-
lon: number;
|
|
3
|
-
lat: number;
|
|
4
|
-
alt: number;
|
|
5
|
-
};
|
|
6
|
-
export function geodeticToEcefPosition(lon: any, lat: any, alt: any): number[];
|
|
7
1
|
export function buildTileUrl(path: any, apiKey: any): URL;
|
|
8
2
|
export function fetchTileset(url: any, apiKey: any): Promise<any>;
|
|
9
3
|
export function obbToBox(obb: any): {
|
|
@@ -41,3 +35,4 @@ export namespace logColors {
|
|
|
41
35
|
let bgWhite: string;
|
|
42
36
|
}
|
|
43
37
|
export let sessionKeyCache: any;
|
|
38
|
+
export { ecefToGeodeticPosition, geodeticToEcefPosition } from "../../src/geospatial.js";
|