@deck.gl/geo-layers 8.9.0-beta.2 → 8.9.0-beta.4

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.
Files changed (59) hide show
  1. package/dist/dist.dev.js +20969 -13277
  2. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
  3. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  4. package/dist/es5/index.js +8 -0
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  7. package/dist/es5/mvt-layer/mvt-layer.js +1 -0
  8. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  9. package/dist/es5/tile-3d-layer/tile-3d-layer.js +6 -11
  10. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  11. package/dist/es5/tile-layer/tile-layer.js +6 -12
  12. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  13. package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
  14. package/dist/es5/wms-layer/wms-layer.js +373 -0
  15. package/dist/es5/wms-layer/wms-layer.js.map +1 -0
  16. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
  17. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
  18. package/dist/esm/index.js +1 -0
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
  21. package/dist/esm/mvt-layer/mvt-layer.js +2 -1
  22. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  23. package/dist/esm/tile-3d-layer/tile-3d-layer.js +6 -11
  24. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
  25. package/dist/esm/tile-layer/tile-layer.js +6 -12
  26. package/dist/esm/tile-layer/tile-layer.js.map +1 -1
  27. package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
  28. package/dist/esm/wms-layer/wms-layer.js +228 -0
  29. package/dist/esm/wms-layer/wms-layer.js.map +1 -0
  30. package/dist.min.js +66 -55
  31. package/package.json +5 -3
  32. package/src/geo-cell-layer/GeoCellLayer.ts +2 -2
  33. package/src/h3-layers/h3-hexagon-layer.ts +2 -6
  34. package/src/index.ts +2 -0
  35. package/src/mesh-layer/mesh-layer.ts +3 -3
  36. package/src/mvt-layer/mvt-layer.ts +15 -11
  37. package/src/tile-3d-layer/tile-3d-layer.ts +9 -8
  38. package/src/tile-layer/tile-layer.ts +10 -9
  39. package/src/tileset-2d/tileset-2d.ts +1 -0
  40. package/src/wms-layer/wms-layer.ts +247 -0
  41. package/typed/geo-cell-layer/GeoCellLayer.d.ts +2 -2
  42. package/typed/geo-cell-layer/GeoCellLayer.d.ts.map +1 -1
  43. package/typed/h3-layers/h3-hexagon-layer.d.ts +3 -3
  44. package/typed/h3-layers/h3-hexagon-layer.d.ts.map +1 -1
  45. package/typed/imagery-layer/imagery-layer.d.ts +53 -0
  46. package/typed/imagery-layer/imagery-layer.d.ts.map +1 -0
  47. package/typed/index.d.ts +2 -0
  48. package/typed/index.d.ts.map +1 -1
  49. package/typed/mesh-layer/mesh-layer.d.ts +3 -3
  50. package/typed/mesh-layer/mesh-layer.d.ts.map +1 -1
  51. package/typed/mvt-layer/mvt-layer.d.ts +4 -4
  52. package/typed/mvt-layer/mvt-layer.d.ts.map +1 -1
  53. package/typed/tile-3d-layer/tile-3d-layer.d.ts +2 -1
  54. package/typed/tile-3d-layer/tile-3d-layer.d.ts.map +1 -1
  55. package/typed/tile-layer/tile-layer.d.ts +4 -2
  56. package/typed/tile-layer/tile-layer.d.ts.map +1 -1
  57. package/typed/tileset-2d/tileset-2d.d.ts.map +1 -1
  58. package/typed/wms-layer/wms-layer.d.ts +57 -0
  59. package/typed/wms-layer/wms-layer.d.ts.map +1 -0
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@deck.gl/geo-layers",
3
3
  "description": "deck.gl layers supporting geospatial use cases and GIS formats",
4
4
  "license": "MIT",
5
- "version": "8.9.0-beta.2",
5
+ "version": "8.9.0-beta.4",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -37,10 +37,12 @@
37
37
  "@loaders.gl/schema": "^3.3.1",
38
38
  "@loaders.gl/terrain": "^3.3.1",
39
39
  "@loaders.gl/tiles": "^3.3.1",
40
+ "@loaders.gl/wms": "^3.3.1",
40
41
  "@luma.gl/constants": "^8.5.16",
41
42
  "@luma.gl/experimental": "^8.5.16",
42
43
  "@math.gl/core": "^3.6.2",
43
44
  "@math.gl/culling": "^3.6.2",
45
+ "@math.gl/proj4": "^3.6.3",
44
46
  "@math.gl/web-mercator": "^3.6.2",
45
47
  "@types/geojson": "^7946.0.8",
46
48
  "h3-js": "^3.7.0",
@@ -51,8 +53,8 @@
51
53
  "@deck.gl/extensions": "^8.0.0",
52
54
  "@deck.gl/layers": "^8.0.0",
53
55
  "@deck.gl/mesh-layers": "^8.0.0",
54
- "@loaders.gl/core": "^3.0.0",
56
+ "@loaders.gl/core": "^3.3.0",
55
57
  "@luma.gl/core": "^8.0.0"
56
58
  },
