@loaders.gl/wms 4.0.0-alpha.6 → 4.0.0-alpha.8
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/dist/dist.min.js +39 -6
- package/dist/es5/csw-capabilities-loader.js +1 -1
- package/dist/es5/csw-domain-loader.js +1 -1
- package/dist/es5/csw-records-loader.js +1 -1
- package/dist/es5/gml-loader.js +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lerc-loader.js +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js +41 -5
- package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
- package/dist/es5/lib/services/ogc/csw-service.js.map +1 -1
- package/dist/es5/lib/services/ogc/wms-service.js +7 -2
- package/dist/es5/lib/services/ogc/wms-service.js.map +1 -1
- package/dist/es5/lib/sources/image-source.js.map +1 -1
- package/dist/es5/wip/wcs-capabilities-loader.js +1 -1
- package/dist/es5/wip/wfs-capabilities-loader.js +1 -1
- package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/es5/wip/wmts-capabilities-loader.js +1 -1
- package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-capabilities-loader.js +1 -1
- package/dist/es5/wms-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-error-loader.js +1 -1
- package/dist/esm/csw-capabilities-loader.js +1 -1
- package/dist/esm/csw-domain-loader.js +1 -1
- package/dist/esm/csw-records-loader.js +1 -1
- package/dist/esm/gml-loader.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lerc-loader.js +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js +41 -5
- package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
- package/dist/esm/lib/services/ogc/csw-service.js.map +1 -1
- package/dist/esm/lib/services/ogc/wms-service.js +6 -1
- package/dist/esm/lib/services/ogc/wms-service.js.map +1 -1
- package/dist/esm/lib/sources/image-source.js.map +1 -1
- package/dist/esm/wip/wcs-capabilities-loader.js +1 -1
- package/dist/esm/wip/wfs-capabilities-loader.js +1 -1
- package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/esm/wip/wmts-capabilities-loader.js +1 -1
- package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-capabilities-loader.js +1 -1
- package/dist/esm/wms-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-error-loader.js +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts +26 -2
- package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -1
- package/dist/lib/parsers/wms/parse-wms-capabilities.js +40 -6
- package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts +2 -1
- package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts.map +1 -1
- package/dist/lib/services/ogc/csw-service.d.ts +5 -3
- package/dist/lib/services/ogc/csw-service.d.ts.map +1 -1
- package/dist/lib/services/ogc/csw-service.js +1 -2
- package/dist/lib/services/ogc/wms-service.d.ts +31 -6
- package/dist/lib/services/ogc/wms-service.d.ts.map +1 -1
- package/dist/lib/services/ogc/wms-service.js +6 -1
- package/dist/lib/sources/image-source.d.ts +13 -4
- package/dist/lib/sources/image-source.d.ts.map +1 -1
- package/dist/wip/wms-feature-info-loader.d.ts +3 -3
- package/dist/wip/wms-feature-info-loader.d.ts.map +1 -1
- package/dist/wip/wms-layer-description-loader.d.ts +3 -3
- package/dist/wip/wms-layer-description-loader.d.ts.map +1 -1
- package/dist/wip/wmts-capabilities-loader.d.ts +3 -2
- package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
- package/dist/wip/wmts-capabilities-loader.js +1 -1
- package/dist/wms-capabilities-loader.d.ts +11 -7
- package/dist/wms-capabilities-loader.d.ts.map +1 -1
- package/dist/wms-capabilities-loader.js +6 -2
- package/package.json +6 -6
- package/src/index.ts +11 -4
- package/src/lib/parsers/wms/parse-wms-capabilities.ts +74 -9
- package/src/lib/parsers/wms/parse-wms-layer-description.ts +5 -1
- package/src/lib/services/ogc/csw-service.ts +12 -4
- package/src/lib/services/ogc/wms-service.ts +16 -3
- package/src/lib/sources/image-source.ts +16 -4
- package/src/wip/wms-feature-info-loader.ts +4 -3
- package/src/wip/wms-layer-description-loader.ts +3 -3
- package/src/wip/wmts-capabilities-loader.ts +3 -2
- package/src/wms-capabilities-loader.ts +22 -9
|
@@ -73,6 +73,9 @@ export type WMSLayer = {
|
|
|
73
73
|
// FeatureListURL
|
|
74
74
|
// DataURL
|
|
75
75
|
|
|
76
|
+
/** any extra dimension such as time */
|
|
77
|
+
dimensions?: WMSDimension[];
|
|
78
|
+
|
|
76
79
|
/** Whether queries can be performed on the layer */
|
|
77
80
|
queryable?: boolean;
|
|
78
81
|
/** `false` if layer has significant no-data areas that the client can display as transparent. */
|
|
@@ -105,6 +108,30 @@ export type WMSBoundingBox = {
|
|
|
105
108
|
yResolution?: number;
|
|
106
109
|
};
|
|
107
110
|
|
|
111
|
+
/**
|
|
112
|
+
* An optional dimension that can be queried using the `name=...` parameter
|
|
113
|
+
* Note that layers that have at least one dimension without `default` value
|
|
114
|
+
* become unrenderable unless the dimension value is supplied to GetMap requests.
|
|
115
|
+
*/
|
|
116
|
+
export type WMSDimension = {
|
|
117
|
+
/** name of dimension, becomes a valid parameter key for this layer */
|
|
118
|
+
name: string;
|
|
119
|
+
/** Textual units for this dimensional axis */
|
|
120
|
+
units: string;
|
|
121
|
+
/** Unit symbol for this dimensional axis */
|
|
122
|
+
unitSymbol?: string;
|
|
123
|
+
/** Default value if no value is supplied. If dimension lacks defaultValue, requests fail if no value is supplied */
|
|
124
|
+
defaultValue?: string;
|
|
125
|
+
/** Can multiple values of the dimension be requested? */
|
|
126
|
+
multipleValues?: boolean;
|
|
127
|
+
/* Will nearest values will be substituted when out of range, if false exact values are required */
|
|
128
|
+
nearestValue?: boolean;
|
|
129
|
+
/** A special value "current" is supported, typically for time dimension */
|
|
130
|
+
current?: boolean;
|
|
131
|
+
/** Text content indicating available values for dimension */
|
|
132
|
+
extent: string;
|
|
133
|
+
};
|
|
134
|
+
|
|
108
135
|
/** Metadata about a supported WMS request */
|
|
109
136
|
export type WMSRequest = {
|
|
110
137
|
/** MIMEtypes that can be returned by this request. */
|
|
@@ -116,7 +143,7 @@ export type WMSExceptions = {
|
|
|
116
143
|
mimeTypes: string[];
|
|
117
144
|
};
|
|
118
145
|
|
|
119
|
-
export type
|
|
146
|
+
export type ParseWMSCapabilitiesOptions = {
|
|
120
147
|
/** Add inherited layer information to sub layers */
|
|
121
148
|
inheritedLayerProps?: boolean;
|
|
122
149
|
/** Include the "raw" JSON (parsed but untyped, unprocessed XML). May contain additional fields */
|
|
@@ -125,7 +152,6 @@ export type parseWMSCapabilitiesOptions = {
|
|
|
125
152
|
includeXMLText?: boolean;
|
|
126
153
|
/** @deprecated Use includeRawData` */
|
|
127
154
|
raw?: boolean;
|
|
128
|
-
|
|
129
155
|
// xml options are passed through to xml loader
|
|
130
156
|
};
|
|
131
157
|
|
|
@@ -135,7 +161,7 @@ export type parseWMSCapabilitiesOptions = {
|
|
|
135
161
|
*/
|
|
136
162
|
export function parseWMSCapabilities(
|
|
137
163
|
xmlText: string,
|
|
138
|
-
options?:
|
|
164
|
+
options?: ParseWMSCapabilitiesOptions
|
|
139
165
|
): WMSCapabilities {
|
|
140
166
|
const parsedXML = XMLLoader.parseTextSync?.(xmlText, options);
|
|
141
167
|
const xmlCapabilities: any =
|
|
@@ -227,8 +253,8 @@ function extractLayer(xmlLayer: any): WMSLayer {
|
|
|
227
253
|
// All layers must have a title
|
|
228
254
|
title: String(xmlLayer?.Title || ''),
|
|
229
255
|
// Name is required only if renderable
|
|
230
|
-
name: String(xmlLayer?.Name),
|
|
231
|
-
abstract: String(xmlLayer?.Abstract),
|
|
256
|
+
name: xmlLayer?.Name && String(xmlLayer?.Name),
|
|
257
|
+
abstract: xmlLayer?.Name && String(xmlLayer?.Abstract),
|
|
232
258
|
keywords: getXMLStringArray(xmlLayer.KeywordList?.Keyword)
|
|
233
259
|
};
|
|
234
260
|
|
|
@@ -258,6 +284,13 @@ function extractLayer(xmlLayer: any): WMSLayer {
|
|
|
258
284
|
layer.boundingBoxes = boundingBoxes;
|
|
259
285
|
}
|
|
260
286
|
|
|
287
|
+
// Extract dimensions
|
|
288
|
+
const xmlDimensions = getXMLArray(xmlLayer?.Dimension);
|
|
289
|
+
const dimensions = xmlDimensions.map((xml) => extractDimension(xml));
|
|
290
|
+
if (dimensions.length) {
|
|
291
|
+
layer.dimensions = dimensions;
|
|
292
|
+
}
|
|
293
|
+
|
|
261
294
|
if (xmlLayer?.opaque) {
|
|
262
295
|
layer.opaque = getXMLBoolean(xmlLayer?.opaque);
|
|
263
296
|
}
|
|
@@ -339,22 +372,54 @@ function extractWMSBoundingBox(xmlBoundingBox: any): WMSBoundingBox {
|
|
|
339
372
|
return boundingBox;
|
|
340
373
|
}
|
|
341
374
|
|
|
375
|
+
/**
|
|
376
|
+
* Extracts optional WMS Dimension layer field
|
|
377
|
+
* @param xmlDimension
|
|
378
|
+
* @example <Dimension name="time" units="ISO8601" default="2018-01-01" nearestValue="0">2001-01-01/2018-01-01/P1Y</Dimension>
|
|
379
|
+
* @see https://mapserver.org/ogc/wms_dimension.html
|
|
380
|
+
*/
|
|
381
|
+
function extractDimension(xmlDimension: any): WMSDimension {
|
|
382
|
+
const {name, units, value: extent} = xmlDimension;
|
|
383
|
+
|
|
384
|
+
const dimension: WMSDimension = {name, units, extent};
|
|
385
|
+
|
|
386
|
+
if (xmlDimension.unitSymbol) {
|
|
387
|
+
dimension.unitSymbol = xmlDimension.unitSymbol;
|
|
388
|
+
}
|
|
389
|
+
if (xmlDimension.default) {
|
|
390
|
+
dimension.defaultValue = xmlDimension.default;
|
|
391
|
+
}
|
|
392
|
+
if (xmlDimension.multipleValues) {
|
|
393
|
+
dimension.multipleValues = getXMLBoolean(xmlDimension.multipleValues);
|
|
394
|
+
}
|
|
395
|
+
if (xmlDimension.nearestValue) {
|
|
396
|
+
dimension.nearestValue = getXMLBoolean(xmlDimension.nearestValue);
|
|
397
|
+
}
|
|
398
|
+
if (xmlDimension.current) {
|
|
399
|
+
dimension.current = getXMLBoolean(xmlDimension.current);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
return dimension;
|
|
403
|
+
}
|
|
404
|
+
|
|
342
405
|
/** Traverse layers and inject missing props from parents */
|
|
343
406
|
// eslint-disable-next-line complexity
|
|
344
407
|
function addInheritedLayerProps(layer: WMSLayer, parent: WMSLayer | null): void {
|
|
345
|
-
if (parent
|
|
408
|
+
if (parent?.geographicBoundingBox && !layer.geographicBoundingBox) {
|
|
346
409
|
layer.geographicBoundingBox = [...parent.geographicBoundingBox];
|
|
347
410
|
}
|
|
348
411
|
|
|
349
|
-
if (parent
|
|
412
|
+
if (parent?.crs && !layer.crs) {
|
|
350
413
|
layer.crs = [...parent.crs];
|
|
351
414
|
}
|
|
352
415
|
|
|
353
|
-
if (parent
|
|
416
|
+
if (parent?.boundingBoxes && !layer.boundingBoxes) {
|
|
354
417
|
layer.boundingBoxes = [...parent.boundingBoxes];
|
|
355
418
|
}
|
|
356
419
|
|
|
357
|
-
|
|
420
|
+
if (parent?.dimensions && !layer.dimensions) {
|
|
421
|
+
layer.dimensions = [...parent.dimensions];
|
|
422
|
+
}
|
|
358
423
|
|
|
359
424
|
for (const subLayer of layer.layers || []) {
|
|
360
425
|
addInheritedLayerProps(subLayer, layer);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
|
+
import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
3
4
|
import {XMLLoader} from '@loaders.gl/xml';
|
|
4
5
|
|
|
5
6
|
/** Layer description - response to a WMS `DescribeLayer` request */
|
|
@@ -11,7 +12,10 @@ export type WMSLayerDescription = {
|
|
|
11
12
|
* Parses a typed data structure from raw XML for `GetFeatureInfo` response
|
|
12
13
|
* @note Error handlings is fairly weak
|
|
13
14
|
*/
|
|
14
|
-
export function parseWMSLayerDescription(
|
|
15
|
+
export function parseWMSLayerDescription(
|
|
16
|
+
text: string,
|
|
17
|
+
options?: XMLLoaderOptions
|
|
18
|
+
): WMSLayerDescription {
|
|
15
19
|
const parsedXML = XMLLoader.parseTextSync?.(text, options);
|
|
16
20
|
// TODO - implement parser
|
|
17
21
|
return parsedXML as unknown as WMSLayerDescription;
|
|
@@ -20,7 +20,7 @@ type CSWCommonParameters = {
|
|
|
20
20
|
/** In case the endpoint supports multiple services */
|
|
21
21
|
service?: 'CSW';
|
|
22
22
|
/** In case the endpoint supports multiple CSW versions */
|
|
23
|
-
version?: '1.1.1' | '2.0.0' | '2.0.1' | '3.0.0'
|
|
23
|
+
version?: '1.1.1' | '2.0.0' | '2.0.1' | '3.0.0';
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export type CSWGetCapabilitiesParameters = CSWCommonParameters & {
|
|
@@ -41,17 +41,25 @@ export type CSWGetDomainParameters = CSWCommonParameters & {
|
|
|
41
41
|
// TBA
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
/** Describes a service or resource exposed by the catalog */
|
|
45
|
+
export type Service = {
|
|
46
|
+
/** name of service or resource */
|
|
47
|
+
name: string;
|
|
48
|
+
/** type of service or resource */
|
|
49
|
+
type: string;
|
|
50
|
+
url: string;
|
|
51
|
+
params?: string;
|
|
52
|
+
scheme?: string;
|
|
53
|
+
};
|
|
45
54
|
|
|
46
55
|
export type CSWServiceProps = DataSourceProps & {
|
|
47
56
|
url: string;
|
|
48
57
|
};
|
|
49
58
|
|
|
50
59
|
/**
|
|
51
|
-
* The CSWService class
|
|
60
|
+
* The CSWService class
|
|
52
61
|
* - provides type safe methods to form URLs to a CSW service
|
|
53
62
|
* - provides type safe methods to query and parse results (and errors) from a CSW service
|
|
54
|
-
* - implements the ImageService interface
|
|
55
63
|
* @note Only the URL parameter conversion is supported. XML posts are not supported.
|
|
56
64
|
*/
|
|
57
65
|
export class CSWService extends DataSource<CSWServiceProps> {
|
|
@@ -42,6 +42,10 @@ export type WMSParameters = {
|
|
|
42
42
|
styles?: unknown;
|
|
43
43
|
/** Any additional parameters specific to this WMSService (GetMap) */
|
|
44
44
|
transparent?: boolean;
|
|
45
|
+
/** If layer supports time dimension */
|
|
46
|
+
time?: string;
|
|
47
|
+
/** If layer supports elevation dimension */
|
|
48
|
+
elevation?: string;
|
|
45
49
|
};
|
|
46
50
|
|
|
47
51
|
/** Parameters for GetCapabilities */
|
|
@@ -60,6 +64,8 @@ export type WMSGetMapParameters = {
|
|
|
60
64
|
width: number;
|
|
61
65
|
/** pixels */
|
|
62
66
|
height: number;
|
|
67
|
+
/** requested format for the return image. can be provided in service constructor */
|
|
68
|
+
format?: 'image/png';
|
|
63
69
|
/** Layers to render - can be provided in service constructor */
|
|
64
70
|
layers?: string | string[];
|
|
65
71
|
/** Coordinate Reference System for the image (not bounding box). can be provided in service constructor. */
|
|
@@ -68,8 +74,10 @@ export type WMSGetMapParameters = {
|
|
|
68
74
|
styles?: unknown;
|
|
69
75
|
/** Don't render background when no data. can be provided in service constructor */
|
|
70
76
|
transparent?: boolean;
|
|
71
|
-
/**
|
|
72
|
-
|
|
77
|
+
/** If layer supports time dimension */
|
|
78
|
+
time?: string;
|
|
79
|
+
/** If layer supports elevation dimension */
|
|
80
|
+
elevation?: string;
|
|
73
81
|
};
|
|
74
82
|
|
|
75
83
|
/** GetMap parameters that are specific to the current view */
|
|
@@ -213,6 +221,8 @@ export class WMSService extends ImageSource<WMSServiceProps> {
|
|
|
213
221
|
format: 'image/png',
|
|
214
222
|
info_format: 'text/plain',
|
|
215
223
|
transparent: undefined!,
|
|
224
|
+
time: undefined!,
|
|
225
|
+
elevation: undefined!,
|
|
216
226
|
...props.wmsParameters
|
|
217
227
|
};
|
|
218
228
|
|
|
@@ -342,6 +352,8 @@ export class WMSService extends ImageSource<WMSServiceProps> {
|
|
|
342
352
|
version: this.wmsParameters.version,
|
|
343
353
|
format: this.wmsParameters.format,
|
|
344
354
|
transparent: this.wmsParameters.transparent,
|
|
355
|
+
time: this.wmsParameters.time,
|
|
356
|
+
elevation: this.wmsParameters.elevation,
|
|
345
357
|
layers: this.wmsParameters.layers,
|
|
346
358
|
styles: this.wmsParameters.styles,
|
|
347
359
|
crs: this.wmsParameters.crs,
|
|
@@ -440,9 +452,10 @@ export class WMSService extends ImageSource<WMSServiceProps> {
|
|
|
440
452
|
};
|
|
441
453
|
|
|
442
454
|
// Encode the keys
|
|
455
|
+
const IGNORE_EMPTY_KEYS = ['transparent', 'time', 'elevation'];
|
|
443
456
|
for (const [key, value] of Object.entries(allParameters)) {
|
|
444
457
|
// hack to preserve test cases. Not super clear if keys should be included when values are undefined
|
|
445
|
-
if (key
|
|
458
|
+
if (!IGNORE_EMPTY_KEYS.includes(key) || value) {
|
|
446
459
|
url += first ? '?' : '&';
|
|
447
460
|
first = false;
|
|
448
461
|
url += this._getURLParameter(key, value, wmsParameters);
|
|
@@ -7,8 +7,8 @@ import {DataSource} from './data-source';
|
|
|
7
7
|
/**
|
|
8
8
|
* Normalized capabilities of an Image service
|
|
9
9
|
* @example
|
|
10
|
-
* The WMSService will normalize the response to the WMS `GetCapabilities`
|
|
11
|
-
* into an ImageSourceMetadata.
|
|
10
|
+
* The WMSService will normalize the response to the WMS `GetCapabilities`
|
|
11
|
+
* data structure extracted from WMS XML response into an ImageSourceMetadata.
|
|
12
12
|
*/
|
|
13
13
|
export type ImageSourceMetadata = {
|
|
14
14
|
name: string;
|
|
@@ -18,14 +18,24 @@ export type ImageSourceMetadata = {
|
|
|
18
18
|
layers: ImageSourceLayer[];
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
/** Description of one data layer in the image source */
|
|
21
22
|
export type ImageSourceLayer = {
|
|
23
|
+
/** Name of this layer */
|
|
22
24
|
name?: string;
|
|
25
|
+
/** Human readable title of this layer */
|
|
23
26
|
title?: string;
|
|
27
|
+
/** Coordinate systems supported by this layer */
|
|
24
28
|
crs?: string[];
|
|
25
|
-
|
|
29
|
+
/** layer limits in unspecified CRS:84-like lng/lat, for quick access w/o CRS calculations. */
|
|
30
|
+
geographicBoundingBox?: [min: [x: number, y: number], max: [x: number, y: number]];
|
|
31
|
+
/** Sub layers of this layer */
|
|
26
32
|
layers?: ImageSourceLayer[];
|
|
33
|
+
|
|
34
|
+
/** @deprecated from v3.4: non-vis.gl style bounding box. Use `.geographicBoundingBox` instead */
|
|
35
|
+
boundingBox?: [number, number, number, number];
|
|
27
36
|
};
|
|
28
37
|
|
|
38
|
+
/** Generic parameters for requesting an image from an image source */
|
|
29
39
|
export type GetImageParameters = {
|
|
30
40
|
/** Layers to render */
|
|
31
41
|
layers: string | string[];
|
|
@@ -74,7 +84,9 @@ export type ImageSourceProps = DataSourceProps;
|
|
|
74
84
|
* @note
|
|
75
85
|
* - If geospatial, bounding box is expected to be in web mercator coordinates
|
|
76
86
|
*/
|
|
77
|
-
export abstract class ImageSource<
|
|
87
|
+
export abstract class ImageSource<
|
|
88
|
+
PropsT extends ImageSourceProps = ImageSourceProps
|
|
89
|
+
> extends DataSource<PropsT> {
|
|
78
90
|
abstract getMetadata(): Promise<ImageSourceMetadata>;
|
|
79
91
|
abstract getImage(parameters: GetImageParameters): Promise<ImageType>;
|
|
80
92
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
3
|
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
4
|
-
import {
|
|
4
|
+
import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
5
|
+
import {WMSCapabilitiesLoader} from '../wms-capabilities-loader';
|
|
5
6
|
|
|
6
7
|
import type {WMSFeatureInfo} from '../lib/parsers/wms/parse-wms-features';
|
|
7
8
|
import {parseWMSFeatureInfo} from '../lib/parsers/wms/parse-wms-features';
|
|
@@ -17,9 +18,9 @@ export const WMSFeatureInfoLoader = {
|
|
|
17
18
|
id: 'wms-feature-info',
|
|
18
19
|
name: 'WMS FeatureInfo',
|
|
19
20
|
|
|
20
|
-
parse: async (arrayBuffer: ArrayBuffer, options?:
|
|
21
|
+
parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>
|
|
21
22
|
parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),
|
|
22
|
-
parseTextSync: (text: string, options?:
|
|
23
|
+
parseTextSync: (text: string, options?: XMLLoaderOptions) => parseWMSFeatureInfo(text, options)
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
export const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSFeatureInfoLoader;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
3
|
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
4
|
-
import type{
|
|
4
|
+
import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
5
5
|
import {WMSCapabilitiesLoader} from '../wms-capabilities-loader';
|
|
6
6
|
|
|
7
7
|
import type {WMSLayerDescription} from '../lib/parsers/wms/parse-wms-layer-description';
|
|
@@ -18,9 +18,9 @@ export const WMSLayerDescriptionLoader = {
|
|
|
18
18
|
id: 'wms-layer-description',
|
|
19
19
|
name: 'WMS DescribeLayer',
|
|
20
20
|
|
|
21
|
-
parse: async (arrayBuffer: ArrayBuffer, options?:
|
|
21
|
+
parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>
|
|
22
22
|
parseWMSLayerDescription(new TextDecoder().decode(arrayBuffer), options),
|
|
23
|
-
parseTextSync: (text: string, options?:
|
|
23
|
+
parseTextSync: (text: string, options?: XMLLoaderOptions) => parseWMSLayerDescription(text, options)
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSLayerDescriptionLoader;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
|
-
import type {LoaderWithParser
|
|
3
|
+
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
4
|
+
import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
4
5
|
// import type {WMTSCapabilities} from './lib/wmts/parse-wmts-capabilities';
|
|
5
6
|
import {parseWMTSCapabilities} from './lib/wmts/parse-wmts-capabilities';
|
|
6
7
|
|
|
@@ -10,7 +11,7 @@ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
|
10
11
|
|
|
11
12
|
// export type {WMTSCapabilities};
|
|
12
13
|
|
|
13
|
-
export type WMTSLoaderOptions =
|
|
14
|
+
export type WMTSLoaderOptions = XMLLoaderOptions & {
|
|
14
15
|
wmts?: {};
|
|
15
16
|
};
|
|
16
17
|
|
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
|
-
import type {LoaderWithParser
|
|
4
|
-
import type {
|
|
3
|
+
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
4
|
+
import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
5
5
|
import {parseWMSCapabilities} from './lib/parsers/wms/parse-wms-capabilities';
|
|
6
6
|
|
|
7
7
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
8
8
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
9
9
|
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
10
10
|
|
|
11
|
-
// Parsed data
|
|
12
|
-
export type {
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
// Parsed data types
|
|
12
|
+
export type {
|
|
13
|
+
WMSCapabilities,
|
|
14
|
+
WMSLayer,
|
|
15
|
+
WMSBoundingBox,
|
|
16
|
+
WMSDimension,
|
|
17
|
+
WMSRequest,
|
|
18
|
+
WMSExceptions
|
|
19
|
+
} from './lib/parsers/wms/parse-wms-capabilities';
|
|
20
|
+
|
|
21
|
+
export type WMSCapabilitiesLoaderOptions = XMLLoaderOptions & {
|
|
15
22
|
wms?: {
|
|
16
23
|
/** Add inherited layer information to sub layers */
|
|
17
24
|
inheritedLayerProps?: boolean;
|
|
18
|
-
/**
|
|
25
|
+
/** Include the "raw" JSON (parsed but untyped, unprocessed XML). May contain additional fields */
|
|
26
|
+
includeRawData?: boolean;
|
|
27
|
+
/** Include the original XML document text. May contain additional information. */
|
|
28
|
+
includeXMLText?: boolean;
|
|
29
|
+
/** @deprecated Use options.includeRawData` */
|
|
19
30
|
raw?: boolean;
|
|
20
31
|
};
|
|
21
32
|
};
|
|
@@ -36,9 +47,11 @@ export const WMSCapabilitiesLoader = {
|
|
|
36
47
|
options: {
|
|
37
48
|
wms: {}
|
|
38
49
|
},
|
|
39
|
-
parse: async (arrayBuffer: ArrayBuffer, options?:
|
|
50
|
+
parse: async (arrayBuffer: ArrayBuffer, options?: WMSCapabilitiesLoaderOptions) =>
|
|
51
|
+
// TODO pass in XML options
|
|
40
52
|
parseWMSCapabilities(new TextDecoder().decode(arrayBuffer), options?.wms),
|
|
41
|
-
parseTextSync: (text: string, options?:
|
|
53
|
+
parseTextSync: (text: string, options?: WMSCapabilitiesLoaderOptions) =>
|
|
54
|
+
// TODO pass in XML options
|
|
42
55
|
parseWMSCapabilities(text, options?.wms)
|
|
43
56
|
};
|
|
44
57
|
|