jupytergis-core 0.4.4__py3-none-any.whl → 0.5.0__py3-none-any.whl
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.
- jupytergis_core/_version.py +1 -1
- jupytergis_core/jgis_ydoc.py +13 -1
- jupytergis_core/schema/__init__.py +24 -0
- jupytergis_core/schema/interfaces/__init__.py +3 -0
- jupytergis_core/schema/interfaces/export/__init__.py +3 -0
- jupytergis_core/schema/interfaces/export/exportGeojson.py +18 -0
- jupytergis_core/schema/interfaces/export/exportGeotiff.py +28 -0
- jupytergis_core/schema/interfaces/geojson.py +502 -0
- jupytergis_core/schema/interfaces/geojsonsource.py +20 -0
- jupytergis_core/schema/interfaces/processing/__init__.py +3 -0
- jupytergis_core/schema/interfaces/processing/buffer.py +23 -0
- jupytergis_core/schema/interfaces/processing/dissolve.py +24 -0
- jupytergis_core/schema/interfaces/project/__init__.py +3 -0
- jupytergis_core/schema/interfaces/project/jgis.py +136 -0
- jupytergis_core/schema/interfaces/project/layers/__init__.py +3 -0
- jupytergis_core/schema/interfaces/project/layers/heatmapLayer.py +30 -0
- jupytergis_core/schema/interfaces/project/layers/hillshadeLayer.py +19 -0
- jupytergis_core/schema/interfaces/project/layers/imageLayer.py +19 -0
- jupytergis_core/schema/interfaces/project/layers/rasterlayer.py +19 -0
- jupytergis_core/schema/interfaces/project/layers/vectorTileLayer.py +30 -0
- jupytergis_core/schema/interfaces/project/layers/vectorlayer.py +64 -0
- jupytergis_core/schema/interfaces/project/layers/webGlLayer.py +57 -0
- jupytergis_core/schema/interfaces/project/sources/__init__.py +3 -0
- jupytergis_core/schema/interfaces/project/sources/geoTiffSource.py +27 -0
- jupytergis_core/schema/interfaces/project/sources/imageSource.py +29 -0
- jupytergis_core/schema/interfaces/project/sources/rasterDemSource.py +23 -0
- jupytergis_core/schema/interfaces/project/sources/rastersource.py +36 -0
- jupytergis_core/schema/interfaces/project/sources/shapefileSource.py +31 -0
- jupytergis_core/schema/interfaces/project/sources/vectortilesource.py +27 -0
- jupytergis_core/schema/interfaces/project/sources/videoSource.py +30 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/package.json +7 -5
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/jupytergis-settings.json +13 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/package.json.orig +123 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/377.2ba30d7a93a2a2819b1b.js +1 -0
- jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.324a42416a3ebbd3b351.js → jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js +2 -2
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/893.0bf9ee057c7e4666c364.js +1 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.13deb14ad0c10be40859.js +1 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.6e9db18c72727800e9ea.js +1 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/third-party-licenses.json +6 -6
- {jupytergis_core-0.4.4.dist-info → jupytergis_core-0.5.0.dist-info}/METADATA +1 -1
- jupytergis_core-0.5.0.dist-info/RECORD +112 -0
- jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/31.e9cd0d7591d75f6758de.js +0 -1
- jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/713.32aef4e64952eb9ee4ea.js +0 -1
- jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.2b2f966775f1e2f4e94e.js +0 -1
- jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.92b9caad6441d1ab3223.js +0 -1
- jupytergis_core-0.4.4.dist-info/RECORD +0 -82
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/etc/jupyter/jupyter_server_config.d/jupytergis_core.json +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/026680ab0cd1523edc87.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/02ff7d503bbd90b21fc4.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/062a9554f6b4caac9713.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/064f37cecb8130ad66e8.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/08da2741746ddab81d04.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/0c6a0352b82839119f95.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/13c485bb93f5567f02fd.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1474207a6b3ca1001e78.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/14b98240613d5256c621.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/154.0d16fbe1d1182d138b2c.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1b97ea0f2b3af717cffa.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1d440270da19a2f22fee.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1ed164e010f3c0306d15.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2218dfba22fc2b08e948.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/234.2f0fc49f516ad354aa18.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js.LICENSE.txt +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2ab791b60c4058e664f8.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2b24b6a745c11511f055.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2d676bc0a01c2cd2fccb.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2f02309ea499725612ea.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/32c7a73662cceb5bb1d7.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/350eec4ce9ae4bc10bca.wasm +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/363ca7c5f78deb6fd033.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/376.58a6410b7089dea5b0d5.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3ae0bf244442de7efc35.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3d48be10ffea86eb15de.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/407.da5d00862f4879fe3c9c.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/415edc3fa381260cf31e.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/42cbddf5e883673bc4e2.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/432.df2bee6966bdd5a48317.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/472.b2ea9ebc35d5ad4e1fcc.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/527ef171d5df15dc7da5.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/542.477a73b8682de0e8d45e.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/552.3f267df0d8b2c9ef2c40.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/555.be80e60305924af2e139.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5bb02252f243f8c7494f.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5d181edc3c046e1454a1.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5f32ad48aefe00e51312.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/618.86523276f857e0a3362e.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6e4f6b4d0dfca3bd4450.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/71d436fb44627b6bfbd7.png +0 -0
- /jupytergis_core-0.4.4.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.324a42416a3ebbd3b351.js.LICENSE.txt → /jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js.LICENSE.txt +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7b225dc2d37cd3582156.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js.LICENSE.txt +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/843ab141e62516b9df5c.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8814e17f6b110e8f3e42.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88b2ae0d29edb684eae5.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/971a42d174dd17b9451a.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a3c609f5bff95a7a53be.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a86d626c9ed2e222d190.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a9e286b0c0264a9fc737.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ab309078b494f850430a.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b15e3989b7b90b5a8d9d.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b36717fbb06f21d53b01.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ba4b6e82fe5a816c40a5.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/bb2b310570da7a3587e9.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/be92bcf7bb99753b4b3d.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c2ffa011d7f52a0ddf45.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/d83457b1b925c1718f6d.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/e473e1e9f20af114bbb4.data +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/f2617180c6907263a7ff.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/fe99a6dbf5a71d308989.png +0 -0
- {jupytergis_core-0.4.4.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/style.js +0 -0
- {jupytergis_core-0.4.4.dist-info → jupytergis_core-0.5.0.dist-info}/WHEEL +0 -0
- {jupytergis_core-0.4.4.dist-info → jupytergis_core-0.5.0.dist-info}/entry_points.txt +0 -0
- {jupytergis_core-0.4.4.dist-info → jupytergis_core-0.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/jgis.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Any, Dict, List, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel, constr
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class LayerType(Enum):
|
|
14
|
+
RasterLayer = 'RasterLayer'
|
|
15
|
+
VectorLayer = 'VectorLayer'
|
|
16
|
+
VectorTileLayer = 'VectorTileLayer'
|
|
17
|
+
HillshadeLayer = 'HillshadeLayer'
|
|
18
|
+
WebGlLayer = 'WebGlLayer'
|
|
19
|
+
ImageLayer = 'ImageLayer'
|
|
20
|
+
HeatmapLayer = 'HeatmapLayer'
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class SourceType(Enum):
|
|
24
|
+
RasterSource = 'RasterSource'
|
|
25
|
+
VectorTileSource = 'VectorTileSource'
|
|
26
|
+
GeoJSONSource = 'GeoJSONSource'
|
|
27
|
+
RasterDemSource = 'RasterDemSource'
|
|
28
|
+
VideoSource = 'VideoSource'
|
|
29
|
+
ImageSource = 'ImageSource'
|
|
30
|
+
ShapefileSource = 'ShapefileSource'
|
|
31
|
+
GeoTiffSource = 'GeoTiffSource'
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class JGISSource(BaseModel):
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
extra='forbid',
|
|
37
|
+
)
|
|
38
|
+
name: str
|
|
39
|
+
type: SourceType
|
|
40
|
+
parameters: Optional[Dict[str, Any]] = None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class JGISSources(RootModel[Optional[Dict[str, JGISSource]]]):
|
|
44
|
+
root: Optional[Dict[str, JGISSource]] = None
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class JGISOptions(BaseModel):
|
|
48
|
+
model_config = ConfigDict(
|
|
49
|
+
extra='forbid',
|
|
50
|
+
)
|
|
51
|
+
latitude: Optional[float] = 0
|
|
52
|
+
longitude: Optional[float] = 0
|
|
53
|
+
zoom: Optional[float] = 0
|
|
54
|
+
bearing: Optional[float] = 0
|
|
55
|
+
pitch: Optional[float] = 0
|
|
56
|
+
extent: Optional[List[float]] = None
|
|
57
|
+
projection: Optional[str] = 'EPSG:3857'
|
|
58
|
+
useExtent: Optional[bool] = False
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class Operator(Enum):
|
|
62
|
+
field__ = '=='
|
|
63
|
+
field___1 = '!='
|
|
64
|
+
field_ = '>'
|
|
65
|
+
field__1 = '<'
|
|
66
|
+
field___2 = '>='
|
|
67
|
+
field___3 = '<='
|
|
68
|
+
between = 'between'
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class JGISFilterItem(BaseModel):
|
|
72
|
+
model_config = ConfigDict(
|
|
73
|
+
extra='forbid',
|
|
74
|
+
)
|
|
75
|
+
operator: Operator
|
|
76
|
+
feature: str
|
|
77
|
+
value: Union[str, float]
|
|
78
|
+
betweenMin: Optional[float] = None
|
|
79
|
+
betweenMax: Optional[float] = None
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class JGISFilter(BaseModel):
|
|
83
|
+
model_config = ConfigDict(
|
|
84
|
+
extra='forbid',
|
|
85
|
+
)
|
|
86
|
+
logicalOp: str
|
|
87
|
+
appliedFilters: List[JGISFilterItem]
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class JGISLayer(BaseModel):
|
|
91
|
+
model_config = ConfigDict(
|
|
92
|
+
extra='forbid',
|
|
93
|
+
)
|
|
94
|
+
name: str
|
|
95
|
+
type: LayerType
|
|
96
|
+
visible: bool
|
|
97
|
+
parameters: Optional[Dict[str, Any]] = None
|
|
98
|
+
filters: Optional[JGISFilter] = None
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class JGISLayers(RootModel[Optional[Dict[str, JGISLayer]]]):
|
|
102
|
+
root: Optional[Dict[str, JGISLayer]] = None
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class IJGISContent(BaseModel):
|
|
106
|
+
model_config = ConfigDict(
|
|
107
|
+
extra='forbid',
|
|
108
|
+
)
|
|
109
|
+
schemaVersion: Optional[str] = '0.5.0'
|
|
110
|
+
layers: JGISLayers
|
|
111
|
+
sources: JGISSources
|
|
112
|
+
layerTree: Optional[JGISLayerTree] = None
|
|
113
|
+
options: Optional[JGISOptions] = None
|
|
114
|
+
metadata: Optional[Dict[constr(pattern=r'^.*$'), str]] = None
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class JGISLayerGroup(BaseModel):
|
|
118
|
+
model_config = ConfigDict(
|
|
119
|
+
extra='forbid',
|
|
120
|
+
)
|
|
121
|
+
name: str
|
|
122
|
+
layers: List[JGISLayerItem]
|
|
123
|
+
visible: Optional[bool] = True
|
|
124
|
+
parameters: Optional[Dict[str, Any]] = None
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class JGISLayerItem(RootModel[Union[str, JGISLayerGroup]]):
|
|
128
|
+
root: Union[str, JGISLayerGroup] = Field(..., title='IJGISLayerItem')
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class JGISLayerTree(RootModel[List[JGISLayerItem]]):
|
|
132
|
+
root: List[JGISLayerItem] = Field(..., title='IJGISLayerTree')
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
IJGISContent.model_rebuild()
|
|
136
|
+
JGISLayerGroup.model_rebuild()
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/heatmapLayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SymbologyState(BaseModel):
|
|
13
|
+
renderType: str
|
|
14
|
+
colorRamp: Optional[str] = 'cool'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class IHeatmapLayer(BaseModel):
|
|
18
|
+
model_config = ConfigDict(
|
|
19
|
+
extra='forbid',
|
|
20
|
+
)
|
|
21
|
+
source: str = Field(..., description='The id of the source')
|
|
22
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
23
|
+
1, description='The opacity of the source'
|
|
24
|
+
)
|
|
25
|
+
radius: float = Field(..., description='Radius size in pixels')
|
|
26
|
+
blur: float = Field(..., description='Blur size in pixels')
|
|
27
|
+
color: Optional[List[str]] = ['#00f', '#0ff', '#0f0', '#ff0', '#f00']
|
|
28
|
+
symbologyState: Optional[SymbologyState] = Field(
|
|
29
|
+
None, description='The state of the symbology panel options'
|
|
30
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/hillshadeLayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IHillshadeLayer(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
source: str = Field(..., description='The id of the source')
|
|
17
|
+
shadowColor: Optional[str] = Field(
|
|
18
|
+
'#473B24', description='The color of the the shadows'
|
|
19
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/imageLayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IImageLayer(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
source: str = Field(..., description='The id of the source')
|
|
17
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
18
|
+
1, description='The opacity of the source'
|
|
19
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/rasterlayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IRasterLayer(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
source: str = Field(..., description='The id of the source')
|
|
17
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
18
|
+
1, description='The opacity of the source'
|
|
19
|
+
)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/vectorTileLayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Any, Dict, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Type(Enum):
|
|
14
|
+
circle = 'circle'
|
|
15
|
+
fill = 'fill'
|
|
16
|
+
line = 'line'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class IVectorTileLayer(BaseModel):
|
|
20
|
+
model_config = ConfigDict(
|
|
21
|
+
extra='forbid',
|
|
22
|
+
)
|
|
23
|
+
source: str = Field(..., description='The id of the source')
|
|
24
|
+
type: Type = Field(..., description='The type of vector layer')
|
|
25
|
+
color: Optional[Dict[str, Any]] = Field(
|
|
26
|
+
None, description='The color of the the object'
|
|
27
|
+
)
|
|
28
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
29
|
+
1, description='The opacity of the the object'
|
|
30
|
+
)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/vectorlayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Any, Dict, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Type(Enum):
|
|
14
|
+
circle = 'circle'
|
|
15
|
+
fill = 'fill'
|
|
16
|
+
line = 'line'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class RenderType(Enum):
|
|
20
|
+
Single_Symbol = 'Single Symbol'
|
|
21
|
+
Graduated = 'Graduated'
|
|
22
|
+
Categorized = 'Categorized'
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Method(Enum):
|
|
26
|
+
color = 'color'
|
|
27
|
+
radius = 'radius'
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class Mode(Enum):
|
|
31
|
+
quantile = 'quantile'
|
|
32
|
+
equal_interval = 'equal interval'
|
|
33
|
+
jenks = 'jenks'
|
|
34
|
+
pretty = 'pretty'
|
|
35
|
+
logarithmic = 'logarithmic'
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class SymbologyState(BaseModel):
|
|
39
|
+
model_config = ConfigDict(
|
|
40
|
+
extra='forbid',
|
|
41
|
+
)
|
|
42
|
+
renderType: RenderType
|
|
43
|
+
value: Optional[str] = None
|
|
44
|
+
method: Optional[Method] = None
|
|
45
|
+
colorRamp: Optional[str] = 'cool'
|
|
46
|
+
nClasses: Optional[str] = '9'
|
|
47
|
+
mode: Optional[Mode] = 'equal interval'
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class IVectorLayer(BaseModel):
|
|
51
|
+
model_config = ConfigDict(
|
|
52
|
+
extra='forbid',
|
|
53
|
+
)
|
|
54
|
+
source: str = Field(..., description='The id of the source')
|
|
55
|
+
type: Type = Field(..., description='The type of vector layer')
|
|
56
|
+
color: Optional[Dict[str, Any]] = Field(
|
|
57
|
+
None, description='The color of the the object'
|
|
58
|
+
)
|
|
59
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
60
|
+
1, description='The opacity of the the object'
|
|
61
|
+
)
|
|
62
|
+
symbologyState: Optional[SymbologyState] = Field(
|
|
63
|
+
None, description='The state of the symbology panel options'
|
|
64
|
+
)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/layers/webGlLayer.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Interpolation(Enum):
|
|
14
|
+
discrete = 'discrete'
|
|
15
|
+
linear = 'linear'
|
|
16
|
+
exact = 'exact'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Mode(Enum):
|
|
20
|
+
continuous = 'continuous'
|
|
21
|
+
equal_interval = 'equal interval'
|
|
22
|
+
quantile = 'quantile'
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class SymbologyState(BaseModel):
|
|
26
|
+
model_config = ConfigDict(
|
|
27
|
+
extra='forbid',
|
|
28
|
+
)
|
|
29
|
+
renderType: str
|
|
30
|
+
band: Optional[float] = None
|
|
31
|
+
redBand: Optional[float] = None
|
|
32
|
+
greenBand: Optional[float] = None
|
|
33
|
+
blueBand: Optional[float] = None
|
|
34
|
+
interpolation: Optional[Interpolation] = None
|
|
35
|
+
colorRamp: Optional[str] = 'cool'
|
|
36
|
+
nClasses: Optional[str] = '9'
|
|
37
|
+
mode: Optional[Mode] = 'equal interval'
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class IWebGlLayer(BaseModel):
|
|
41
|
+
model_config = ConfigDict(
|
|
42
|
+
extra='forbid',
|
|
43
|
+
)
|
|
44
|
+
source: str = Field(..., description='The id of the source')
|
|
45
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
46
|
+
1, description='The opacity of the source'
|
|
47
|
+
)
|
|
48
|
+
color: Optional[
|
|
49
|
+
Union[
|
|
50
|
+
str,
|
|
51
|
+
float,
|
|
52
|
+
List[Union[str, float, List[Union[float, str, List[Union[float, str]]]]]],
|
|
53
|
+
]
|
|
54
|
+
] = Field(None, description='The color of the the object')
|
|
55
|
+
symbologyState: Optional[SymbologyState] = Field(
|
|
56
|
+
None, description='The state of the symbology panel options'
|
|
57
|
+
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/geoTiffSource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Url(BaseModel):
|
|
13
|
+
url: Optional[str] = None
|
|
14
|
+
min: Optional[float] = None
|
|
15
|
+
max: Optional[float] = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class IGeoTiffSource(BaseModel):
|
|
19
|
+
model_config = ConfigDict(
|
|
20
|
+
extra='forbid',
|
|
21
|
+
)
|
|
22
|
+
urls: List[Url] = Field(..., description='URLs', min_length=1)
|
|
23
|
+
normalize: Optional[bool] = True
|
|
24
|
+
wrapX: Optional[bool] = False
|
|
25
|
+
interpolate: Optional[bool] = Field(
|
|
26
|
+
False, description='Interpolate between grid cells when overzooming?'
|
|
27
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/imageSource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Coordinate(RootModel[List[float]]):
|
|
13
|
+
root: List[float]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class IImageSource(BaseModel):
|
|
17
|
+
model_config = ConfigDict(
|
|
18
|
+
extra='forbid',
|
|
19
|
+
)
|
|
20
|
+
path: str = Field(..., description='Path that points to an image')
|
|
21
|
+
coordinates: List[Coordinate] = Field(
|
|
22
|
+
...,
|
|
23
|
+
description='Corners of image specified in longitude, latitude pairs',
|
|
24
|
+
max_length=4,
|
|
25
|
+
min_length=4,
|
|
26
|
+
)
|
|
27
|
+
interpolate: Optional[bool] = Field(
|
|
28
|
+
False, description='Interpolate between grid cells when overzooming?'
|
|
29
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/rasterDemSource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IRasterDemSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
17
|
+
attribution: Optional[str] = Field(
|
|
18
|
+
None, description='The attribution for the raster-dem source'
|
|
19
|
+
)
|
|
20
|
+
urlParameters: Optional[Dict[str, str]] = None
|
|
21
|
+
interpolate: Optional[bool] = Field(
|
|
22
|
+
False, description='Interpolate between grid cells when overzooming?'
|
|
23
|
+
)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/rastersource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IRasterSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
17
|
+
minZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
18
|
+
..., description='The minimum zoom level for the raster source'
|
|
19
|
+
)
|
|
20
|
+
maxZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
21
|
+
..., description='The maximum zoom level for the raster source'
|
|
22
|
+
)
|
|
23
|
+
attribution: Optional[str] = Field(
|
|
24
|
+
'', description='The attribution for the raster source'
|
|
25
|
+
)
|
|
26
|
+
htmlAttribution: Optional[str] = Field(
|
|
27
|
+
'', description='The html attribution for the raster source'
|
|
28
|
+
)
|
|
29
|
+
provider: Optional[str] = Field('', description='The map provider')
|
|
30
|
+
bounds: Optional[List[List[float]]] = Field(
|
|
31
|
+
[], description='The bounds of the source'
|
|
32
|
+
)
|
|
33
|
+
urlParameters: Optional[Dict[str, str]] = {}
|
|
34
|
+
interpolate: Optional[bool] = Field(
|
|
35
|
+
False, description='Interpolate between grid cells when overzooming?'
|
|
36
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/shapefileSource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IShapefileSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
path: str = Field(
|
|
17
|
+
..., description='The path to the shapefile (.shp, .zip, or folder URL).'
|
|
18
|
+
)
|
|
19
|
+
attribution: Optional[str] = Field(
|
|
20
|
+
'', description='The attribution for the shapefile source.'
|
|
21
|
+
)
|
|
22
|
+
projection: Optional[str] = Field(
|
|
23
|
+
'WGS84', description='The projection information for the shapefile (optional).'
|
|
24
|
+
)
|
|
25
|
+
encoding: Optional[str] = Field(
|
|
26
|
+
'UTF-8', description="The encoding used for the shapefile's DBF (optional)."
|
|
27
|
+
)
|
|
28
|
+
additionalFiles: Optional[Dict[str, str]] = Field(
|
|
29
|
+
{},
|
|
30
|
+
description='Additional files associated with the shapefile (e.g., .dbf, .prj, .cpg).',
|
|
31
|
+
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/vectortilesource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IVectorTileSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
17
|
+
minZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
18
|
+
..., description='The minimum zoom level for the vector source'
|
|
19
|
+
)
|
|
20
|
+
maxZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
21
|
+
..., description='The maximum zoom level for the vector source'
|
|
22
|
+
)
|
|
23
|
+
attribution: Optional[str] = Field(
|
|
24
|
+
None, description='The attribution for the vector source'
|
|
25
|
+
)
|
|
26
|
+
provider: Optional[str] = Field(None, description='The map provider')
|
|
27
|
+
urlParameters: Optional[Dict[str, str]] = None
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: project/sources/videoSource.json
|
|
3
|
+
# timestamp: 2025-05-08T01:23:34+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Coordinate(RootModel[List[float]]):
|
|
13
|
+
root: List[float]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class IVideoSource(BaseModel):
|
|
17
|
+
model_config = ConfigDict(
|
|
18
|
+
extra='forbid',
|
|
19
|
+
)
|
|
20
|
+
urls: List[str] = Field(
|
|
21
|
+
...,
|
|
22
|
+
description='URLs to video content in order of preferred format',
|
|
23
|
+
min_length=1,
|
|
24
|
+
)
|
|
25
|
+
coordinates: List[Coordinate] = Field(
|
|
26
|
+
...,
|
|
27
|
+
description='Corners of video specified in longitude, latitude pairs',
|
|
28
|
+
max_length=4,
|
|
29
|
+
min_length=4,
|
|
30
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupytergis/jupytergis-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "JupyterGIS core extension",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"author": "JupyterGIS contributors",
|
|
16
16
|
"files": [
|
|
17
17
|
"lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
|
|
18
|
-
"style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}"
|
|
18
|
+
"style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
|
|
19
|
+
"schema/**/*.{json,js,ts}"
|
|
19
20
|
],
|
|
20
21
|
"main": "lib/index.js",
|
|
21
22
|
"types": "lib/index.d.ts",
|
|
@@ -53,8 +54,8 @@
|
|
|
53
54
|
},
|
|
54
55
|
"dependencies": {
|
|
55
56
|
"@jupyter/collaborative-drive": "^3.0.0",
|
|
56
|
-
"@jupytergis/base": "^0.
|
|
57
|
-
"@jupytergis/schema": "^0.
|
|
57
|
+
"@jupytergis/base": "^0.5.0",
|
|
58
|
+
"@jupytergis/schema": "^0.5.0",
|
|
58
59
|
"@jupyterlab/application": "^4.3.0",
|
|
59
60
|
"@jupyterlab/apputils": "^4.3.0",
|
|
60
61
|
"@jupyterlab/docregistry": "^4.3.0",
|
|
@@ -91,6 +92,7 @@
|
|
|
91
92
|
"access": "public"
|
|
92
93
|
},
|
|
93
94
|
"jupyterlab": {
|
|
95
|
+
"schemaDir": "schema",
|
|
94
96
|
"discovery": {
|
|
95
97
|
"server": {
|
|
96
98
|
"managers": [
|
|
@@ -118,7 +120,7 @@
|
|
|
118
120
|
}
|
|
119
121
|
},
|
|
120
122
|
"_build": {
|
|
121
|
-
"load": "static/remoteEntry.
|
|
123
|
+
"load": "static/remoteEntry.6e9db18c72727800e9ea.js",
|
|
122
124
|
"extension": "./extension",
|
|
123
125
|
"style": "./style"
|
|
124
126
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "JupyterGIS Settings",
|
|
3
|
+
"description": "Settings for the JupyterGIS extension.",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"proxyUrl": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"title": "Proxy URL",
|
|
9
|
+
"description": "The proxy URL to use for external requests.",
|
|
10
|
+
"default": "https://corsproxy.io"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|