@cyclomedia/streetsmart-api 23.14.4 → 23.14.6
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 +102 -47
- package/dist/esm/index.js +139 -7
- package/index.d.ts +529 -36
- package/package.json +10 -13
- package/src/types/MeshViewer.d.ts +81 -0
- package/src/types/ObliqueViewer.d.ts +180 -0
- package/src/types/PanoramaViewer.d.ts +340 -0
- package/src/types/PointCloudViewer.d.ts +159 -0
- package/src/types/shared.d.ts +355 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/// <reference path="shared.d.ts" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare module '@cyclomedia/streetsmart-api' {
|
|
4
|
+
type PointCloudViewerEventCallback<T extends PointCloudViewerEvents | SharedViewerEvents> = (
|
|
5
|
+
event: ViewerEvent<PointCloudViewerEventDetails[T]>,
|
|
6
|
+
) => void;
|
|
7
|
+
|
|
8
|
+
class PointCloudViewer extends React.PureComponent {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the ID of this viewer.
|
|
11
|
+
* @returns {String} The ID of this viewer.
|
|
12
|
+
*/
|
|
13
|
+
getId(): string;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Returns the type of this viewer.
|
|
17
|
+
* @returns {ViewerType} The type of this viewer.
|
|
18
|
+
*/
|
|
19
|
+
getType(): ViewerType;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Returns the visibility state of the navbar.
|
|
23
|
+
* @returns {Boolean} The visibility state of the navbar.
|
|
24
|
+
*/
|
|
25
|
+
getNavbarVisible(): boolean;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Returns the expanded state of the navbar.
|
|
29
|
+
* @returns {Boolean} The expanded state of the navbar.
|
|
30
|
+
*/
|
|
31
|
+
getNavbarExpanded(): boolean;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Toggles the visibility of the navbar in the PointCloudViewer.
|
|
35
|
+
* @param {Boolean} [visible] - If available, sets visibility to this value.
|
|
36
|
+
*/
|
|
37
|
+
toggleNavbarVisible(visible?: boolean): void;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Modify the state of navbar expanded in the PointCloudViewer.
|
|
41
|
+
* @param {Boolean} [value] - If available, sets expanded to this value.
|
|
42
|
+
*/
|
|
43
|
+
toggleNavbarExpanded(value?: boolean): void;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get current style of points.
|
|
47
|
+
* @returns {ColorizationMode} The style of points.
|
|
48
|
+
*/
|
|
49
|
+
getPointStyle(): ColorizationMode;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Set the style of points. See ColorizationMode Enum.
|
|
53
|
+
* @param {ColorizationMode} style - The new style of points.
|
|
54
|
+
*/
|
|
55
|
+
setPointStyle(style: ColorizationMode): void;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get current size of points, see PointSize enum.
|
|
59
|
+
* @returns {PointSize} The size of points.
|
|
60
|
+
*/
|
|
61
|
+
getPointSize(): PointSize;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Set the size points are displayed on, see PointSize enum.
|
|
65
|
+
* @param {PointSize} size - The new size of points in the viewer.
|
|
66
|
+
*/
|
|
67
|
+
setPointSize(size: PointSize): void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Get the visibility of a button.
|
|
71
|
+
* @param buttonId - The ID of the button.
|
|
72
|
+
* @returns {Boolean} The visibility state of the button.
|
|
73
|
+
*/
|
|
74
|
+
getButtonEnabled(buttonId: string): boolean;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Toggle the visibility of a button.
|
|
78
|
+
* @param {PointCloudViewerUi} buttonId - The ID of the button.
|
|
79
|
+
* @param {Boolean} [enabled] - If available, set enabled to this value.
|
|
80
|
+
*/
|
|
81
|
+
toggleButtonEnabled(buttonId: PointCloudViewerUi | string, enabled?: boolean): void;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Get current visibility of edges around points.
|
|
85
|
+
* @returns {Boolean} The visibility state of edges around points.
|
|
86
|
+
*/
|
|
87
|
+
getEdgesVisibility(): boolean;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Toggles or sets the visibility of edges around points.
|
|
91
|
+
* @param {Boolean} [visibility] - If available, set visibility to this value.
|
|
92
|
+
*/
|
|
93
|
+
toggleEdges(visibility?: boolean): void;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get the background of the pointcloud. See Background enum.
|
|
97
|
+
* @returns {Background} The background of the pointcloud.
|
|
98
|
+
*/
|
|
99
|
+
getBackgroundPreset(): BackgroundPreset;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Set the background. See Background enum.
|
|
103
|
+
* @param {Background} backgroundPreset - The new background.
|
|
104
|
+
*/
|
|
105
|
+
setBackgroundPreset(backgroundPreset: BackgroundPreset | string): void;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Toggles between aerial point cloud and street point cloud.
|
|
109
|
+
* @param {PointCloudType} [switchToPointCloudType] - If available, sets the type of point cloud.
|
|
110
|
+
*/
|
|
111
|
+
togglePointCloudType(switchToPointCloudType?: PointCloudType): void;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get current point amount, see Quality enum.
|
|
115
|
+
* @returns {Quality} The amount - can be 'low', 'medium', 'high', or 'ultra'.
|
|
116
|
+
*/
|
|
117
|
+
getPointAmount(): Quality;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Set the maximum amount of point displayed in the viewer, see Quality enum.
|
|
121
|
+
* @param {Quality} amount - Can be set to 'low', 'medium', 'high', or 'ultra'.
|
|
122
|
+
*/
|
|
123
|
+
setPointAmount(amount: Quality): void;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Get the minimal height colorization, these values are only used with the point style: Height.
|
|
127
|
+
* @returns {Number} The minimal height colorization can be between -10 and 50.
|
|
128
|
+
*/
|
|
129
|
+
getMinHeightColorization(): number;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get the maximal height colorization, these values are only used with the point style: Height.
|
|
133
|
+
* @returns {Number} The maximal height colorization can be between -10 and 50.
|
|
134
|
+
*/
|
|
135
|
+
getMaxHeightColorization(): number;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Set the minimum height colorization, this function can only be used with the point style: Height.
|
|
139
|
+
* @param {Number} [heightColorization] - The minimum height colorization.
|
|
140
|
+
*/
|
|
141
|
+
setMinHeightColorization(heightColorization?: number): void;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Set the maximum height colorization, this function can only be used with the point style: Height.
|
|
145
|
+
* @param {Number} [heightColorization] - The maximum height colorization.
|
|
146
|
+
*/
|
|
147
|
+
setMaxHeightColorization(heightColorization?: number): void;
|
|
148
|
+
|
|
149
|
+
on<T extends PointCloudViewerEvents | SharedViewerEvents>(
|
|
150
|
+
type: T,
|
|
151
|
+
callback: PointCloudViewerEventCallback<T>,
|
|
152
|
+
): this;
|
|
153
|
+
|
|
154
|
+
off<T extends PointCloudViewerEvents | SharedViewerEvents>(
|
|
155
|
+
type: T,
|
|
156
|
+
callback: PointCloudViewerEventCallback<T>,
|
|
157
|
+
): this;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
declare module '@cyclomedia/streetsmart-api' {
|
|
2
|
+
import { Style } from 'ol/style';
|
|
3
|
+
import { vec3 } from 'gl-matrix';
|
|
4
|
+
|
|
5
|
+
export enum ViewerType {
|
|
6
|
+
MAP = '@@ViewerType/MAP',
|
|
7
|
+
MESHVIEWER = '@@ViewerType/MESHVIEWER',
|
|
8
|
+
OBLIQUE = '@@ViewerType/OBLIQUE',
|
|
9
|
+
PANORAMA = '@@ViewerType/PANORAMA',
|
|
10
|
+
PANORAMA_ZOOM = '@@ViewerType/PANORAMA_ZOOM',
|
|
11
|
+
POINTCLOUD = '@@ViewerType/POINTCLOUD',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ViewerEvent<TDetail = null> = {
|
|
15
|
+
type: string;
|
|
16
|
+
detail: TDetail;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export enum GlobalViewerEvents {
|
|
20
|
+
VIEWER_ADDED = 'VIEWER_ADDED',
|
|
21
|
+
VIEWER_REMOVED = 'VIEWER_REMOVED',
|
|
22
|
+
VIEWER_UPDATED = 'VIEWER_UPDATED',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export enum SharedViewerEvents {
|
|
26
|
+
LAYER_VISIBILITY_CHANGE = 'LAYER_VISIBILITY_CHANGE',
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export enum PanoramaViewerEvents {
|
|
30
|
+
PANORAMA_CREATED = 'PANORAMA_CREATED',
|
|
31
|
+
RECORDING_CLICK = 'RECORDING_CLICK',
|
|
32
|
+
FEATURE_CLICK = 'FEATURE_CLICK',
|
|
33
|
+
FEATURE_SELECTION_CHANGE = 'FEATURE_SELECTION_CHANGE',
|
|
34
|
+
IMAGE_CHANGE = 'IMAGE_CHANGE',
|
|
35
|
+
VIEW_CHANGE = 'VIEW_CHANGE',
|
|
36
|
+
VIEW_LOAD_END = 'VIEW_LOAD_END',
|
|
37
|
+
TILE_LOAD_ERROR = 'TILE_LOAD_ERROR',
|
|
38
|
+
TIME_TRAVEL_CHANGE = 'TIME_TRAVEL_CHANGE',
|
|
39
|
+
SURFACE_CURSOR_CHANGE = 'SURFACE_CURSOR_CHANGE',
|
|
40
|
+
ELEVATION_CHANGE = 'ELEVATION_CHANGE',
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export enum MeasurementEvents {
|
|
44
|
+
MEASUREMENT_CHANGED = 'MEASUREMENT_CHANGED',
|
|
45
|
+
MEASUREMENT_STOPPED = 'MEASUREMENT_STOPPED',
|
|
46
|
+
MEASUREMENT_STARTED = 'MEASUREMENT_STARTED',
|
|
47
|
+
MEASUREMENT_SAVED = 'MEASUREMENT_SAVED',
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type DefaultMeasurementEvent = {
|
|
51
|
+
// old GEOJson format
|
|
52
|
+
activeMeasurement: Measurement;
|
|
53
|
+
panoramaViewer: PanoramaViewer;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Types for measurement event details
|
|
57
|
+
export type MeasurementEventDetails = {
|
|
58
|
+
[MeasurementEvents.MEASUREMENT_CHANGED]: DefaultMeasurementEvent;
|
|
59
|
+
[MeasurementEvents.MEASUREMENT_STOPPED]: DefaultMeasurementEvent;
|
|
60
|
+
[MeasurementEvents.MEASUREMENT_STARTED]: DefaultMeasurementEvent;
|
|
61
|
+
[MeasurementEvents.MEASUREMENT_SAVED]: DefaultMeasurementEvent;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export type PanoramaViewerEventDetails = {
|
|
65
|
+
[PanoramaViewerEvents.PANORAMA_CREATED]: {
|
|
66
|
+
panoramaId: string;
|
|
67
|
+
recording: Recording;
|
|
68
|
+
viewerData: {
|
|
69
|
+
hFov: number;
|
|
70
|
+
yaw: number;
|
|
71
|
+
srs: string;
|
|
72
|
+
xyz: [x: number, y: number, z: number];
|
|
73
|
+
};
|
|
74
|
+
colorStyle: { name: string; color: string; style: Style };
|
|
75
|
+
};
|
|
76
|
+
[PanoramaViewerEvents.RECORDING_CLICK]: {
|
|
77
|
+
eventData: {
|
|
78
|
+
altKey: boolean;
|
|
79
|
+
ctrlKey: boolean;
|
|
80
|
+
shiftKey: boolean;
|
|
81
|
+
};
|
|
82
|
+
recording: Recording;
|
|
83
|
+
};
|
|
84
|
+
[PanoramaViewerEvents.FEATURE_CLICK]: {
|
|
85
|
+
layerId: string;
|
|
86
|
+
layerName: string;
|
|
87
|
+
featureProperties: any;
|
|
88
|
+
};
|
|
89
|
+
[PanoramaViewerEvents.FEATURE_SELECTION_CHANGE]: {
|
|
90
|
+
layerId: string;
|
|
91
|
+
layerName: string;
|
|
92
|
+
featureProperties: any;
|
|
93
|
+
};
|
|
94
|
+
[PanoramaViewerEvents.IMAGE_CHANGE]: {};
|
|
95
|
+
[PanoramaViewerEvents.VIEW_CHANGE]: {
|
|
96
|
+
hFov: number;
|
|
97
|
+
pitch: number;
|
|
98
|
+
yaw: number;
|
|
99
|
+
};
|
|
100
|
+
[PanoramaViewerEvents.VIEW_LOAD_END]: {};
|
|
101
|
+
[PanoramaViewerEvents.TILE_LOAD_ERROR]: {
|
|
102
|
+
xhr: XMLHttpRequest;
|
|
103
|
+
};
|
|
104
|
+
[PanoramaViewerEvents.TIME_TRAVEL_CHANGE]: {
|
|
105
|
+
date: Date;
|
|
106
|
+
};
|
|
107
|
+
[PanoramaViewerEvents.SURFACE_CURSOR_CHANGE]: {
|
|
108
|
+
// depth in active units (m, ft, etc.)
|
|
109
|
+
depth: number;
|
|
110
|
+
depthInMeters: number;
|
|
111
|
+
srs: string;
|
|
112
|
+
xyz: [x: number, y: number, z: number];
|
|
113
|
+
};
|
|
114
|
+
[PanoramaViewerEvents.ELEVATION_CHANGE]: {
|
|
115
|
+
level: string;
|
|
116
|
+
heightUnit: string;
|
|
117
|
+
groundLevel: string;
|
|
118
|
+
};
|
|
119
|
+
[SharedViewerEvents.LAYER_VISIBILITY_CHANGE]: { layerId: string; visibility: boolean };
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export enum ObliqueViewerEvents {
|
|
123
|
+
SWITCH_VIEWING_DIRECTION = 'SWITCH_VIEWING_DIRECTION',
|
|
124
|
+
FEATURE_CLICK = 'FEATURE_CLICK',
|
|
125
|
+
FEATURE_SELECTION_CHANGE = 'FEATURE_SELECTION_CHANGE',
|
|
126
|
+
IMAGE_CHANGE = 'IMAGE_CHANGE',
|
|
127
|
+
VIEW_CHANGE = 'VIEW_CHANGE',
|
|
128
|
+
VIEW_LOAD_END = 'VIEW_LOAD_END',
|
|
129
|
+
TIME_TRAVEL_CHANGE = 'TIME_TRAVEL_CHANGE',
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Types for event details
|
|
133
|
+
export type ObliqueViewerEventDetails = {
|
|
134
|
+
SWITCH_VIEWING_DIRECTION?: {
|
|
135
|
+
direction: string;
|
|
136
|
+
};
|
|
137
|
+
FEATURE_CLICK?: {
|
|
138
|
+
layerId: string;
|
|
139
|
+
layerName: string;
|
|
140
|
+
featureProperties: any;
|
|
141
|
+
};
|
|
142
|
+
FEATURE_SELECTION_CHANGE?: {
|
|
143
|
+
layerId: string;
|
|
144
|
+
layerName: string;
|
|
145
|
+
featureProperties: any;
|
|
146
|
+
};
|
|
147
|
+
IMAGE_CHANGE?: {
|
|
148
|
+
footprint: any;
|
|
149
|
+
footprintCentre: any;
|
|
150
|
+
rotation: number;
|
|
151
|
+
srs: string;
|
|
152
|
+
};
|
|
153
|
+
VIEW_CHANGE?: {
|
|
154
|
+
center: any;
|
|
155
|
+
resolution: any;
|
|
156
|
+
rotation: number;
|
|
157
|
+
srs: string;
|
|
158
|
+
};
|
|
159
|
+
VIEW_LOAD_END?: {};
|
|
160
|
+
TIME_TRAVEL_CHANGE?: {
|
|
161
|
+
date: Date;
|
|
162
|
+
};
|
|
163
|
+
[SharedViewerEvents.LAYER_VISIBILITY_CHANGE]: { layerId: string; visibility: boolean };
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
export enum PointCloudViewerEvents {
|
|
167
|
+
VIEW_CHANGE = 'VIEW_CHANGE',
|
|
168
|
+
EDGES_CHANGED = 'EDGES_CHANGED',
|
|
169
|
+
POINT_SIZE_CHANGED = 'POINT_SIZE_CHANGED',
|
|
170
|
+
POINT_STYLE_CHANGED = 'POINT_STYLE_CHANGED',
|
|
171
|
+
POINT_BUDGET_CHANGED = 'POINT_BUDGET_CHANGED',
|
|
172
|
+
BACKGROUND_CHANGED = 'BACKGROUND_CHANGED',
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Types for event details
|
|
176
|
+
export type PointCloudViewerEventDetails = {
|
|
177
|
+
VIEW_CHANGE?: {
|
|
178
|
+
cameraPosition: { x: number; y: number; z: number };
|
|
179
|
+
cameraTarget: { x: number; y: number; z: number };
|
|
180
|
+
};
|
|
181
|
+
EDGES_CHANGED?: {
|
|
182
|
+
edges: boolean;
|
|
183
|
+
};
|
|
184
|
+
POINT_SIZE_CHANGED?: {
|
|
185
|
+
pointSize: number;
|
|
186
|
+
};
|
|
187
|
+
POINT_STYLE_CHANGED?: {
|
|
188
|
+
pointStyle: any;
|
|
189
|
+
};
|
|
190
|
+
POINT_BUDGET_CHANGED?: {
|
|
191
|
+
pointBudget: number;
|
|
192
|
+
};
|
|
193
|
+
BACKGROUND_CHANGED?: {
|
|
194
|
+
background: any;
|
|
195
|
+
};
|
|
196
|
+
[SharedViewerEvents.LAYER_VISIBILITY_CHANGE]: { layerId: string; visibility: boolean };
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export enum MeshViewerEvents {}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Enumeration for different UI elements in ObliqueViewer.
|
|
203
|
+
**/
|
|
204
|
+
export enum ObliqueViewerUi {
|
|
205
|
+
NAVBAR = 'NAVBAR',
|
|
206
|
+
SIDEBAR = 'SIDEBAR',
|
|
207
|
+
COMPASS = 'COMPASS',
|
|
208
|
+
TIME_TRAVEL = 'TIME_TRAVEL',
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export enum PointCloudViewerUi {
|
|
212
|
+
OVERLAYS = 'pointcloudviewer.overlays',
|
|
213
|
+
DISPLAY = 'pointcloudviewer.display',
|
|
214
|
+
DOWNLOAD = 'pointcloudviewer.download',
|
|
215
|
+
MEASURE = 'pointcloudviewer.measure',
|
|
216
|
+
TOGGLE_AERIAL_STREET = 'pointcloudviewer.toggleAerialStreet',
|
|
217
|
+
SECTIONS = 'pointcloudviewer.sections',
|
|
218
|
+
NAVBAR = 'pointcloudviewer.navbar',
|
|
219
|
+
SIDEBAR = 'pointcloudviewer.sidebar',
|
|
220
|
+
SAVE_MEASUREMENT = 'pointcloudviewer.saveMeasurement',
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export type Layer = {
|
|
224
|
+
/**
|
|
225
|
+
* ID of the layer.
|
|
226
|
+
*/
|
|
227
|
+
id: string;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Visibility to toggle to.
|
|
231
|
+
*/
|
|
232
|
+
visible: boolean;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Optional: Name of the layer.
|
|
236
|
+
*/
|
|
237
|
+
name?: string;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Enumeration for different colorization modes.
|
|
242
|
+
* @enum {string}
|
|
243
|
+
*/
|
|
244
|
+
export enum ColorizationMode {
|
|
245
|
+
RGB = 'RGB',
|
|
246
|
+
HEIGHT = 'Height',
|
|
247
|
+
INTENSITY = 'Intensity',
|
|
248
|
+
CLASSIFICATION = 'Classification', // (for aerial only)
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Enumeration for different quality levels.
|
|
253
|
+
* @enum {string}
|
|
254
|
+
*/
|
|
255
|
+
export enum Quality {
|
|
256
|
+
LOW = 'low',
|
|
257
|
+
MEDIUM = 'medium',
|
|
258
|
+
HIGH = 'high',
|
|
259
|
+
ULTRA = 'ultra',
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Enumeration for different point sizes.
|
|
264
|
+
* @enum {string}
|
|
265
|
+
*/
|
|
266
|
+
export enum PointSize {
|
|
267
|
+
SINGLE = 'single',
|
|
268
|
+
DOUBLE = 'double',
|
|
269
|
+
LARGE = 'large',
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Enumeration for different background presets.
|
|
274
|
+
* @enum {string}
|
|
275
|
+
*/
|
|
276
|
+
export enum BackgroundPreset {
|
|
277
|
+
SKYBOX = 'Skybox',
|
|
278
|
+
DARKBLUE = 'DarkBlue',
|
|
279
|
+
LIGHTBLUE = 'LightBlue',
|
|
280
|
+
BLACK = 'Black',
|
|
281
|
+
DARKGRAY = 'DarkGray',
|
|
282
|
+
GRAY = 'Gray',
|
|
283
|
+
LIGHTGRAY = 'LightGray',
|
|
284
|
+
WHITE = 'White',
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Enumeration for height colorization limits.
|
|
289
|
+
* @enum {number}
|
|
290
|
+
*/
|
|
291
|
+
export enum HeightColorization {
|
|
292
|
+
MIN = -10,
|
|
293
|
+
MAX = 50,
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export enum PointCloudType {
|
|
297
|
+
AERIAL = 'aerial',
|
|
298
|
+
STREET = 'street',
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export interface Recording {
|
|
302
|
+
id: string;
|
|
303
|
+
groundLevelOffset: number;
|
|
304
|
+
recorderDirection: number;
|
|
305
|
+
orientation: number;
|
|
306
|
+
recordedAt: Date | null;
|
|
307
|
+
expiredAt: Date | null;
|
|
308
|
+
year: number;
|
|
309
|
+
// The following two properties are urls that point to the blob storage location,
|
|
310
|
+
// which must first be presigned with a SAS token before use.
|
|
311
|
+
imageTilesUrlStructure: string | null;
|
|
312
|
+
depthTilesUrlStructure: string | null;
|
|
313
|
+
productType: string | null;
|
|
314
|
+
|
|
315
|
+
forwardTarget: boolean;
|
|
316
|
+
backwardTarget: boolean;
|
|
317
|
+
|
|
318
|
+
isPreloaded: boolean;
|
|
319
|
+
thumbs: Array<any>; // Replace "any" with the actual type of the array elements if known
|
|
320
|
+
thumbsLoaded: number;
|
|
321
|
+
|
|
322
|
+
relativeXyz: [number, number, number];
|
|
323
|
+
relativeYaw: number;
|
|
324
|
+
relativeDistance: number;
|
|
325
|
+
|
|
326
|
+
xyz: vec3;
|
|
327
|
+
srs: string;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
interface MeasurementCollection {
|
|
331
|
+
type: 'FeatureCollection';
|
|
332
|
+
features: Measurement[];
|
|
333
|
+
crs:
|
|
334
|
+
| {
|
|
335
|
+
type: 'EPSG';
|
|
336
|
+
properties: {
|
|
337
|
+
code: number;
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
| {
|
|
341
|
+
type: 'name';
|
|
342
|
+
properties: {
|
|
343
|
+
name: 'string';
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
interface Measurement {
|
|
349
|
+
type: string;
|
|
350
|
+
properties: {
|
|
351
|
+
[k: string]: any;
|
|
352
|
+
};
|
|
353
|
+
geometry: any;
|
|
354
|
+
}
|
|
355
|
+
}
|