57
- "gitHead": "5dae086e4f3eb46c30d8e761f9d600be4f68e949"
59
+ "gitHead": "f7c0eeaed1e62b0ae44ee45136b444f647e6cbd9"
58
60
  }
@@ -1,4 +1,4 @@
1
- import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';
1
+ import {CompositeLayer, Layer, LayersList, DefaultProps} from '@deck.gl/core';
2
2
  import {PolygonLayer, PolygonLayerProps} from '@deck.gl/layers';
3
3
 
4
4
  const defaultProps: DefaultProps<GeoCellLayerProps> = {
@@ -6,7 +6,7 @@ const defaultProps: DefaultProps<GeoCellLayerProps> = {
6
6
  };
7
7
 
8
8
  /** All properties supported by GeoCellLayer. */
9
- export type GeoCellLayerProps<DataT = any> = PolygonLayerProps<DataT> & CompositeLayerProps<DataT>;
9
+ export type GeoCellLayerProps<DataT = any> = PolygonLayerProps<DataT>;
10
10
 
11
11
  export default class GeoCellLayer<DataT = any, ExtraProps extends {} = {}> extends CompositeLayer<
12
12
  Required<GeoCellLayerProps<DataT>> & ExtraProps
@@ -12,7 +12,6 @@ import {lerp} from '@math.gl/core';
12
12
  import {
13
13
  AccessorFunction,
14
14
  CompositeLayer,
15
- CompositeLayerProps,
16
15
  createIterable,
17
16
  Layer,
18
17
  LayersList,
@@ -110,8 +109,7 @@ const defaultProps: DefaultProps<H3HexagonLayerProps> = {
110
109
 
111
110
  /** All properties supported by H3HexagonLayer */
112
111
  export type H3HexagonLayerProps<DataT = any> = _H3HexagonLayerProps<DataT> &
113
- PolygonLayerProps<DataT> &
114
- CompositeLayerProps<DataT>;
112
+ PolygonLayerProps<DataT>;
115
113
 
116
114
  /** Props added by the H3HexagonLayer */
117
115
  type _H3HexagonLayerProps<DataT> = {
@@ -148,9 +146,7 @@ type _H3HexagonLayerProps<DataT> = {
148
146
  export default class H3HexagonLayer<
149
147
  DataT = any,
150
148
  ExtraPropsT extends {} = {}
151
- > extends CompositeLayer<
152
- ExtraPropsT & Required<_H3HexagonLayerProps<DataT> & Required<PolygonLayerProps<DataT>>>
153
- > {
149
+ > extends CompositeLayer<ExtraPropsT & Required<H3HexagonLayerProps<DataT>>> {
154
150
  static defaultProps = defaultProps;
155
151
  static layerName = 'H3HexagonLayer';
156
152
 
package/src/index.ts CHANGED
@@ -19,6 +19,7 @@
19
19
  // THE SOFTWARE.
20
20
  /* eslint-disable max-len */
21
21
 
22
+ export {WMSLayer as _WMSLayer} from './wms-layer/wms-layer';
22
23
  export {default as GreatCircleLayer} from './great-circle-layer/great-circle-layer';
23
24
  export {default as S2Layer} from './s2-layer/s2-layer';
24
25
  export {default as QuadkeyLayer} from './quadkey-layer/quadkey-layer';
@@ -34,6 +35,7 @@ export {default as GeohashLayer} from './geohash-layer/geohash-layer';
34
35
  export {default as _GeoCellLayer} from './geo-cell-layer/GeoCellLayer';
35
36
 
36
37
  // Types
38
+ export type {WMSLayerProps} from './wms-layer/wms-layer';
37
39
  export type {H3ClusterLayerProps} from './h3-layers/h3-cluster-layer';
38
40
  export type {H3HexagonLayerProps} from './h3-layers/h3-hexagon-layer';
39
41
  export type {GreatCircleLayerProps} from './great-circle-layer/great-circle-layer';
@@ -27,10 +27,10 @@ const defaultProps: DefaultProps<MeshLayerProps> = {
27
27
  };
28
28
 
29
29
  /** All properties supported by MeshLayer. */
30
- export type MeshLayerProps<DataT = any> = _MeshLayerProps<DataT> & SimpleMeshLayerProps<DataT>;
30
+ export type MeshLayerProps<DataT = any> = _MeshLayerProps & SimpleMeshLayerProps<DataT>;
31
31
 
32
32
  /** Properties added by MeshLayer. */
33
- type _MeshLayerProps<DataT> = {
33
+ type _MeshLayerProps = {
34
34
  /**
35
35
  * PBR material object. _lighting must be pbr for this to work
36
36
  */
@@ -44,7 +44,7 @@ type _MeshLayerProps<DataT> = {
44
44
 
45
45
  export default class MeshLayer<DataT = any, ExtraProps extends {} = {}> extends SimpleMeshLayer<
46
46
  DataT,
47
- Required<_MeshLayerProps<DataT>> & ExtraProps
47
+ Required<_MeshLayerProps> & ExtraProps
48
48
  > {
49
49
  static layerName = 'MeshLayer';
50
50
  static defaultProps = defaultProps;
@@ -27,6 +27,7 @@ import TileLayer, {TiledPickingInfo, TileLayerProps} from '../tile-layer/tile-la
27
27
 
28
28
  import type {Tileset2DProps, TileLoadProps, GeoBoundingBox} from '../tileset-2d';
29
29
  import {
30
+ urlType,
30
31
  Tileset2D,
31
32
  Tile2DHeader,
32
33
  getURLFromTemplate,
@@ -38,6 +39,7 @@ const WORLD_SIZE = 512;
38
39
 
39
40
  const defaultProps: DefaultProps<MVTLayerProps> = {
40
41
  ...GeoJsonLayer.defaultProps,
42
+ data: urlType,
41
43
  onDataLoad: {type: 'function', value: null, optional: true, compare: false},
42
44
  uniqueIdProperty: '',
43
45
  highlightedFeatureId: null,
@@ -60,8 +62,8 @@ export type TileJson = {
60
62
  type ParsedMvtTile = Feature[] | BinaryFeatures;
61
63
 
62
64
  /** All props supported by the MVTLayer */
63
- export type MVTLayerProps<DataT extends Feature = Feature> = _MVTLayerProps &
64
- GeoJsonLayerProps<DataT> &
65
+ export type MVTLayerProps = _MVTLayerProps &
66
+ Omit<GeoJsonLayerProps, 'data'> &
65
67
  TileLayerProps<ParsedMvtTile>;
66
68
 
67
69
  /** Props added by the MVTLayer */
@@ -93,10 +95,10 @@ export type _MVTLayerProps = {
93
95
  type ContentWGS84Cache = {_contentWGS84?: Feature[]};
94
96
 
95
97
  /** Render data formatted as [Mapbox Vector Tiles](https://docs.mapbox.com/vector-tiles/specification/). */
96
- export default class MVTLayer<
97
- DataT extends Feature = Feature,
98
- ExtraProps extends {} = {}
99
- > extends TileLayer<ParsedMvtTile, Required<_MVTLayerProps> & ExtraProps> {
98
+ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
99
+ ParsedMvtTile,
100
+ Required<_MVTLayerProps> & ExtraProps
101
+ > {
100
102
  static layerName = 'MVTLayer';
101
103
  static defaultProps = defaultProps;
102
104
 
@@ -287,7 +289,9 @@ export default class MVTLayer<
287
289
 
288
290
  if (this.state.binary && info.index !== -1) {
289
291
  const {data} = params.sourceLayer!.props;
290
- info.object = binaryToGeojson(data as BinaryFeatures, {globalFeatureId: info.index}) as DataT;
292
+ info.object = binaryToGeojson(data as BinaryFeatures, {
293
+ globalFeatureId: info.index
294
+ }) as Feature;
291
295
  }
292
296
  if (info.object && !isWGS84) {
293
297
  info.object = transformTileCoordsToWGS84(
@@ -355,21 +359,21 @@ export default class MVTLayer<
355
359
  }
356
360
 
357
361
  /** Get the rendered features in the current viewport. */
358
- getRenderedFeatures(maxFeatures: number | null = null): DataT[] {
362
+ getRenderedFeatures(maxFeatures: number | null = null): Feature[] {
359
363
  const features = this._pickObjects(maxFeatures);
360
364
  const featureCache = new Set();
361
- const renderedFeatures: DataT[] = [];
365
+ const renderedFeatures: Feature[] = [];
362
366
 
363
367
  for (const f of features) {
364
368
  const featureId = getFeatureUniqueId(f.object, this.props.uniqueIdProperty);
365
369
 
366
370
  if (featureId === undefined) {
367
371
  // we have no id for the feature, we just add to the list
368
- renderedFeatures.push(f.object as DataT);
372
+ renderedFeatures.push(f.object as Feature);
369
373
  } else if (!featureCache.has(featureId)) {
370
374
  // Add removing duplicates
371
375
  featureCache.add(featureId);
372
- renderedFeatures.push(f.object as DataT);
376
+ renderedFeatures.push(f.object as Feature);
373
377
  }
374
378
  }
375
379
 
@@ -32,22 +32,23 @@ const defaultProps: DefaultProps<Tile3DLayerProps> = {
32
32
  getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},
33
33
  pointSize: 1.0,
34
34
 
35
- // @ts-expect-error Disable async data loading (handling it in _loadTileSet)
36
- data: null,
35
+ // Disable async data loading (handling it in _loadTileSet)
36
+ data: '',
37
37
  loader: Tiles3DLoader,
38
38
 
39
- onTilesetLoad: {type: 'function', value: tileset3d => {}, compare: false},
40
- onTileLoad: {type: 'function', value: tileHeader => {}, compare: false},
41
- onTileUnload: {type: 'function', value: tileHeader => {}, compare: false},
42
- onTileError: {type: 'function', value: (tile, message, url) => {}, compare: false},
43
- _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255], compare: false}
39
+ onTilesetLoad: {type: 'function', value: tileset3d => {}},
40
+ onTileLoad: {type: 'function', value: tileHeader => {}},
41
+ onTileUnload: {type: 'function', value: tileHeader => {}},
42
+ onTileError: {type: 'function', value: (tile, message, url) => {}},
43
+ _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255]}
44
44
  };
45
45
 
46
46
  /** All properties supported by Tile3DLayer */
47
- export type Tile3DLayerProps<DataT = any> = _Tile3DLayerProps<DataT> & CompositeLayerProps<DataT>;
47
+ export type Tile3DLayerProps<DataT = any> = _Tile3DLayerProps<DataT> & CompositeLayerProps;
48
48
 
49
49
  /** Props added by the Tile3DLayer */
50
50
  type _Tile3DLayerProps<DataT> = {
51
+ data: string;
51
52
  /** Color Accessor for point clouds. **/
52
53
  getPointColor?: Accessor<DataT, Color>;
53
54
 
@@ -21,20 +21,20 @@ import {
21
21
  STRATEGY_DEFAULT,
22
22
  Tileset2DProps
23
23
  } from '../tileset-2d';
24
- import {urlType, getURLFromTemplate} from '../tileset-2d';
24
+ import {urlType, URLTemplate, getURLFromTemplate} from '../tileset-2d';
25
25
 
26
26
  const defaultProps: DefaultProps<TileLayerProps> = {
27
27
  TilesetClass: Tileset2D,
28
28
  data: {type: 'data', value: []},
29
29
  dataComparator: urlType.equal,
30
- renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props), compare: false},
31
- getTileData: {type: 'function', optional: true, value: null, compare: false},
30
+ renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props)},
31
+ getTileData: {type: 'function', optional: true, value: null},
32
32
  // TODO - change to onViewportLoad to align with Tile3DLayer
33
- onViewportLoad: {type: 'function', optional: true, value: null, compare: false},
34
- onTileLoad: {type: 'function', value: tile => {}, compare: false},
35
- onTileUnload: {type: 'function', value: tile => {}, compare: false},
33
+ onViewportLoad: {type: 'function', optional: true, value: null},
34
+ onTileLoad: {type: 'function', value: tile => {}},
35
+ onTileUnload: {type: 'function', value: tile => {}},
36
36
  // eslint-disable-next-line
37
- onTileError: {type: 'function', value: err => console.error(err), compare: false},
37
+ onTileError: {type: 'function', value: err => console.error(err)},
38
38
  extent: {type: 'array', optional: true, value: null, compare: true},
39
39
  tileSize: 512,
40
40
  maxZoom: null,
@@ -48,14 +48,15 @@ const defaultProps: DefaultProps<TileLayerProps> = {
48
48
  };
49
49
 
50
50
  /** All props supported by the TileLayer */
51
- export type TileLayerProps<DataT = any> = CompositeLayerProps<any> & _TileLayerProps<DataT>;
51
+ export type TileLayerProps<DataT = any> = CompositeLayerProps & _TileLayerProps<DataT>;
52
52
 
53
53
  /** Props added by the TileLayer */
54
54
  type _TileLayerProps<DataT> = {
55
+ data: URLTemplate;
55
56
  /**
56
57
  * Optionally implement a custom indexing scheme.
57
58
  */
58
- TilesetClass: typeof Tileset2D;
59
+ TilesetClass?: typeof Tileset2D;
59
60
  /**
60
61
  * Renders one or an array of Layer instances.
61
62
  */
@@ -277,6 +277,7 @@ export class Tileset2D {
277
277
  return this._frameNumber;
278
278
  }
279
279
 
280
+ // eslint-disable-next-line complexity
280
281
  isTileVisible(
281
282
  tile: Tile2DHeader,
282
283
  cullRect?: {x: number; y: number; width: number; height: number}
@@ -0,0 +1,247 @@
1
+ // deck.gl, MIT license
2
+ // Attributions:
3
+ // Copyright 2022 Foursquare Labs, Inc.
4
+
5
+ /* eslint-disable camelcase */ // Some WMS parameters are not in camel case
6
+ /* global setTimeout, clearTimeout */
7
+
8
+ import {
9
+ Layer,
10
+ CompositeLayer,
11
+ CompositeLayerProps,
12
+ UpdateParameters,
13
+ DefaultProps,
14
+ Viewport,
15
+ COORDINATE_SYSTEM,
16
+ _deepEqual as deepEqual
17
+ } from '@deck.gl/core';
18
+ import {BitmapLayer} from '@deck.gl/layers';
19
+ import type {ImageSourceMetadata, ImageType, ImageServiceType} from '@loaders.gl/wms';
20
+ import {ImageSource, createImageSource} from '@loaders.gl/wms';
21
+ import {Proj4Projection} from '@math.gl/proj4';
22
+
23
+ /** All props supported by the TileLayer */
24
+ export type WMSLayerProps = CompositeLayerProps & _WMSLayerProps;
25
+
26
+ /** Props added by the TileLayer */
27
+ type _WMSLayerProps = {
28
+ data: string | ImageSource;
29
+ serviceType?: ImageServiceType | 'auto';
30
+ layers?: string[];
31
+ srs?: 'EPSG:4326' | 'EPSG:3857' | 'auto';
32
+ onMetadataLoad?: (metadata: ImageSourceMetadata) => void;
33
+ onMetadataLoadError?: (error: Error) => void;
34
+ onImageLoadStart?: (requestId: unknown) => void;
35
+ onImageLoad?: (requestId: unknown) => void;
36
+ onImageLoadError?: (requestId: unknown, error: Error) => void;
37
+ };
38
+
39
+ const defaultProps: DefaultProps<WMSLayerProps> = {
40
+ id: 'imagery-layer',
41
+ data: '',
42
+ serviceType: 'auto',
43
+ srs: 'auto',
44
+ layers: {type: 'array', compare: true, value: []},
45
+ onMetadataLoad: {type: 'function', value: () => {}},
46
+ // eslint-disable-next-line
47
+ onMetadataLoadError: {type: 'function', value: console.error},
48
+ onImageLoadStart: {type: 'function', value: () => {}},
49
+ onImageLoad: {type: 'function', value: () => {}},
50
+ onImageLoadError: {
51
+ type: 'function',
52
+ compare: false,
53
+ // eslint-disable-next-line
54
+ value: (requestId: unknown, error: Error) => console.error(error, requestId)
55
+ }
56
+ };
57
+
58
+ const projConverter = new Proj4Projection({from: 'EPSG:4326', to: 'EPSG:3857'});
59
+
60
+ /**
61
+ * The layer is used in Hex Tile layer in order to properly discard invisible elements during animation
62
+ */
63
+ export class WMSLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<
64
+ ExtraPropsT & Required<_WMSLayerProps>
65
+ > {
66
+ static layerName = 'WMSLayer';
67
+ static defaultProps: DefaultProps = defaultProps;
68
+
69
+ state!: {
70
+ imageSource: ImageSource;
71
+ image: ImageType;
72
+ bounds: [number, number, number, number];
73
+ lastRequestParameters: {
74
+ bbox: [number, number, number, number];
75
+ layers: string[];
76
+ srs: 'EPSG:4326' | 'EPSG:3857';
77
+ width: number;
78
+ height: number;
79
+ };
80
+ lastRequestId: number;
81
+
82
+ _nextRequestId: number;
83
+ _timeoutId: any;
84
+ };
85
+
86
+ /** Lets deck.gl know that we want viewport change events */
87
+ override shouldUpdateState(): boolean {
88
+ return true;
89
+ }
90
+
91
+ override initializeState(): void {
92
+ // intentionally empty, initialization is done in updateState
93
+ this.state._nextRequestId = 0;
94
+ this.state.lastRequestId = -1;
95
+ }
96
+
97
+ override updateState({changeFlags, props, oldProps}: UpdateParameters<this>): void {
98
+ const {viewport} = this.context;
99
+
100
+ // Check if data source has changed
101
+ if (changeFlags.dataChanged || props.serviceType !== oldProps.serviceType) {
102
+ this.state.imageSource = this._createImageSource(props);
103
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
104
+ this._loadMetadata();
105
+ this.debounce(() => this.loadImage(viewport, 'image source changed'), 0);
106
+ } else if (!deepEqual(props.layers, oldProps.layers, 1)) {
107
+ this.debounce(() => this.loadImage(viewport, 'layers changed'), 0);
108
+ } else if (changeFlags.viewportChanged) {
109
+ this.debounce(() => this.loadImage(viewport, 'viewport changed'));
110
+ }
111
+ }
112
+
113
+ override finalizeState(): void {
114
+ // TODO - we could cancel outstanding requests
115
+ }
116
+
117
+ override renderLayers(): Layer {
118
+ // TODO - which bitmap layer is rendered should depend on the current viewport
119
+ // Currently Studio only uses one viewport
120
+ const {bounds, image, lastRequestParameters} = this.state;
121
+
122
+ return (
123
+ image &&
124
+ new BitmapLayer({
125
+ ...this.getSubLayerProps({id: 'bitmap'}),
126
+ _imageCoordinateSystem:
127
+ lastRequestParameters.srs === 'EPSG:4326'
128
+ ? COORDINATE_SYSTEM.LNGLAT
129
+ : COORDINATE_SYSTEM.CARTESIAN,
130
+ bounds,
131
+ image
132
+ })
133
+ );
134
+ }
135
+
136
+ async getFeatureInfoText(x: number, y: number): Promise<string | null> {
137
+ const {lastRequestParameters} = this.state;
138
+ if (lastRequestParameters) {
139
+ // @ts-expect-error Undocumented method
140
+ const featureInfo = await this.state.imageSource.getFeatureInfoText?.({
141
+ ...lastRequestParameters,
142
+ query_layers: lastRequestParameters.layers,
143
+ x,
144
+ y,
145
+ info_format: 'application/vnd.ogc.gml'
146
+ });
147
+ return featureInfo;
148
+ }
149
+ return '';
150
+ }
151
+
152
+ _createImageSource(props: WMSLayerProps): ImageSource {
153
+ if (props.data instanceof ImageSource) {
154
+ return props.data;
155
+ }
156
+
157
+ if (typeof props.data === 'string') {
158
+ return createImageSource({
159
+ url: props.data,
160
+ loadOptions: props.loadOptions,
161
+ type: props.serviceType
162
+ });
163
+ }
164
+
165
+ throw new Error('invalid image source in props.data');
166
+ }
167
+
168
+ /** Run a getMetadata on the image service */
169
+ async _loadMetadata(): Promise<void> {
170
+ const {imageSource} = this.state;
171
+ try {
172
+ const metadata = await imageSource.getMetadata();
173
+
174
+ // If a request takes a long time, it may no longer be expected
175
+ if (this.state.imageSource === imageSource) {
176
+ this.getCurrentLayer()?.props.onMetadataLoad(metadata);
177
+ }
178
+ } catch (error) {
179
+ this.getCurrentLayer()?.props.onMetadataLoadError(error as Error);
180
+ }
181
+ }
182
+
183
+ /** Load an image */
184
+ async loadImage(viewport: Viewport, reason: string): Promise<void> {
185
+ const {layers, serviceType} = this.props;
186
+
187
+ // TODO - move to ImageSource?
188
+ if (serviceType === 'wms' && layers.length === 0) {
189
+ return;
190
+ }
191
+
192
+ const bounds = viewport.getBounds();
193
+ const {width, height} = viewport;
194
+ const requestId = this.getRequestId();
195
+ let {srs} = this.props;
196
+ if (srs === 'auto') {
197
+ // BitmapLayer only supports LNGLAT or CARTESIAN (Web-Mercator)
198
+ srs = viewport.resolution ? 'EPSG:4326' : 'EPSG:3857';
199
+ }
200
+ const requestParams = {
201
+ width,
202
+ height,
203
+ bbox: bounds,
204
+ layers,
205
+ srs
206
+ };
207
+ if (srs === 'EPSG:3857') {
208
+ const [minX, minY] = projConverter.project([bounds[0], bounds[1]]);
209
+ const [maxX, maxY] = projConverter.project([bounds[2], bounds[3]]);
210
+ requestParams.bbox = [minX, minY, maxX, maxY];
211
+ }
212
+
213
+ try {
214
+ this.props.onImageLoadStart(requestId);
215
+
216
+ const image = await this.state.imageSource.getImage(requestParams);
217
+
218
+ // If a request takes a long time, later requests may have already loaded.
219
+ if (this.state.lastRequestId < requestId) {
220
+ this.getCurrentLayer()?.props.onImageLoad(requestId);
221
+ // Not type safe...
222
+ this.setState({
223
+ image,
224
+ bounds,
225
+ lastRequestParameters: requestParams,
226
+ lastRequestId: requestId
227
+ });
228
+ }
229
+ } catch (error) {
230
+ this.raiseError(error as Error, 'Load image');
231
+ this.getCurrentLayer()?.props.onImageLoadError(requestId, error as Error);
232
+ }
233
+ }
234
+
235
+ // HELPERS
236
+
237
+ /** Global counter for issuing unique request ids */
238
+ private getRequestId(): number {
239
+ return this.state._nextRequestId++;
240
+ }
241
+
242
+ /** Runs an action in the future, cancels it if the new action is issued before it executes */
243
+ private debounce(fn: Function, ms = 500): void {
244
+ clearTimeout(this.state._timeoutId);
245
+ this.state._timeoutId = setTimeout(() => fn(), ms);
246
+ }
247
+ }
@@ -1,7 +1,7 @@
1
- import { CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps } from '@deck.gl/core/typed';
1
+ import { CompositeLayer, Layer, LayersList, DefaultProps } from '@deck.gl/core/typed';
2
2
  import { PolygonLayerProps } from '@deck.gl/layers/typed';
3
3
  /** All properties supported by GeoCellLayer. */
4
- export declare type GeoCellLayerProps<DataT = any> = PolygonLayerProps<DataT> & CompositeLayerProps<DataT>;
4
+ export declare type GeoCellLayerProps<DataT = any> = PolygonLayerProps<DataT>;
5
5
  export default class GeoCellLayer<DataT = any, ExtraProps extends {} = {}> extends CompositeLayer<Required<GeoCellLayerProps<DataT>> & ExtraProps> {
6
6
  static layerName: string;
7
7
  static defaultProps: DefaultProps;
@@ -1 +1 @@
1
- {"version":3,"file":"GeoCellLayer.d.ts","sourceRoot":"","sources":["../../src/geo-cell-layer/GeoCellLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,EAAe,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAMhE,gDAAgD;AAChD,oBAAY,iBAAiB,CAAC,KAAK,GAAG,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CAC/F,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAChD;IACC,MAAM,CAAC,SAAS,SAAkB;IAClC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAgB;IAEjD,sDAAsD;IACtD,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAItD,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CA+D1C"}
1
+ {"version":3,"file":"GeoCellLayer.d.ts","sourceRoot":"","sources":["../../src/geo-cell-layer/GeoCellLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAe,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAMhE,gDAAgD;AAChD,oBAAY,iBAAiB,CAAC,KAAK,GAAG,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CAC/F,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAChD;IACC,MAAM,CAAC,SAAS,SAAkB;IAClC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAgB;IAEjD,sDAAsD;IACtD,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAItD,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CA+D1C"}
@@ -1,10 +1,10 @@
1
1
  import { H3Index } from 'h3-js';
2
- import { AccessorFunction, CompositeLayer, CompositeLayerProps, Layer, LayersList, UpdateParameters, DefaultProps } from '@deck.gl/core/typed';
2
+ import { AccessorFunction, CompositeLayer, Layer, LayersList, UpdateParameters, DefaultProps } from '@deck.gl/core/typed';
3
3
  import { PolygonLayerProps } from '@deck.gl/layers/typed';
4
4
  export declare function normalizeLongitudes(vertices: number[][], refLng?: number): void;
5
5
  export declare function scalePolygon(hexId: H3Index, vertices: number[][], factor: number): void;
6
6
  /** All properties supported by H3HexagonLayer */
7
- export declare type H3HexagonLayerProps<DataT = any> = _H3HexagonLayerProps<DataT> & PolygonLayerProps<DataT> & CompositeLayerProps<DataT>;
7
+ export declare type H3HexagonLayerProps<DataT = any> = _H3HexagonLayerProps<DataT> & PolygonLayerProps<DataT>;
8
8
  /** Props added by the H3HexagonLayer */
9
9
  declare type _H3HexagonLayerProps<DataT> = {
10
10
  /**
@@ -36,7 +36,7 @@ declare type _H3HexagonLayerProps<DataT> = {
36
36
  /**
37
37
  * Render hexagons from the [H3](https://h3geo.org/) geospatial indexing system.
38
38
  */
39
- export default class H3HexagonLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_H3HexagonLayerProps<DataT> & Required<PolygonLayerProps<DataT>>>> {
39
+ export default class H3HexagonLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<H3HexagonLayerProps<DataT>>> {
40
40
  static defaultProps: DefaultProps<H3HexagonLayerProps<any>>;
41
41
  static layerName: string;
42
42
  static _checkH3Lib: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"h3-hexagon-layer.d.ts","sourceRoot":"","sources":["../../src/h3-layers/h3-hexagon-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,OAAO,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EAEnB,KAAK,EACL,UAAU,EACV,gBAAgB,EAEhB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAA4B,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAQ7E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAU/E;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAcvF;AAqDD,iDAAiD;AACjD,oBAAY,mBAAmB,CAAC,KAAK,GAAG,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,GACxE,iBAAiB,CAAC,KAAK,CAAC,GACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAE7B,wCAAwC;AACxC,aAAK,oBAAoB,CAAC,KAAK,IAAI;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc,CACjC,KAAK,GAAG,GAAG,EACX,WAAW,SAAS,EAAE,GAAG,EAAE,CAC3B,SAAQ,cAAc,CACtB,WAAW,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CACzF;IACC,MAAM,CAAC,YAAY,yCAAgB;IACnC,MAAM,CAAC,SAAS,SAAoB;IAGpC,MAAM,CAAC,WAAW,aAAY;IAE9B,eAAe;IAQf,KAAK,EAAG;QACN,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;KACvB,CAAC;IAEF,iBAAiB,CAAC,EAAC,WAAW,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO;IAMjE,WAAW,CAAC,EAAC,KAAK,EAAE,WAAW,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI;IAa/D,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,eAAe;IAuCvB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;IAIzC,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,kBAAkB;CAuB3B"}
1
+ {"version":3,"file":"h3-hexagon-layer.d.ts","sourceRoot":"","sources":["../../src/h3-layers/h3-hexagon-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,OAAO,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,gBAAgB,EAChB,cAAc,EAEd,KAAK,EACL,UAAU,EACV,gBAAgB,EAEhB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAA4B,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAQ7E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAU/E;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAcvF;AAqDD,iDAAiD;AACjD,oBAAY,mBAAmB,CAAC,KAAK,GAAG,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,GACxE,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE3B,wCAAwC;AACxC,aAAK,oBAAoB,CAAC,KAAK,IAAI;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc,CACjC,KAAK,GAAG,GAAG,EACX,WAAW,SAAS,EAAE,GAAG,EAAE,CAC3B,SAAQ,cAAc,CAAC,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,yCAAgB;IACnC,MAAM,CAAC,SAAS,SAAoB;IAGpC,MAAM,CAAC,WAAW,aAAY;IAE9B,eAAe;IAQf,KAAK,EAAG;QACN,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;KACvB,CAAC;IAEF,iBAAiB,CAAC,EAAC,WAAW,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO;IAMjE,WAAW,CAAC,EAAC,KAAK,EAAE,WAAW,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI;IAa/D,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,eAAe;IAuCvB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;IAIzC,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,kBAAkB;CAuB3B"}
@@ -0,0 +1,53 @@
1
+ import { Layer, CompositeLayer, CompositeLayerProps, UpdateParameters, DefaultProps, Viewport } from '@deck.gl/core/typed';
2
+ import type { ImageSourceMetadata, ImageType, ImageServiceType } from '@loaders.gl/wms';
3
+ import { ImageSource } from '@loaders.gl/wms';
4
+ /** All props supported by the TileLayer */
5
+ export declare type ImageryLayerProps = CompositeLayerProps<any> & _ImageryLayerProps;
6
+ /** Props added by the TileLayer */
7
+ declare type _ImageryLayerProps = {
8
+ serviceType?: ImageServiceType | 'auto';
9
+ layers?: string[];
10
+ srs?: 'EPSG:4326' | 'EPSG:3857' | 'auto';
11
+ onMetadataLoadStart?: () => void;
12
+ onMetadataLoadComplete?: (metadata: ImageSourceMetadata) => void;
13
+ onMetadataLoadError?: (error: Error) => void;
14
+ onImageLoadStart?: (requestId: unknown) => void;
15
+ onImageLoadComplete?: (requestId: unknown) => void;
16
+ onImageLoadError?: (requestId: unknown, error: Error) => void;
17
+ };
18
+ /**
19
+ * The layer is used in Hex Tile layer in order to properly discard invisible elements during animation
20
+ */
21
+ export declare class ImageryLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_ImageryLayerProps>> {
22
+ static layerName: string;
23
+ static defaultProps: DefaultProps;
24
+ state: {
25
+ imageSource: ImageSource;
26
+ image: ImageType;
27
+ srs: 'EPSG:4326' | 'EPSG:3857';
28
+ bounds: [number, number, number, number];
29
+ width: number;
30
+ height: number;
31
+ lastLoadedId: number;
32
+ _nextRequestId: number;
33
+ _timeoutId: any;
34
+ };
35
+ /** Lets deck.gl know that we want viewport change events */
36
+ shouldUpdateState(): boolean;
37
+ initializeState(): void;
38
+ updateState({ changeFlags, props, oldProps }: UpdateParameters<this>): void;
39
+ finalizeState(): void;
40
+ renderLayers(): Layer;
41
+ getFeatureInfoText(x: number, y: number): Promise<string | null>;
42
+ _createImageSource(props: ImageryLayerProps): ImageSource;
43
+ /** Run a getMetadata on the image service */
44
+ _loadMetadata(): Promise<void>;
45
+ /** Load an image */
46
+ loadImage(viewport: Viewport, reason: string): Promise<void>;
47
+ /** Global counter for issuing unique request ids */
48
+ private getRequestId;
49
+ /** Runs an action in the future, cancels it if the new action is issued before it executes */
50
+ private debounce;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=imagery-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagery-layer.d.ts","sourceRoot":"","sources":["../../src/imagery-layer/imagery-layer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EAGT,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAC,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAC,WAAW,EAAoB,MAAM,iBAAiB,CAAC;AAG/D,2CAA2C;AAC3C,oBAAY,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAE9E,mCAAmC;AACnC,aAAK,kBAAkB,GAAG;IACxB,WAAW,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/D,CAAC;AAwBF;;GAEG;AACH,qBAAa,YAAY,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CAC3E,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAC3C;IACC,MAAM,CAAC,SAAS,SAAkB;IAClC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAgB;IAEjD,KAAK,EAAG;QACN,WAAW,EAAE,WAAW,CAAC;QACzB,KAAK,EAAE,SAAS,CAAC;QACjB,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;QAC/B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QAErB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;IAEF,4DAA4D;IACnD,iBAAiB,IAAI,OAAO;IAI5B,eAAe,IAAI,IAAI;IAMvB,WAAW,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI;IAgBzE,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,KAAK;IAiBxB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBtE,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW;IAgBzD,6CAA6C;IACvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,oBAAoB;IACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ClE,oDAAoD;IACpD,OAAO,CAAC,YAAY;IAIpB,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;CAIjB"}
package/typed/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { WMSLayer as _WMSLayer } from './wms-layer/wms-layer';
1
2
  export { default as GreatCircleLayer } from './great-circle-layer/great-circle-layer';
2
3
  export { default as S2Layer } from './s2-layer/s2-layer';
3
4
  export { default as QuadkeyLayer } from './quadkey-layer/quadkey-layer';
@@ -10,6 +11,7 @@ export { default as TerrainLayer } from './terrain-layer/terrain-layer';
10
11
  export { default as MVTLayer } from './mvt-layer/mvt-layer';
11
12
  export { default as GeohashLayer } from './geohash-layer/geohash-layer';
12
13
  export { default as _GeoCellLayer } from './geo-cell-layer/GeoCellLayer';
14
+ export type { WMSLayerProps } from './wms-layer/wms-layer';
13
15
  export type { H3ClusterLayerProps } from './h3-layers/h3-cluster-layer';
14
16
  export type { H3HexagonLayerProps } from './h3-layers/h3-hexagon-layer';
15
17
  export type { GreatCircleLayerProps } from './great-circle-layer/great-circle-layer';