@jupytergis/schema 0.9.2 → 0.10.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/lib/_interface/forms.json +32 -0
- package/lib/_interface/project/jgis.d.ts +2 -1
- package/lib/_interface/project/sources/geoTiffSource.d.ts +6 -0
- package/lib/_interface/project/sources/markerSource.d.ts +23 -0
- package/lib/interfaces.d.ts +16 -3
- package/lib/model.d.ts +28 -4
- package/lib/model.js +51 -53
- package/lib/processing/_generated/exportProcessingSchema.d.ts +2 -2
- package/lib/processing/_generated/exportProcessingSchema.js +2 -2
- package/lib/processing/_generated/processingType.d.ts +1 -1
- package/lib/processing/_generated/processingType.js +2 -2
- package/lib/processing/_generated/processing_merge.json +27 -27
- package/lib/schema/project/jgis.json +2 -1
- package/lib/schema/project/sources/geoTiffSource.json +2 -0
- package/lib/schema/project/sources/markerSource.json +28 -0
- package/lib/types.d.ts +2 -0
- package/lib/types.js +1 -0
- package/package.json +1 -1
|
@@ -575,10 +575,12 @@
|
|
|
575
575
|
},
|
|
576
576
|
"normalize": {
|
|
577
577
|
"type": "boolean",
|
|
578
|
+
"description": "Enable to normalize values between 0 and 1 and displayed as RGB values; disable to keep raw band values",
|
|
578
579
|
"default": true
|
|
579
580
|
},
|
|
580
581
|
"wrapX": {
|
|
581
582
|
"type": "boolean",
|
|
583
|
+
"description": "Wrap the map horizontally?",
|
|
582
584
|
"default": false
|
|
583
585
|
},
|
|
584
586
|
"interpolate": {
|
|
@@ -624,6 +626,36 @@
|
|
|
624
626
|
}
|
|
625
627
|
}
|
|
626
628
|
},
|
|
629
|
+
"MarkerSource": {
|
|
630
|
+
"type": "object",
|
|
631
|
+
"required": [
|
|
632
|
+
"feature"
|
|
633
|
+
],
|
|
634
|
+
"additionalProperties": false,
|
|
635
|
+
"properties": {
|
|
636
|
+
"color": {
|
|
637
|
+
"type": "string",
|
|
638
|
+
"description": "Color of the marker icon (hex, rgb, rgba, or named color)"
|
|
639
|
+
},
|
|
640
|
+
"feature": {
|
|
641
|
+
"type": "object",
|
|
642
|
+
"description": "Info for the marker",
|
|
643
|
+
"required": [
|
|
644
|
+
"coords"
|
|
645
|
+
],
|
|
646
|
+
"properties": {
|
|
647
|
+
"coords": {
|
|
648
|
+
"type": "array",
|
|
649
|
+
"minItems": 2,
|
|
650
|
+
"maxItems": 2,
|
|
651
|
+
"items": {
|
|
652
|
+
"type": "number"
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
},
|
|
627
659
|
"RasterDemSource": {
|
|
628
660
|
"type": "object",
|
|
629
661
|
"required": [
|
|
@@ -31,7 +31,8 @@ export type SourceType =
|
|
|
31
31
|
| "ImageSource"
|
|
32
32
|
| "ShapefileSource"
|
|
33
33
|
| "GeoTiffSource"
|
|
34
|
-
| "GeoParquetSource"
|
|
34
|
+
| "GeoParquetSource"
|
|
35
|
+
| "MarkerSource";
|
|
35
36
|
/**
|
|
36
37
|
* This interface was referenced by `IJGISContent`'s JSON-Schema
|
|
37
38
|
* via the `definition` "jGISLayerItem".
|
|
@@ -26,7 +26,13 @@ export interface IGeoTiffSource {
|
|
|
26
26
|
[k: string]: any;
|
|
27
27
|
}[]
|
|
28
28
|
];
|
|
29
|
+
/**
|
|
30
|
+
* Enable to normalize values between 0 and 1 and displayed as RGB values; disable to keep raw band values
|
|
31
|
+
*/
|
|
29
32
|
normalize?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Wrap the map horizontally?
|
|
35
|
+
*/
|
|
30
36
|
wrapX?: boolean;
|
|
31
37
|
/**
|
|
32
38
|
* Interpolate between grid cells when overzooming?
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
5
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* MarkerSource
|
|
10
|
+
*/
|
|
11
|
+
export interface IMarkerSource {
|
|
12
|
+
/**
|
|
13
|
+
* Color of the marker icon (hex, rgb, rgba, or named color)
|
|
14
|
+
*/
|
|
15
|
+
color?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Info for the marker
|
|
18
|
+
*/
|
|
19
|
+
feature: {
|
|
20
|
+
coords: [number, number];
|
|
21
|
+
[k: string]: any;
|
|
22
|
+
};
|
|
23
|
+
}
|
package/lib/interfaces.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { SplitPanel } from '@lumino/widgets';
|
|
|
11
11
|
import { FeatureLike } from 'ol/Feature';
|
|
12
12
|
import { IJGISContent, IJGISLayer, IJGISLayerGroup, IJGISLayerItem, IJGISLayers, IJGISLayerTree, IJGISOptions, IJGISSource, IJGISSources, SourceType } from './_interface/project/jgis';
|
|
13
13
|
import { IRasterSource } from './_interface/project/sources/rasterSource';
|
|
14
|
+
import { Modes } from './types';
|
|
14
15
|
export { IGeoJSONSource } from './_interface/project/sources/geoJsonSource';
|
|
15
16
|
export type JgisCoordinates = {
|
|
16
17
|
x: number;
|
|
@@ -49,7 +50,6 @@ export type SelectionType = 'layer' | 'source' | 'group';
|
|
|
49
50
|
export interface ISelection {
|
|
50
51
|
type: SelectionType;
|
|
51
52
|
parent?: string;
|
|
52
|
-
selectedNodeId?: string;
|
|
53
53
|
}
|
|
54
54
|
export interface IJupyterGISClientState {
|
|
55
55
|
selected: {
|
|
@@ -133,7 +133,7 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
|
|
|
133
133
|
geolocation: JgisCoordinates;
|
|
134
134
|
localState: IJupyterGISClientState | null;
|
|
135
135
|
annotationModel?: IAnnotationModel;
|
|
136
|
-
currentMode:
|
|
136
|
+
currentMode: Modes;
|
|
137
137
|
themeChanged: Signal<IJupyterGISModel, IChangedArgs<string, string | null, string>>;
|
|
138
138
|
clientStateChanged: ISignal<IJupyterGISModel, Map<number, IJupyterGISClientState>>;
|
|
139
139
|
sharedOptionsChanged: ISignal<IJupyterGISDoc, MapChange>;
|
|
@@ -186,6 +186,19 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
|
|
|
186
186
|
syncSelected(value: {
|
|
187
187
|
[key: string]: ISelection;
|
|
188
188
|
}, emitter?: string): void;
|
|
189
|
+
selected: {
|
|
190
|
+
[key: string]: ISelection;
|
|
191
|
+
} | undefined;
|
|
192
|
+
setEditingItem(type: SelectionType, itemId: string): void;
|
|
193
|
+
clearEditingItem(): void;
|
|
194
|
+
readonly editing: {
|
|
195
|
+
type: SelectionType;
|
|
196
|
+
itemId: string;
|
|
197
|
+
} | null;
|
|
198
|
+
editingChanged: ISignal<IJupyterGISModel, {
|
|
199
|
+
type: SelectionType;
|
|
200
|
+
itemId: string;
|
|
201
|
+
} | null>;
|
|
189
202
|
syncPointer(pointer?: Pointer, emitter?: string): void;
|
|
190
203
|
syncIdentifiedFeatures(features: IDict<any>, emitter?: string): void;
|
|
191
204
|
setUserToFollow(userId?: number): void;
|
|
@@ -193,7 +206,7 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
|
|
|
193
206
|
addMetadata(key: string, value: string): void;
|
|
194
207
|
removeMetadata(key: string): void;
|
|
195
208
|
centerOnPosition(id: string): void;
|
|
196
|
-
|
|
209
|
+
toggleMode(mode: Modes): void;
|
|
197
210
|
isTemporalControllerActive: boolean;
|
|
198
211
|
toggleTemporalController(): void;
|
|
199
212
|
addFeatureAsMs(id: string, selectedFeature: string): void;
|
package/lib/model.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ import { PartialJSONObject } from '@lumino/coreutils';
|
|
|
7
7
|
import { ISignal, Signal } from '@lumino/signaling';
|
|
8
8
|
import { FeatureLike } from 'ol/Feature';
|
|
9
9
|
import { IJGISContent, IJGISLayer, IJGISLayerGroup, IJGISLayerTree, IJGISLayers, IJGISOptions, IJGISSource, IJGISSources } from './_interface/project/jgis';
|
|
10
|
-
import { IAnnotationModel, IDict, IJGISLayerDocChange, IJGISLayerTreeDocChange, IJGISSourceDocChange, IJupyterGISClientState, IJupyterGISDoc, IJupyterGISModel, ISelection, IUserData, IViewPortState, JgisCoordinates, Pointer, IJupyterGISSettings } from './interfaces';
|
|
10
|
+
import { IAnnotationModel, IDict, IJGISLayerDocChange, IJGISLayerTreeDocChange, IJGISSourceDocChange, IJupyterGISClientState, IJupyterGISDoc, IJupyterGISModel, ISelection, IUserData, IViewPortState, JgisCoordinates, Pointer, IJupyterGISSettings, SelectionType } from './interfaces';
|
|
11
|
+
import { Modes } from './types';
|
|
11
12
|
export declare class JupyterGISModel implements IJupyterGISModel {
|
|
12
13
|
constructor(options: JupyterGISModel.IOptions);
|
|
13
14
|
/**
|
|
@@ -137,8 +138,24 @@ export declare class JupyterGISModel implements IJupyterGISModel {
|
|
|
137
138
|
syncSelected(value: {
|
|
138
139
|
[key: string]: ISelection;
|
|
139
140
|
}, emitter?: string): void;
|
|
141
|
+
get selected(): {
|
|
142
|
+
[key: string]: ISelection;
|
|
143
|
+
} | undefined;
|
|
144
|
+
set selected(value: {
|
|
145
|
+
[key: string]: ISelection;
|
|
146
|
+
} | undefined);
|
|
140
147
|
syncIdentifiedFeatures(features: IDict<any>, emitter?: string): void;
|
|
141
148
|
setUserToFollow(userId?: number): void;
|
|
149
|
+
setEditingItem(type: SelectionType, itemId: string): void;
|
|
150
|
+
clearEditingItem(): void;
|
|
151
|
+
get editing(): {
|
|
152
|
+
type: SelectionType;
|
|
153
|
+
itemId: string;
|
|
154
|
+
} | null;
|
|
155
|
+
get editingChanged(): ISignal<this, {
|
|
156
|
+
type: SelectionType;
|
|
157
|
+
itemId: string;
|
|
158
|
+
} | null>;
|
|
142
159
|
getClientId(): number;
|
|
143
160
|
/**
|
|
144
161
|
* Add an item in the layer tree.
|
|
@@ -160,9 +177,14 @@ export declare class JupyterGISModel implements IJupyterGISModel {
|
|
|
160
177
|
private _removeLayerTreeItem;
|
|
161
178
|
renameLayerGroup(groupName: string, newName: string): void;
|
|
162
179
|
removeLayerGroup(groupName: string): void;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Toggle a map interaction mode on or off.
|
|
182
|
+
* Toggleing off sets the mode to 'panning'.
|
|
183
|
+
* @param mode The mode to be toggled
|
|
184
|
+
*/
|
|
185
|
+
toggleMode(mode: Modes): void;
|
|
186
|
+
get currentMode(): Modes;
|
|
187
|
+
set currentMode(value: Modes);
|
|
166
188
|
toggleTemporalController(): void;
|
|
167
189
|
private _getLayerTreeInfo;
|
|
168
190
|
private _onClientStateChanged;
|
|
@@ -200,6 +222,8 @@ export declare class JupyterGISModel implements IJupyterGISModel {
|
|
|
200
222
|
private _addFeatureAsMsSignal;
|
|
201
223
|
private _updateLayerSignal;
|
|
202
224
|
private _isTemporalControllerActive;
|
|
225
|
+
private _editing;
|
|
226
|
+
private _editingChanged;
|
|
203
227
|
static worker: Worker;
|
|
204
228
|
private _geolocation;
|
|
205
229
|
private _geolocationChanged;
|
package/lib/model.js
CHANGED
|
@@ -3,6 +3,17 @@ import Ajv from 'ajv';
|
|
|
3
3
|
import { JupyterGISDoc } from './doc';
|
|
4
4
|
import jgisSchema from './schema/project/jgis.json';
|
|
5
5
|
const SETTINGS_ID = '@jupytergis/jupytergis-core:jupytergis-settings';
|
|
6
|
+
const DEFAULT_SETTINGS = {
|
|
7
|
+
proxyUrl: 'https://corsproxy.io',
|
|
8
|
+
leftPanelDisabled: false,
|
|
9
|
+
rightPanelDisabled: false,
|
|
10
|
+
layersDisabled: false,
|
|
11
|
+
stacBrowserDisabled: false,
|
|
12
|
+
filtersDisabled: false,
|
|
13
|
+
objectPropertiesDisabled: false,
|
|
14
|
+
annotationsDisabled: false,
|
|
15
|
+
identifyDisabled: false,
|
|
16
|
+
};
|
|
6
17
|
export class JupyterGISModel {
|
|
7
18
|
constructor(options) {
|
|
8
19
|
this._onSharedModelChanged = (sender, changes) => {
|
|
@@ -45,6 +56,8 @@ export class JupyterGISModel {
|
|
|
45
56
|
this._addFeatureAsMsSignal = new Signal(this);
|
|
46
57
|
this._updateLayerSignal = new Signal(this);
|
|
47
58
|
this._isTemporalControllerActive = false;
|
|
59
|
+
this._editing = null;
|
|
60
|
+
this._editingChanged = new Signal(this);
|
|
48
61
|
this._geolocationChanged = new Signal(this);
|
|
49
62
|
this._tileFeatureCache = new Map();
|
|
50
63
|
const { annotationModel, sharedModel, settingRegistry } = options;
|
|
@@ -61,17 +74,7 @@ export class JupyterGISModel {
|
|
|
61
74
|
this.settingRegistry = settingRegistry;
|
|
62
75
|
this._pathChanged = new Signal(this);
|
|
63
76
|
this._settingsChanged = new Signal(this);
|
|
64
|
-
this._jgisSettings = {
|
|
65
|
-
proxyUrl: 'https://corsproxy.io',
|
|
66
|
-
leftPanelDisabled: false,
|
|
67
|
-
rightPanelDisabled: false,
|
|
68
|
-
layersDisabled: false,
|
|
69
|
-
stacBrowserDisabled: false,
|
|
70
|
-
filtersDisabled: false,
|
|
71
|
-
objectPropertiesDisabled: false,
|
|
72
|
-
annotationsDisabled: false,
|
|
73
|
-
identifyDisabled: false,
|
|
74
|
-
};
|
|
77
|
+
this._jgisSettings = Object.assign({}, DEFAULT_SETTINGS);
|
|
75
78
|
this.initSettings();
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
@@ -87,17 +90,7 @@ export class JupyterGISModel {
|
|
|
87
90
|
const oldSettings = Object.assign({}, this._jgisSettings);
|
|
88
91
|
this._updateLocalSettings();
|
|
89
92
|
const newSettings = this._jgisSettings;
|
|
90
|
-
const keys =
|
|
91
|
-
'proxyUrl',
|
|
92
|
-
'leftPanelDisabled',
|
|
93
|
-
'rightPanelDisabled',
|
|
94
|
-
'layersDisabled',
|
|
95
|
-
'stacBrowserDisabled',
|
|
96
|
-
'filtersDisabled',
|
|
97
|
-
'objectPropertiesDisabled',
|
|
98
|
-
'annotationsDisabled',
|
|
99
|
-
'identifyDisabled',
|
|
100
|
-
];
|
|
93
|
+
const keys = Object.keys(DEFAULT_SETTINGS);
|
|
101
94
|
keys.forEach(key => {
|
|
102
95
|
if (oldSettings[key] !== newSettings[key]) {
|
|
103
96
|
this._settingsChanged.emit(key);
|
|
@@ -107,34 +100,18 @@ export class JupyterGISModel {
|
|
|
107
100
|
}
|
|
108
101
|
catch (error) {
|
|
109
102
|
console.error(`Failed to load settings for ${SETTINGS_ID}:`, error);
|
|
110
|
-
this._jgisSettings = {
|
|
111
|
-
proxyUrl: 'https://corsproxy.io',
|
|
112
|
-
leftPanelDisabled: false,
|
|
113
|
-
rightPanelDisabled: false,
|
|
114
|
-
layersDisabled: false,
|
|
115
|
-
stacBrowserDisabled: false,
|
|
116
|
-
filtersDisabled: false,
|
|
117
|
-
objectPropertiesDisabled: false,
|
|
118
|
-
annotationsDisabled: false,
|
|
119
|
-
identifyDisabled: false,
|
|
120
|
-
};
|
|
103
|
+
this._jgisSettings = Object.assign({}, DEFAULT_SETTINGS);
|
|
121
104
|
}
|
|
122
105
|
}
|
|
123
106
|
}
|
|
124
107
|
_updateLocalSettings() {
|
|
125
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
126
108
|
const composite = this._settings.composite;
|
|
127
|
-
this._jgisSettings = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
filtersDisabled: (_f = composite.filtersDisabled) !== null && _f !== void 0 ? _f : false,
|
|
134
|
-
objectPropertiesDisabled: (_g = composite.objectPropertiesDisabled) !== null && _g !== void 0 ? _g : false,
|
|
135
|
-
annotationsDisabled: (_h = composite.annotationsDisabled) !== null && _h !== void 0 ? _h : false,
|
|
136
|
-
identifyDisabled: (_j = composite.identifyDisabled) !== null && _j !== void 0 ? _j : false,
|
|
137
|
-
};
|
|
109
|
+
this._jgisSettings = Object.entries(DEFAULT_SETTINGS).reduce((acc, [key, defaultValue]) => {
|
|
110
|
+
const typedKey = key;
|
|
111
|
+
const compositeValue = composite[typedKey];
|
|
112
|
+
acc[typedKey] = compositeValue !== null && compositeValue !== void 0 ? compositeValue : defaultValue;
|
|
113
|
+
return acc;
|
|
114
|
+
}, {});
|
|
138
115
|
}
|
|
139
116
|
get jgisSettings() {
|
|
140
117
|
return this._jgisSettings;
|
|
@@ -458,6 +435,13 @@ export class JupyterGISModel {
|
|
|
458
435
|
emitter,
|
|
459
436
|
});
|
|
460
437
|
}
|
|
438
|
+
get selected() {
|
|
439
|
+
var _a, _b;
|
|
440
|
+
return (_b = (_a = this.localState) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.value;
|
|
441
|
+
}
|
|
442
|
+
set selected(value) {
|
|
443
|
+
this.syncSelected(value || {}, this.getClientId().toString());
|
|
444
|
+
}
|
|
461
445
|
syncIdentifiedFeatures(features, emitter) {
|
|
462
446
|
this.sharedModel.awareness.setLocalStateField('identifiedFeatures', {
|
|
463
447
|
value: features,
|
|
@@ -469,6 +453,20 @@ export class JupyterGISModel {
|
|
|
469
453
|
this._sharedModel.awareness.setLocalStateField('remoteUser', userId);
|
|
470
454
|
}
|
|
471
455
|
}
|
|
456
|
+
setEditingItem(type, itemId) {
|
|
457
|
+
this._editing = { type, itemId };
|
|
458
|
+
this._editingChanged.emit(this._editing);
|
|
459
|
+
}
|
|
460
|
+
clearEditingItem() {
|
|
461
|
+
this._editing = null;
|
|
462
|
+
this._editingChanged.emit(null);
|
|
463
|
+
}
|
|
464
|
+
get editing() {
|
|
465
|
+
return this._editing;
|
|
466
|
+
}
|
|
467
|
+
get editingChanged() {
|
|
468
|
+
return this._editingChanged;
|
|
469
|
+
}
|
|
472
470
|
getClientId() {
|
|
473
471
|
return this.sharedModel.awareness.clientID;
|
|
474
472
|
}
|
|
@@ -588,7 +586,7 @@ export class JupyterGISModel {
|
|
|
588
586
|
this._sharedModel.updateLayerTreeItem(layerTreeInfo.mainGroupIndex, layerTreeInfo.mainGroup);
|
|
589
587
|
}
|
|
590
588
|
else {
|
|
591
|
-
console.
|
|
589
|
+
console.error('Layer group rename failed -- could not get layer tree.');
|
|
592
590
|
}
|
|
593
591
|
}
|
|
594
592
|
removeLayerGroup(groupName) {
|
|
@@ -612,13 +610,13 @@ export class JupyterGISModel {
|
|
|
612
610
|
this._sharedModel.updateLayerTreeItem(layerTreeInfo.mainGroupIndex, updatedLayerTree[layerTreeInfo.mainGroupIndex]);
|
|
613
611
|
}
|
|
614
612
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
613
|
+
/**
|
|
614
|
+
* Toggle a map interaction mode on or off.
|
|
615
|
+
* Toggleing off sets the mode to 'panning'.
|
|
616
|
+
* @param mode The mode to be toggled
|
|
617
|
+
*/
|
|
618
|
+
toggleMode(mode) {
|
|
619
|
+
this._currentMode = this._currentMode === mode ? 'panning' : mode;
|
|
622
620
|
}
|
|
623
621
|
get currentMode() {
|
|
624
622
|
return this._currentMode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from '../../_interface/processing/dissolve';
|
|
2
1
|
export * from '../../_interface/processing/centroids';
|
|
3
2
|
export * from '../../_interface/processing/convexHull';
|
|
3
|
+
export * from '../../_interface/processing/concaveHull';
|
|
4
4
|
export * from '../../_interface/processing/buffer';
|
|
5
|
+
export * from '../../_interface/processing/dissolve';
|
|
5
6
|
export * from '../../_interface/processing/boundingBoxes';
|
|
6
|
-
export * from '../../_interface/processing/concaveHull';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//Generated automatically please don't modify directly
|
|
2
|
-
export * from '../../_interface/processing/dissolve';
|
|
3
2
|
export * from '../../_interface/processing/centroids';
|
|
4
3
|
export * from '../../_interface/processing/convexHull';
|
|
4
|
+
export * from '../../_interface/processing/concaveHull';
|
|
5
5
|
export * from '../../_interface/processing/buffer';
|
|
6
|
+
export * from '../../_interface/processing/dissolve';
|
|
6
7
|
export * from '../../_interface/processing/boundingBoxes';
|
|
7
|
-
export * from '../../_interface/processing/concaveHull';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type ProcessingType = '
|
|
1
|
+
export type ProcessingType = 'Centroids' | 'ConvexHull' | 'ConcaveHull' | 'Buffer' | 'Dissolve' | 'BoundingBoxes';
|
|
2
2
|
export declare const processingList: string[];
|
|
@@ -1,17 +1,4 @@
|
|
|
1
1
|
[
|
|
2
|
-
{
|
|
3
|
-
"description": "Dissolve",
|
|
4
|
-
"name": "dissolve",
|
|
5
|
-
"operationParams": [
|
|
6
|
-
"dissolveField"
|
|
7
|
-
],
|
|
8
|
-
"label": "Dissolve",
|
|
9
|
-
"operations": {
|
|
10
|
-
"gdalFunction": "ogr2ogr",
|
|
11
|
-
"sql": "SELECT ST_Union(geometry) AS geometry, {dissolveField} FROM \"{layerName}\" GROUP BY {dissolveField}"
|
|
12
|
-
},
|
|
13
|
-
"type": "vector"
|
|
14
|
-
},
|
|
15
2
|
{
|
|
16
3
|
"description": "Centroids",
|
|
17
4
|
"name": "centroids",
|
|
@@ -34,6 +21,20 @@
|
|
|
34
21
|
},
|
|
35
22
|
"type": "vector"
|
|
36
23
|
},
|
|
24
|
+
{
|
|
25
|
+
"description": "ConcaveHull",
|
|
26
|
+
"name": "concaveHull",
|
|
27
|
+
"operationParams": [
|
|
28
|
+
"pctconvex",
|
|
29
|
+
"allowHoles"
|
|
30
|
+
],
|
|
31
|
+
"label": "Concave Hull",
|
|
32
|
+
"operations": {
|
|
33
|
+
"sql": "SELECT ST_ConcaveHull(geometry,{pctconvex},{allowHoles}) AS geometry, * FROM \"{layerName}\"",
|
|
34
|
+
"gdalFunction": "ogr2ogr"
|
|
35
|
+
},
|
|
36
|
+
"type": "vector"
|
|
37
|
+
},
|
|
37
38
|
{
|
|
38
39
|
"description": "Buffer",
|
|
39
40
|
"name": "buffer",
|
|
@@ -48,26 +49,25 @@
|
|
|
48
49
|
"type": "vector"
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
|
-
"description": "
|
|
52
|
-
"name": "
|
|
53
|
-
"operationParams": [
|
|
54
|
-
|
|
52
|
+
"description": "Dissolve",
|
|
53
|
+
"name": "dissolve",
|
|
54
|
+
"operationParams": [
|
|
55
|
+
"dissolveField"
|
|
56
|
+
],
|
|
57
|
+
"label": "Dissolve",
|
|
55
58
|
"operations": {
|
|
56
|
-
"
|
|
57
|
-
"
|
|
59
|
+
"gdalFunction": "ogr2ogr",
|
|
60
|
+
"sql": "SELECT ST_Union(geometry) AS geometry, {dissolveField} FROM \"{layerName}\" GROUP BY {dissolveField}"
|
|
58
61
|
},
|
|
59
62
|
"type": "vector"
|
|
60
63
|
},
|
|
61
64
|
{
|
|
62
|
-
"description": "
|
|
63
|
-
"name": "
|
|
64
|
-
"operationParams": [
|
|
65
|
-
|
|
66
|
-
"allowHoles"
|
|
67
|
-
],
|
|
68
|
-
"label": "Concave Hull",
|
|
65
|
+
"description": "BoundingBoxes",
|
|
66
|
+
"name": "boundingBoxes",
|
|
67
|
+
"operationParams": [],
|
|
68
|
+
"label": "Bounding Boxes",
|
|
69
69
|
"operations": {
|
|
70
|
-
"sql": "SELECT
|
|
70
|
+
"sql": "SELECT ST_Envelope(geometry) AS geometry, * FROM \"{layerName}\"",
|
|
71
71
|
"gdalFunction": "ogr2ogr"
|
|
72
72
|
},
|
|
73
73
|
"type": "vector"
|
|
@@ -26,10 +26,12 @@
|
|
|
26
26
|
},
|
|
27
27
|
"normalize": {
|
|
28
28
|
"type": "boolean",
|
|
29
|
+
"description": "Enable to normalize values between 0 and 1 and displayed as RGB values; disable to keep raw band values",
|
|
29
30
|
"default": true
|
|
30
31
|
},
|
|
31
32
|
"wrapX": {
|
|
32
33
|
"type": "boolean",
|
|
34
|
+
"description": "Wrap the map horizontally?",
|
|
33
35
|
"default": false
|
|
34
36
|
},
|
|
35
37
|
"interpolate": {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"description": "MarkerSource",
|
|
4
|
+
"title": "IMarkerSource",
|
|
5
|
+
"required": ["feature"],
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"color": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Color of the marker icon (hex, rgb, rgba, or named color)"
|
|
11
|
+
},
|
|
12
|
+
"feature": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"description": "Info for the marker",
|
|
15
|
+
"required": ["coords"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"coords": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"minItems": 2,
|
|
20
|
+
"maxItems": 2,
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "number"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
package/lib/types.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './_interface/project/sources/shapefileSource';
|
|
|
8
8
|
export * from './_interface/project/sources/vectorTileSource';
|
|
9
9
|
export * from './_interface/project/sources/videoSource';
|
|
10
10
|
export * from './_interface/project/sources/geoParquetSource';
|
|
11
|
+
export * from './_interface/project/sources/markerSource';
|
|
11
12
|
export * from './_interface/project/layers/heatmapLayer';
|
|
12
13
|
export * from './_interface/project/layers/hillshadeLayer';
|
|
13
14
|
export * from './_interface/project/layers/rasterLayer';
|
|
@@ -24,3 +25,4 @@ export * from './index';
|
|
|
24
25
|
export * from './interfaces';
|
|
25
26
|
export * from './model';
|
|
26
27
|
export * from './token';
|
|
28
|
+
export type Modes = 'panning' | 'identifying' | 'marking';
|
package/lib/types.js
CHANGED
|
@@ -9,6 +9,7 @@ export * from './_interface/project/sources/shapefileSource';
|
|
|
9
9
|
export * from './_interface/project/sources/vectorTileSource';
|
|
10
10
|
export * from './_interface/project/sources/videoSource';
|
|
11
11
|
export * from './_interface/project/sources/geoParquetSource';
|
|
12
|
+
export * from './_interface/project/sources/markerSource';
|
|
12
13
|
// Layers
|
|
13
14
|
export * from './_interface/project/layers/heatmapLayer';
|
|
14
15
|
export * from './_interface/project/layers/hillshadeLayer';
|