@jupytergis/schema 0.13.3 → 0.14.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.
@@ -413,6 +413,11 @@
413
413
  "type": "object",
414
414
  "description": "The color/style override",
415
415
  "default": {}
416
+ },
417
+ "sourceProperties": {
418
+ "type": "object",
419
+ "description": "The symbology source override",
420
+ "default": {}
416
421
  }
417
422
  }
418
423
  },
@@ -461,8 +466,7 @@
461
466
  "default": "Single Symbol"
462
467
  },
463
468
  "value": {
464
- "type": "string",
465
- "default": ""
469
+ "type": "string"
466
470
  },
467
471
  "method": {
468
472
  "type": "string",
@@ -499,7 +503,6 @@
499
503
  "additionalProperties": false,
500
504
  "default": {
501
505
  "renderType": "Single Symbol",
502
- "value": "",
503
506
  "method": "color",
504
507
  "colorRamp": "viridis",
505
508
  "nClasses": "9",
@@ -663,7 +666,7 @@
663
666
  "properties": {
664
667
  "renderType": {
665
668
  "type": "string",
666
- "default": "Single Symbol"
669
+ "default": "Singleband Pseudocolor"
667
670
  },
668
671
  "band": {
669
672
  "type": "number",
@@ -714,7 +717,7 @@
714
717
  },
715
718
  "additionalProperties": false,
716
719
  "default": {
717
- "renderType": "Single Symbol",
720
+ "renderType": "Singleband Pseudocolor",
718
721
  "band": 1,
719
722
  "redBand": 1,
720
723
  "greenBand": 2,
@@ -921,8 +924,7 @@
921
924
  "properties": {
922
925
  "url": {
923
926
  "type": "string",
924
- "description": "The url to the tile provider",
925
- "default": ""
927
+ "description": "The url to the tile provider"
926
928
  },
927
929
  "minZoom": {
928
930
  "type": "number",
@@ -972,6 +974,7 @@
972
974
  },
973
975
  "urlParameters": {
974
976
  "type": "object",
977
+ "title": "URL parameters",
975
978
  "additionalProperties": {
976
979
  "type": "string"
977
980
  },
@@ -979,6 +982,7 @@
979
982
  },
980
983
  "interpolate": {
981
984
  "type": "boolean",
985
+ "title": "Interpolate",
982
986
  "description": "Interpolate between grid cells when overzooming?",
983
987
  "default": false
984
988
  }
@@ -1033,8 +1037,7 @@
1033
1037
  "properties": {
1034
1038
  "url": {
1035
1039
  "type": "string",
1036
- "description": "The url to the tile provider",
1037
- "default": ""
1040
+ "description": "The url to the tile provider"
1038
1041
  },
1039
1042
  "minZoom": {
1040
1043
  "type": "number",
@@ -1110,9 +1113,11 @@
1110
1113
  "additionalProperties": false,
1111
1114
  "properties": {
1112
1115
  "path": {
1113
- "type": "string",
1114
- "description": "The local path to a GeoJSON file",
1115
- "default": ""
1116
+ "type": [
1117
+ "string",
1118
+ "null"
1119
+ ],
1120
+ "description": "The local path to a GeoJSON file"
1116
1121
  },
1117
1122
  "data": {
1118
1123
  "type": "object",
@@ -2606,12 +2611,6 @@
2606
2611
  }
2607
2612
  }
2608
2613
  ]
2609
- },
2610
- "valid": {
2611
- "type": "boolean",
2612
- "description": "Whether the data are valid or not",
2613
- "readOnly": true,
2614
- "default": false
2615
2614
  }
2616
2615
  }
2617
2616
  }
@@ -37,6 +37,12 @@ export type LayerOverride = {
37
37
  color?: {
38
38
  [k: string]: any;
39
39
  };
40
+ /**
41
+ * The symbology source override
42
+ */
43
+ sourceProperties?: {
44
+ [k: string]: any;
45
+ };
40
46
  [k: string]: any;
41
47
  }[];
42
48
 
@@ -26,12 +26,8 @@ export interface IGeoJSONSource {
26
26
  /**
27
27
  * The local path to a GeoJSON file
28
28
  */
29
- path?: string;
29
+ path?: string | null;
30
30
  data?: GeoJSON;
31
- /**
32
- * Whether the data are valid or not
33
- */
34
- valid?: boolean;
35
31
  }
36
32
  export interface GeoJSONPoint {
37
33
  type: "Point";
@@ -5,6 +5,11 @@
5
5
  * and run json-schema-to-typescript to regenerate this file.
6
6
  */
7
7
 
8
+ /**
9
+ * Interpolate between grid cells when overzooming?
10
+ */
11
+ export type Interpolate = boolean;
12
+
8
13
  /**
9
14
  * RasterSource
10
15
  */
@@ -37,11 +42,9 @@ export interface IRasterSource {
37
42
  * The bounds of the source
38
43
  */
39
44
  bounds?: number[][];
40
- urlParameters?: {
41
- [k: string]: string;
42
- };
43
- /**
44
- * Interpolate between grid cells when overzooming?
45
- */
46
- interpolate?: boolean;
45
+ urlParameters?: URLParameters;
46
+ interpolate?: Interpolate;
47
+ }
48
+ export interface URLParameters {
49
+ [k: string]: string;
47
50
  }
package/lib/doc.d.ts CHANGED
@@ -4,7 +4,7 @@ import { ISignal } from '@lumino/signaling';
4
4
  import { IJGISLayer, IJGISLayerItem, IJGISLayerTree, IJGISLayers, IJGISOptions, IJGISSource, IJGISSources, IJGISStoryMap } from './_interface/project/jgis';
5
5
  import { IDict, IJGISLayerDocChange, IJGISLayerTreeDocChange, IJGISSourceDocChange, IJGISStoryMapDocChange, IJGISStoryMaps, IJupyterGISDoc, IJupyterGISDocChange } from './interfaces';
6
6
  /** Default JSON content for a new JupyterGIS document. */
7
- export declare const DEFAULT_JGIS_DOCUMENT_CONTENT = "{\n\t\"schemaVersion\": \"0.5.0\",\n\t\"layers\": {},\n\t\"sources\": {},\n\t\"options\": {\"latitude\": 0, \"longitude\": 0, \"zoom\": 0, \"bearing\": 0, \"pitch\": 0, \"projection\": \"EPSG:3857\"},\n\t\"layerTree\": [],\n\t\"metadata\": {}\n}";
7
+ export declare const DEFAULT_JGIS_DOCUMENT_CONTENT = "{\n\t\"schemaVersion\": \"0.5.0\",\n\t\"layers\": {},\n\t\"sources\": {},\n\t\"options\": {\"latitude\": 0, \"longitude\": 0, \"zoom\": 0, \"bearing\": 0, \"pitch\": 0, \"projection\": \"EPSG:3857\", \"storyMapPresentationMode\": false},\n\t\"layerTree\": [],\n\t\"metadata\": {}\n}";
8
8
  export declare class JupyterGISDoc extends YDocument<IJupyterGISDocChange> implements IJupyterGISDoc {
9
9
  constructor();
10
10
  get initialSyncReady(): Promise<void>;
@@ -23,6 +23,13 @@ export declare class JupyterGISDoc extends YDocument<IJupyterGISDocChange> imple
23
23
  set layerTree(layerTree: IJGISLayerTree);
24
24
  getLayer(id: string): IJGISLayer | undefined;
25
25
  getLayerSource(id: string): IJGISSource | undefined;
26
+ /**
27
+ * Get the list of layers using a source.
28
+ *
29
+ * @param id - the source id.
30
+ * @returns a list of layer ids that use the source.
31
+ */
32
+ getLayersBySource(id: string): string[];
26
33
  set options(options: IJGISOptions);
27
34
  get options(): IJGISOptions;
28
35
  get layersChanged(): ISignal<IJupyterGISDoc, IJGISLayerDocChange>;
package/lib/doc.js CHANGED
@@ -7,7 +7,7 @@ export const DEFAULT_JGIS_DOCUMENT_CONTENT = `{
7
7
  "schemaVersion": "${SCHEMA_VERSION}",
8
8
  "layers": {},
9
9
  "sources": {},
10
- "options": {"latitude": 0, "longitude": 0, "zoom": 0, "bearing": 0, "pitch": 0, "projection": "EPSG:3857"},
10
+ "options": {"latitude": 0, "longitude": 0, "zoom": 0, "bearing": 0, "pitch": 0, "projection": "EPSG:3857", "storyMapPresentationMode": false},
11
11
  "layerTree": [],
12
12
  "metadata": {}
13
13
  }`;
@@ -167,6 +167,22 @@ export class JupyterGISDoc extends YDocument {
167
167
  }
168
168
  return JSONExt.deepCopy(this._sources.get(id));
169
169
  }
170
+ /**
171
+ * Get the list of layers using a source.
172
+ *
173
+ * @param id - the source id.
174
+ * @returns a list of layer ids that use the source.
175
+ */
176
+ getLayersBySource(id) {
177
+ const usingLayers = [];
178
+ Object.entries(this.layers || {}).forEach(([layerId, layer]) => {
179
+ var _a;
180
+ if (((_a = layer.parameters) === null || _a === void 0 ? void 0 : _a.source) === id) {
181
+ usingLayers.push(layerId);
182
+ }
183
+ });
184
+ return usingLayers;
185
+ }
170
186
  set options(options) {
171
187
  this.transact(() => {
172
188
  for (const [key, value] of Object.entries(options)) {
@@ -249,6 +265,11 @@ export class JupyterGISDoc extends YDocument {
249
265
  return Boolean(this._getSourceAsYMap(id));
250
266
  }
251
267
  removeSource(id) {
268
+ const layersUsingSource = this.getLayersBySource(id);
269
+ if (layersUsingSource.length > 0) {
270
+ console.debug(`Skipping source removal: source ${id} still used by layers: ${layersUsingSource.join(', ')}`);
271
+ return;
272
+ }
252
273
  this.transact(() => {
253
274
  this._sources.delete(id);
254
275
  });
@@ -106,6 +106,7 @@ export interface IJupyterGISDoc extends YDocument<IJupyterGISDocChange> {
106
106
  updateLayer(id: string, value: IJGISLayer): void;
107
107
  sourceExists(id: string): boolean;
108
108
  getLayerSource(id: string): IJGISSource | undefined;
109
+ getLayersBySource(id: string): string[];
109
110
  removeSource(id: string): void;
110
111
  addSource(id: string, value: IJGISSource): void;
111
112
  updateSource(id: string, value: IJGISSource): void;
@@ -180,15 +181,16 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
180
181
  getContent(): IJGISContent;
181
182
  getLayers(): IJGISLayers;
182
183
  getLayer(id: string): IJGISLayer | undefined;
184
+ getLayerOrSource(id: string): IJGISLayer | IJGISSource | undefined;
183
185
  getSources(): IJGISSources;
184
186
  getSource(id: string): IJGISSource | undefined;
185
187
  getSourcesByType(type: SourceType): {
186
188
  [key: string]: string;
187
189
  };
188
- getLayersBySource(id: string): string[];
189
190
  getLayerTree(): IJGISLayerTree;
190
191
  addLayer(id: string, layer: IJGISLayer, groupName?: string, position?: number): void;
191
192
  removeLayer(id: string): void;
193
+ removeSource(id: string): void;
192
194
  getOptions(): IJGISOptions;
193
195
  setOptions(value: IJGISOptions): void;
194
196
  removeLayerGroup(groupName: string): void;
@@ -226,7 +228,7 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
226
228
  isTemporalControllerActive: boolean;
227
229
  toggleTemporalController(): void;
228
230
  addFeatureAsMs(id: string, selectedFeature: string): void;
229
- triggerLayerUpdate(layerId: string, layer: IJGISLayer): void;
231
+ triggerLayerUpdate(layerId: string, layerOrSource: IJGISLayer | IJGISSource): void;
230
232
  disposed: ISignal<any, void>;
231
233
  getSelectedStory(): {
232
234
  storyId: string;
@@ -234,6 +236,7 @@ export interface IJupyterGISModel extends DocumentRegistry.IModel {
234
236
  };
235
237
  getCurrentSegmentIndex(): number;
236
238
  setCurrentSegmentIndex(index: number): void;
239
+ currentSegmentIndexChanged: ISignal<IJupyterGISModel, number>;
237
240
  addStorySegment(): {
238
241
  storySegmentId: string;
239
242
  storyId: string;
package/lib/model.d.ts CHANGED
@@ -94,6 +94,7 @@ export declare class JupyterGISModel implements IJupyterGISModel {
94
94
  getSources(): IJGISSources;
95
95
  getLayerTree(): IJGISLayerTree;
96
96
  getLayer(id: string): IJGISLayer | undefined;
97
+ getLayerOrSource(id: string): IJGISLayer | IJGISSource | undefined;
97
98
  getSource(id: string): IJGISSource | undefined;
98
99
  /**
99
100
  * Get a {[key: id]: name} dictionary of sources for a given source type
@@ -102,13 +103,6 @@ export declare class JupyterGISModel implements IJupyterGISModel {
102
103
  getSourcesByType(type: string): {
103
104
  [key: string]: string;
104
105
  };
105
- /**
106
- * Get the list of layers using a source.
107
- *
108
- * @param id - the source id.
109
- * @returns a list of layer ids that use the source.
110
- */
111
- getLayersBySource(id: string): string[];
112
106
  /**
113
107
  * Add a layer group in the layer tree.
114
108
  *
@@ -131,6 +125,7 @@ export declare class JupyterGISModel implements IJupyterGISModel {
131
125
  */
132
126
  addLayer(id: string, layer: IJGISLayer, groupName?: string, position?: number): void;
133
127
  removeLayer(layer_id: string): void;
128
+ removeSource(sourceId: string): void;
134
129
  setOptions(value: IJGISOptions): void;
135
130
  getOptions(): IJGISOptions;
136
131
  syncViewport(viewport?: IViewPortState, emitter?: string): void;
@@ -180,6 +175,7 @@ export declare class JupyterGISModel implements IJupyterGISModel {
180
175
  * Set current slide index for the selected story.
181
176
  */
182
177
  setCurrentSegmentIndex(index: number): void;
178
+ get currentSegmentIndexChanged(): ISignal<this, number>;
183
179
  /**
184
180
  * Adds a story segment from the current map view
185
181
  * @returns Object with storySegmentId and storyMapId, or null if no extent/zoom found
@@ -226,7 +222,7 @@ export declare class JupyterGISModel implements IJupyterGISModel {
226
222
  addFeatureAsMs: (id: string, selectedFeature: string) => void;
227
223
  get addFeatureAsMsSignal(): Signal<this, string>;
228
224
  get updateLayerSignal(): Signal<this, string>;
229
- triggerLayerUpdate: (layerId: string, layer: IJGISLayer) => void;
225
+ triggerLayerUpdate: (layerId: string, layer: IJGISLayer | IJGISSource) => void;
230
226
  get geolocation(): JgisCoordinates;
231
227
  set geolocation(geolocation: JgisCoordinates);
232
228
  get geolocationChanged(): Signal<this, JgisCoordinates>;
@@ -265,6 +261,7 @@ export declare class JupyterGISModel implements IJupyterGISModel {
265
261
  private _geolocationChanged;
266
262
  private _tileFeatureCache;
267
263
  private _currentSegmentIndex;
264
+ private _currentSegmentIndexChanged;
268
265
  stories: Map<string, IJGISStoryMap>;
269
266
  }
270
267
  export declare namespace JupyterGISModel {
package/lib/model.js CHANGED
@@ -64,6 +64,7 @@ export class JupyterGISModel {
64
64
  this._editingChanged = new Signal(this);
65
65
  this._geolocationChanged = new Signal(this);
66
66
  this._tileFeatureCache = new Map();
67
+ this._currentSegmentIndexChanged = new Signal(this);
67
68
  this.stories = new Map();
68
69
  const { annotationModel, sharedModel, settingRegistry } = options;
69
70
  if (sharedModel) {
@@ -339,6 +340,10 @@ export class JupyterGISModel {
339
340
  getLayer(id) {
340
341
  return this.sharedModel.getLayer(id);
341
342
  }
343
+ getLayerOrSource(id) {
344
+ var _a;
345
+ return (_a = this.sharedModel.getLayer(id)) !== null && _a !== void 0 ? _a : this.sharedModel.getLayerSource(id);
346
+ }
342
347
  getSource(id) {
343
348
  return this.sharedModel.getLayerSource(id);
344
349
  }
@@ -356,22 +361,6 @@ export class JupyterGISModel {
356
361
  }
357
362
  return sources;
358
363
  }
359
- /**
360
- * Get the list of layers using a source.
361
- *
362
- * @param id - the source id.
363
- * @returns a list of layer ids that use the source.
364
- */
365
- getLayersBySource(id) {
366
- const usingLayers = [];
367
- Object.entries(this.getLayers() || {}).forEach(([layerId, layer]) => {
368
- var _a;
369
- if (((_a = layer.parameters) === null || _a === void 0 ? void 0 : _a.source) === id) {
370
- usingLayers.push(layerId);
371
- }
372
- });
373
- return usingLayers;
374
- }
375
364
  /**
376
365
  * Add a layer group in the layer tree.
377
366
  *
@@ -427,9 +416,14 @@ export class JupyterGISModel {
427
416
  });
428
417
  }
429
418
  else {
430
- this.sharedModel.removeSource(source_id);
419
+ if (source_id) {
420
+ this.removeSource(source_id);
421
+ }
431
422
  }
432
423
  }
424
+ removeSource(sourceId) {
425
+ this.sharedModel.removeSource(sourceId);
426
+ }
433
427
  setOptions(value) {
434
428
  this._sharedModel.options = value;
435
429
  }
@@ -525,6 +519,10 @@ export class JupyterGISModel {
525
519
  */
526
520
  setCurrentSegmentIndex(index) {
527
521
  this._currentSegmentIndex = index;
522
+ this._currentSegmentIndexChanged.emit(index);
523
+ }
524
+ get currentSegmentIndexChanged() {
525
+ return this._currentSegmentIndexChanged;
528
526
  }
529
527
  /**
530
528
  * Adds a story segment from the current map view
@@ -1,6 +1,6 @@
1
- export * from '../../_interface/processing/centroids';
2
- export * from '../../_interface/processing/convexHull';
3
- export * from '../../_interface/processing/concaveHull';
4
1
  export * from '../../_interface/processing/buffer';
2
+ export * from '../../_interface/processing/convexHull';
5
3
  export * from '../../_interface/processing/dissolve';
4
+ export * from '../../_interface/processing/concaveHull';
6
5
  export * from '../../_interface/processing/boundingBoxes';
6
+ export * from '../../_interface/processing/centroids';
@@ -1,7 +1,7 @@
1
1
  //Generated automatically please don't modify directly
2
- export * from '../../_interface/processing/centroids';
3
- export * from '../../_interface/processing/convexHull';
4
- export * from '../../_interface/processing/concaveHull';
5
2
  export * from '../../_interface/processing/buffer';
3
+ export * from '../../_interface/processing/convexHull';
6
4
  export * from '../../_interface/processing/dissolve';
5
+ export * from '../../_interface/processing/concaveHull';
7
6
  export * from '../../_interface/processing/boundingBoxes';
7
+ export * from '../../_interface/processing/centroids';
@@ -1,2 +1,2 @@
1
- export type ProcessingType = 'Centroids' | 'ConvexHull' | 'ConcaveHull' | 'Buffer' | 'Dissolve' | 'BoundingBoxes';
1
+ export type ProcessingType = 'Buffer' | 'ConvexHull' | 'Dissolve' | 'ConcaveHull' | 'BoundingBoxes' | 'Centroids';
2
2
  export declare const processingList: string[];
@@ -1,8 +1,8 @@
1
1
  export const processingList = [
2
- 'Centroids',
3
- 'ConvexHull',
4
- 'ConcaveHull',
5
2
  'Buffer',
3
+ 'ConvexHull',
6
4
  'Dissolve',
5
+ 'ConcaveHull',
7
6
  'BoundingBoxes',
7
+ 'Centroids',
8
8
  ];
@@ -1,12 +1,14 @@
1
1
  [
2
2
  {
3
- "description": "Centroids",
4
- "name": "centroids",
5
- "operationParams": [],
6
- "label": "Centroids",
3
+ "description": "Buffer",
4
+ "name": "buffer",
5
+ "label": "Buffer",
6
+ "operationParams": [
7
+ "bufferDistance"
8
+ ],
7
9
  "operations": {
8
10
  "gdalFunction": "ogr2ogr",
9
- "sql": "SELECT ST_Centroid(geometry) AS geometry, * FROM \"{layerName}\""
11
+ "sql": "SELECT ST_Union(ST_Buffer(geometry, {bufferDistance})) AS geometry, * FROM \"{layerName}\""
10
12
  },
11
13
  "type": "vector"
12
14
  },
@@ -22,42 +24,29 @@
22
24
  "type": "vector"
23
25
  },
24
26
  {
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
- },
38
- {
39
- "description": "Buffer",
40
- "name": "buffer",
41
- "label": "Buffer",
27
+ "description": "Dissolve",
28
+ "name": "dissolve",
42
29
  "operationParams": [
43
- "bufferDistance"
30
+ "dissolveField"
44
31
  ],
32
+ "label": "Dissolve",
45
33
  "operations": {
46
34
  "gdalFunction": "ogr2ogr",
47
- "sql": "SELECT ST_Union(ST_Buffer(geometry, {bufferDistance})) AS geometry, * FROM \"{layerName}\""
35
+ "sql": "SELECT ST_Union(geometry) AS geometry, {dissolveField} FROM \"{layerName}\" GROUP BY {dissolveField}"
48
36
  },
49
37
  "type": "vector"
50
38
  },
51
39
  {
52
- "description": "Dissolve",
53
- "name": "dissolve",
40
+ "description": "ConcaveHull",
41
+ "name": "concaveHull",
54
42
  "operationParams": [
55
- "dissolveField"
43
+ "pctconvex",
44
+ "allowHoles"
56
45
  ],
57
- "label": "Dissolve",
46
+ "label": "Concave Hull",
58
47
  "operations": {
59
- "gdalFunction": "ogr2ogr",
60
- "sql": "SELECT ST_Union(geometry) AS geometry, {dissolveField} FROM \"{layerName}\" GROUP BY {dissolveField}"
48
+ "sql": "SELECT ST_ConcaveHull(geometry,{pctconvex},{allowHoles}) AS geometry, * FROM \"{layerName}\"",
49
+ "gdalFunction": "ogr2ogr"
61
50
  },
62
51
  "type": "vector"
63
52
  },
@@ -71,5 +60,16 @@
71
60
  "gdalFunction": "ogr2ogr"
72
61
  },
73
62
  "type": "vector"
63
+ },
64
+ {
65
+ "description": "Centroids",
66
+ "name": "centroids",
67
+ "operationParams": [],
68
+ "label": "Centroids",
69
+ "operations": {
70
+ "gdalFunction": "ogr2ogr",
71
+ "sql": "SELECT ST_Centroid(geometry) AS geometry, * FROM \"{layerName}\""
72
+ },
73
+ "type": "vector"
74
74
  }
75
75
  ]
@@ -94,6 +94,11 @@
94
94
  "type": "object",
95
95
  "description": "The color/style override",
96
96
  "default": {}
97
+ },
98
+ "sourceProperties": {
99
+ "type": "object",
100
+ "description": "The symbology source override",
101
+ "default": {}
97
102
  }
98
103
  }
99
104
  },
@@ -33,8 +33,7 @@
33
33
  "default": "Single Symbol"
34
34
  },
35
35
  "value": {
36
- "type": "string",
37
- "default": ""
36
+ "type": "string"
38
37
  },
39
38
  "method": {
40
39
  "type": "string",
@@ -68,7 +67,6 @@
68
67
  "additionalProperties": false,
69
68
  "default": {
70
69
  "renderType": "Single Symbol",
71
- "value": "",
72
70
  "method": "color",
73
71
  "colorRamp": "viridis",
74
72
  "nClasses": "9",
@@ -55,7 +55,7 @@
55
55
  "properties": {
56
56
  "renderType": {
57
57
  "type": "string",
58
- "default": "Single Symbol"
58
+ "default": "Singleband Pseudocolor"
59
59
  },
60
60
  "band": {
61
61
  "type": "number",
@@ -98,7 +98,7 @@
98
98
  },
99
99
  "additionalProperties": false,
100
100
  "default": {
101
- "renderType": "Single Symbol",
101
+ "renderType": "Singleband Pseudocolor",
102
102
  "band": 1,
103
103
  "redBand": 1,
104
104
  "greenBand": 2,
@@ -6,20 +6,13 @@
6
6
  "additionalProperties": false,
7
7
  "properties": {
8
8
  "path": {
9
- "type": "string",
10
- "description": "The local path to a GeoJSON file",
11
- "default": ""
9
+ "type": ["string", "null"],
10
+ "description": "The local path to a GeoJSON file"
12
11
  },
13
12
  "data": {
14
13
  "type": "object",
15
14
  "description": "The GeoJSON data",
16
15
  "$ref": "./geojson.json"
17
- },
18
- "valid": {
19
- "type": "boolean",
20
- "description": "Whether the data are valid or not",
21
- "readOnly": true,
22
- "default": false
23
16
  }
24
17
  }
25
18
  }
@@ -7,8 +7,7 @@
7
7
  "properties": {
8
8
  "url": {
9
9
  "type": "string",
10
- "description": "The url to the tile provider",
11
- "default": ""
10
+ "description": "The url to the tile provider"
12
11
  },
13
12
  "minZoom": {
14
13
  "type": "number",
@@ -58,6 +57,7 @@
58
57
  },
59
58
  "urlParameters": {
60
59
  "type": "object",
60
+ "title": "URL parameters",
61
61
  "additionalProperties": {
62
62
  "type": "string"
63
63
  },
@@ -65,6 +65,7 @@
65
65
  },
66
66
  "interpolate": {
67
67
  "type": "boolean",
68
+ "title": "Interpolate",
68
69
  "description": "Interpolate between grid cells when overzooming?",
69
70
  "default": false
70
71
  }
@@ -7,8 +7,7 @@
7
7
  "properties": {
8
8
  "url": {
9
9
  "type": "string",
10
- "description": "The url to the tile provider",
11
- "default": ""
10
+ "description": "The url to the tile provider"
12
11
  },
13
12
  "minZoom": {
14
13
  "type": "number",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupytergis/schema",
3
- "version": "0.13.3",
3
+ "version": "0.14.0",
4
4
  "description": "A JupyterGIS schema package.",
5
5
  "keywords": [
6
6
  "jupytergis"