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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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.3",
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": "da509f9b00415a8d0700951663b65b59077c0cae"
58
60
  }
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';
@@ -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,246 @@
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<any> & _WMSLayerProps;
25
+
26
+ /** Props added by the TileLayer */
27
+ type _WMSLayerProps = {
28
+ serviceType?: ImageServiceType | 'auto';
29
+ layers?: string[];
30
+ srs?: 'EPSG:4326' | 'EPSG:3857' | 'auto';
31
+ onMetadataLoad?: (metadata: ImageSourceMetadata) => void;
32
+ onMetadataLoadError?: (error: Error) => void;
33
+ onImageLoadStart?: (requestId: unknown) => void;
34
+ onImageLoad?: (requestId: unknown) => void;
35
+ onImageLoadError?: (requestId: unknown, error: Error) => void;
36
+ };
37
+
38
+ const defaultProps: DefaultProps<WMSLayerProps> = {
39
+ id: 'imagery-layer',
40
+ data: '',
41
+ serviceType: 'auto',
42
+ srs: 'auto',
43
+ layers: {type: 'array', compare: true, value: []},
44
+ onMetadataLoad: {type: 'function', compare: false, value: () => {}},
45
+ // eslint-disable-next-line
46
+ onMetadataLoadError: {type: 'function', compare: false, value: console.error},
47
+ onImageLoadStart: {type: 'function', compare: false, value: () => {}},
48
+ onImageLoad: {type: 'function', compare: false, value: () => {}},
49
+ onImageLoadError: {
50
+ type: 'function',
51
+ compare: false,
52
+ // eslint-disable-next-line
53
+ value: (requestId: unknown, error: Error) => console.error(error, requestId)
54
+ }
55
+ };
56
+
57
+ const projConverter = new Proj4Projection({from: 'EPSG:4326', to: 'EPSG:3857'});
58
+
59
+ /**
60
+ * The layer is used in Hex Tile layer in order to properly discard invisible elements during animation
61
+ */
62
+ export class WMSLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<
63
+ ExtraPropsT & Required<_WMSLayerProps>
64
+ > {
65
+ static layerName = 'WMSLayer';
66
+ static defaultProps: DefaultProps = defaultProps;
67
+
68
+ state!: {
69
+ imageSource: ImageSource;
70
+ image: ImageType;
71
+ bounds: [number, number, number, number];
72
+ lastRequestParameters: {
73
+ bbox: [number, number, number, number];
74
+ layers: string[];
75
+ srs: 'EPSG:4326' | 'EPSG:3857';
76
+ width: number;
77
+ height: number;
78
+ };
79
+ lastRequestId: number;
80
+
81
+ _nextRequestId: number;
82
+ _timeoutId: any;
83
+ };
84
+
85
+ /** Lets deck.gl know that we want viewport change events */
86
+ override shouldUpdateState(): boolean {
87
+ return true;
88
+ }
89
+
90
+ override initializeState(): void {
91
+ // intentionally empty, initialization is done in updateState
92
+ this.state._nextRequestId = 0;
93
+ this.state.lastRequestId = -1;
94
+ }
95
+
96
+ override updateState({changeFlags, props, oldProps}: UpdateParameters<this>): void {
97
+ const {viewport} = this.context;
98
+
99
+ // Check if data source has changed
100
+ if (changeFlags.dataChanged || props.serviceType !== oldProps.serviceType) {
101
+ this.state.imageSource = this._createImageSource(props);
102
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
103
+ this._loadMetadata();
104
+ this.debounce(() => this.loadImage(viewport, 'image source changed'), 0);
105
+ } else if (!deepEqual(props.layers, oldProps.layers, 1)) {
106
+ this.debounce(() => this.loadImage(viewport, 'layers changed'), 0);
107
+ } else if (changeFlags.viewportChanged) {
108
+ this.debounce(() => this.loadImage(viewport, 'viewport changed'));
109
+ }
110
+ }
111
+
112
+ override finalizeState(): void {
113
+ // TODO - we could cancel outstanding requests
114
+ }
115
+
116
+ override renderLayers(): Layer {
117
+ // TODO - which bitmap layer is rendered should depend on the current viewport
118
+ // Currently Studio only uses one viewport
119
+ const {bounds, image, lastRequestParameters} = this.state;
120
+
121
+ return (
122
+ image &&
123
+ new BitmapLayer({
124
+ ...this.getSubLayerProps({id: 'bitmap'}),
125
+ _imageCoordinateSystem:
126
+ lastRequestParameters.srs === 'EPSG:4326'
127
+ ? COORDINATE_SYSTEM.LNGLAT
128
+ : COORDINATE_SYSTEM.CARTESIAN,
129
+ bounds,
130
+ image
131
+ })
132
+ );
133
+ }
134
+
135
+ async getFeatureInfoText(x: number, y: number): Promise<string | null> {
136
+ const {lastRequestParameters} = this.state;
137
+ if (lastRequestParameters) {
138
+ // @ts-expect-error Undocumented method
139
+ const featureInfo = await this.state.imageSource.getFeatureInfoText?.({
140
+ ...lastRequestParameters,
141
+ query_layers: lastRequestParameters.layers,
142
+ x,
143
+ y,
144
+ info_format: 'application/vnd.ogc.gml'
145
+ });
146
+ return featureInfo;
147
+ }
148
+ return '';
149
+ }
150
+
151
+ _createImageSource(props: WMSLayerProps): ImageSource {
152
+ if (props.data instanceof ImageSource) {
153
+ return props.data;
154
+ }
155
+
156
+ if (typeof props.data === 'string') {
157
+ return createImageSource({
158
+ url: props.data,
159
+ loadOptions: props.loadOptions,
160
+ type: props.serviceType
161
+ });
162
+ }
163
+
164
+ throw new Error('invalid image source in props.data');
165
+ }
166
+
167
+ /** Run a getMetadata on the image service */
168
+ async _loadMetadata(): Promise<void> {
169
+ const {imageSource} = this.state;
170
+ try {
171
+ const metadata = await imageSource.getMetadata();
172
+
173
+ // If a request takes a long time, it may no longer be expected
174
+ if (this.state.imageSource === imageSource) {
175
+ this.getCurrentLayer()?.props.onMetadataLoad(metadata);
176
+ }
177
+ } catch (error) {
178
+ this.getCurrentLayer()?.props.onMetadataLoadError(error as Error);
179
+ }
180
+ }
181
+
182
+ /** Load an image */
183
+ async loadImage(viewport: Viewport, reason: string): Promise<void> {
184
+ const {layers, serviceType} = this.props;
185
+
186
+ // TODO - move to ImageSource?
187
+ if (serviceType === 'wms' && layers.length === 0) {
188
+ return;
189
+ }
190
+
191
+ const bounds = viewport.getBounds();
192
+ const {width, height} = viewport;
193
+ const requestId = this.getRequestId();
194
+ let {srs} = this.props;
195
+ if (srs === 'auto') {
196
+ // BitmapLayer only supports LNGLAT or CARTESIAN (Web-Mercator)
197
+ srs = viewport.resolution ? 'EPSG:4326' : 'EPSG:3857';
198
+ }
199
+ const requestParams = {
200
+ width,
201
+ height,
202
+ bbox: bounds,
203
+ layers,
204
+ srs
205
+ };
206
+ if (srs === 'EPSG:3857') {
207
+ const [minX, minY] = projConverter.project([bounds[0], bounds[1]]);
208
+ const [maxX, maxY] = projConverter.project([bounds[2], bounds[3]]);
209
+ requestParams.bbox = [minX, minY, maxX, maxY];
210
+ }
211
+
212
+ try {
213
+ this.props.onImageLoadStart(requestId);
214
+
215
+ const image = await this.state.imageSource.getImage(requestParams);
216
+
217
+ // If a request takes a long time, later requests may have already loaded.
218
+ if (this.state.lastRequestId < requestId) {
219
+ this.getCurrentLayer()?.props.onImageLoad(requestId);
220
+ // Not type safe...
221
+ this.setState({
222
+ image,
223
+ bounds,
224
+ lastRequestParameters: requestParams,
225
+ lastRequestId: requestId
226
+ });
227
+ }
228
+ } catch (error) {
229
+ this.raiseError(error as Error, 'Load image');
230
+ this.getCurrentLayer()?.props.onImageLoadError(requestId, error as Error);
231
+ }
232
+ }
233
+
234
+ // HELPERS
235
+
236
+ /** Global counter for issuing unique request ids */
237
+ private getRequestId(): number {
238
+ return this.state._nextRequestId++;
239
+ }
240
+
241
+ /** Runs an action in the future, cancels it if the new action is issued before it executes */
242
+ private debounce(fn: Function, ms = 500): void {
243
+ clearTimeout(this.state._timeoutId);
244
+ this.state._timeoutId = setTimeout(() => fn(), ms);
245
+ }
246
+ }
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAGvE,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AACnF,YAAY,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAI3F,YAAY,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AACpE,YAAY,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,cAAc,CAAC;AAElE,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACvE,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,QAAQ,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAGvE,YAAY,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AACnF,YAAY,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAI3F,YAAY,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AACpE,YAAY,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,cAAc,CAAC;AAElE,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACvE,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-2d.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/tileset-2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAC,OAAO,EAAS,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAS,SAAS,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAyBtC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,oBAAY,0BAA0B,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;AACzE,oBAAY,kBAAkB,GAC1B,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,0BAA0B,CAAC;AAU/B,oBAAY,cAAc,CAAC,KAAK,GAAG,GAAG,IAAI;IACxC,iEAAiE;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAE9D,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACjD,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACnD,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CAO7D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAkBjF,CAAC;AAEF;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,mBAAmB,CAAU;IAErC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B,OAAO,CAAC,UAAU,CAA+B;IAEjD;;;OAGG;gBACS,IAAI,EAAE,cAAc;IAkChC,IAAI,KAAK,wBAER;IAED,IAAI,aAAa,IAAI,YAAY,EAAE,GAAG,IAAI,CAEzC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAWtC,QAAQ,IAAI,IAAI;IAWhB,SAAS,IAAI,IAAI;IAWjB;;OAEG;IACH,MAAM,CACJ,QAAQ,EAAE,QAAQ,EAClB,EAAC,MAAM,EAAE,WAAW,EAAC,GAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAM,GACnE,MAAM;IAkDT,aAAa,CACX,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAC/D,OAAO;IAiCV,4DAA4D;IAC5D,cAAc,CAAC,EACb,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,WAAW,EACX,kBAAkB,EACnB,EAAE;QACD,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,SAAS,EAAE;IAef,iDAAiD;IACjD,SAAS,CAAC,KAAK,EAAE,SAAS;IAI1B,4CAA4C;IAC5C,WAAW,CAAC,KAAK,EAAE,SAAS;IAI5B,kEAAkE;IAClE,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAMtD,uCAAuC;IACvC,cAAc,CAAC,KAAK,EAAE,SAAS;;;;;IAQ/B,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IAEH,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,QAAQ;IA8BhB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI;CAa7D"}
1
+ {"version":3,"file":"tileset-2d.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/tileset-2d.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
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 WMSLayerProps = CompositeLayerProps<any> & _WMSLayerProps;
6
+ /** Props added by the TileLayer */
7
+ declare type _WMSLayerProps = {
8
+ serviceType?: ImageServiceType | 'auto';
9
+ layers?: string[];
10
+ srs?: 'EPSG:4326' | 'EPSG:3857' | 'auto';
11
+ onMetadataLoad?: (metadata: ImageSourceMetadata) => void;
12
+ onMetadataLoadError?: (error: Error) => void;
13
+ onImageLoadStart?: (requestId: unknown) => void;
14
+ onImageLoad?: (requestId: unknown) => void;
15
+ onImageLoadError?: (requestId: unknown, error: Error) => void;
16
+ };
17
+ /**
18
+ * The layer is used in Hex Tile layer in order to properly discard invisible elements during animation
19
+ */
20
+ export declare class WMSLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_WMSLayerProps>> {
21
+ static layerName: string;
22
+ static defaultProps: DefaultProps;
23
+ state: {
24
+ imageSource: ImageSource;
25
+ image: ImageType;
26
+ bounds: [number, number, number, number];
27
+ lastRequestParameters: {
28
+ bbox: [number, number, number, number];
29
+ layers: string[];
30
+ srs: 'EPSG:4326' | 'EPSG:3857';
31
+ width: number;
32
+ height: number;
33
+ };
34
+ lastRequestId: number;
35
+ _nextRequestId: number;
36
+ _timeoutId: any;
37
+ };
38
+ /** Lets deck.gl know that we want viewport change events */
39
+ shouldUpdateState(): boolean;
40
+ initializeState(): void;
41
+ updateState({ changeFlags, props, oldProps }: UpdateParameters<this>): void;
42
+ finalizeState(): void;
43
+ renderLayers(): Layer;
44
+ getFeatureInfoText(x: number, y: number): Promise<string | null>;
45
+ _createImageSource(props: WMSLayerProps): ImageSource;
46
+ /** Run a getMetadata on the image service */
47
+ _loadMetadata(): Promise<void>;
48
+ /** Load an image */
49
+ loadImage(viewport: Viewport, reason: string): Promise<void>;
50
+ /** Global counter for issuing unique request ids */
51
+ private getRequestId;
52
+ /** Runs an action in the future, cancels it if the new action is issued before it executes */
53
+ private debounce;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=wms-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wms-layer.d.ts","sourceRoot":"","sources":["../../src/wms-layer/wms-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,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;AAEtE,mCAAmC;AACnC,aAAK,cAAc,GAAG;IACpB,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,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/D,CAAC;AAuBF;;GAEG;AACH,qBAAa,QAAQ,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CACvE,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CACvC;IACC,MAAM,CAAC,SAAS,SAAc;IAC9B,MAAM,CAAC,YAAY,EAAE,YAAY,CAAgB;IAEjD,KAAK,EAAG;QACN,WAAW,EAAE,WAAW,CAAC;QACzB,KAAK,EAAE,SAAS,CAAC;QACjB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,qBAAqB,EAAE;YACrB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;QAEtB,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;IAmBxB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBtE,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW;IAgBrD,6CAA6C;IACvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,oBAAoB;IACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDlE,oDAAoD;IACpD,OAAO,CAAC,YAAY;IAIpB,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;CAIjB"}