@loaders.gl/wms 3.3.0-alpha.12 → 3.3.0-alpha.14
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/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +6 -0
- package/dist/dist.min.js +3990 -5373
- package/dist/es5/index.js +44 -16
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lerc-loader.js +74 -0
- package/dist/es5/lerc-loader.js.map +1 -0
- package/dist/es5/lib/data-sources/adhoc-image-service.js +129 -0
- package/dist/es5/lib/data-sources/adhoc-image-service.js.map +1 -0
- package/dist/es5/lib/data-sources/arcgis-image-service.js +180 -0
- package/dist/es5/lib/data-sources/arcgis-image-service.js.map +1 -0
- package/dist/es5/lib/data-sources/create-image-source.js +45 -0
- package/dist/es5/lib/data-sources/create-image-source.js.map +1 -0
- package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js +179 -0
- package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
- package/dist/es5/lib/data-sources/image-services/image-service.js +163 -0
- package/dist/es5/lib/data-sources/image-services/image-service.js.map +1 -0
- package/dist/es5/lib/data-sources/image-services/wms-service.js +400 -0
- package/dist/es5/lib/data-sources/image-services/wms-service.js.map +1 -0
- package/dist/es5/lib/data-sources/image-source.js +14 -0
- package/dist/es5/lib/data-sources/image-source.js.map +1 -0
- package/dist/es5/lib/gml/deep-strict-equal.js +64 -0
- package/dist/es5/lib/gml/deep-strict-equal.js.map +1 -0
- package/dist/es5/lib/gml/parse-gml.js +3 -3
- package/dist/es5/lib/gml/parse-gml.js.map +1 -1
- package/dist/es5/lib/lerc/lerc-types.js +2 -0
- package/dist/es5/lib/lerc/lerc-types.js.map +1 -0
- package/dist/es5/lib/wcs/parse-wcs.js +43 -0
- package/dist/es5/lib/wcs/parse-wcs.js.map +1 -0
- package/dist/es5/lib/wcs/wcs-types.js +2 -0
- package/dist/es5/lib/wcs/wcs-types.js.map +1 -0
- package/dist/es5/lib/wms/parse-wms.js +6 -4
- package/dist/es5/lib/wms/parse-wms.js.map +1 -1
- package/dist/es5/wip/arcgis-feature-service.js +45 -0
- package/dist/es5/wip/arcgis-feature-service.js.map +1 -0
- package/dist/es5/wip/data-source.js +4 -0
- package/dist/es5/wip/data-source.js.map +1 -0
- package/dist/es5/{gml-loader.js → wip/gml-loader.js} +2 -2
- package/dist/es5/wip/gml-loader.js.map +1 -0
- package/dist/es5/{wcs-capabilities-loader.js → wip/wcs-capabilities-loader.js} +5 -5
- package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -0
- package/dist/es5/{wfs-capabilities-loader.js → wip/wfs-capabilities-loader.js} +3 -3
- package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -0
- package/dist/es5/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
- package/dist/es5/wip/wms-feature-info-loader.js.map +1 -0
- package/dist/es5/{wms-layer-description-loader.js → wip/wms-layer-description-loader.js} +3 -3
- package/dist/es5/wip/wms-layer-description-loader.js.map +1 -0
- package/dist/es5/wip/wms-layer-description-loader.md +47 -0
- package/dist/es5/{wmts-capabilities-loader.js → wip/wmts-capabilities-loader.js} +3 -3
- package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -0
- package/dist/es5/wms-capabilities-loader.js +2 -2
- package/dist/es5/wms-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-error-loader.js +22 -6
- package/dist/es5/wms-error-loader.js.map +1 -1
- package/dist/esm/index.js +12 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lerc-loader.js +25 -0
- package/dist/esm/lerc-loader.js.map +1 -0
- package/dist/esm/lib/data-sources/adhoc-image-service.js +43 -0
- package/dist/esm/lib/data-sources/adhoc-image-service.js.map +1 -0
- package/dist/esm/lib/data-sources/arcgis-image-service.js +62 -0
- package/dist/esm/lib/data-sources/arcgis-image-service.js.map +1 -0
- package/dist/esm/lib/data-sources/create-image-source.js +30 -0
- package/dist/esm/lib/data-sources/create-image-source.js.map +1 -0
- package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +61 -0
- package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
- package/dist/esm/lib/data-sources/image-services/image-service.js +72 -0
- package/dist/esm/lib/data-sources/image-services/image-service.js.map +1 -0
- package/dist/esm/lib/data-sources/image-services/wms-service.js +190 -0
- package/dist/esm/lib/data-sources/image-services/wms-service.js.map +1 -0
- package/dist/esm/lib/data-sources/image-source.js +4 -0
- package/dist/esm/lib/data-sources/image-source.js.map +1 -0
- package/dist/esm/lib/gml/deep-strict-equal.js +57 -0
- package/dist/esm/lib/gml/deep-strict-equal.js.map +1 -0
- package/dist/esm/lib/gml/parse-gml.js +1 -1
- package/dist/esm/lib/gml/parse-gml.js.map +1 -1
- package/dist/esm/lib/lerc/lerc-types.js +2 -0
- package/dist/esm/lib/lerc/lerc-types.js.map +1 -0
- package/dist/esm/lib/wcs/parse-wcs.js +32 -0
- package/dist/esm/lib/wcs/parse-wcs.js.map +1 -0
- package/dist/esm/lib/wcs/wcs-types.js +2 -0
- package/dist/esm/lib/wcs/wcs-types.js.map +1 -0
- package/dist/esm/lib/wms/parse-wms.js +6 -4
- package/dist/esm/lib/wms/parse-wms.js.map +1 -1
- package/dist/esm/wip/arcgis-feature-service.js +28 -0
- package/dist/esm/wip/arcgis-feature-service.js.map +1 -0
- package/dist/esm/wip/data-source.js +2 -0
- package/dist/esm/wip/data-source.js.map +1 -0
- package/dist/esm/{gml-loader.js → wip/gml-loader.js} +2 -2
- package/dist/esm/wip/gml-loader.js.map +1 -0
- package/dist/esm/{wcs-capabilities-loader.js → wip/wcs-capabilities-loader.js} +3 -3
- package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -0
- package/dist/esm/{wfs-capabilities-loader.js → wip/wfs-capabilities-loader.js} +3 -3
- package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -0
- package/dist/esm/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
- package/dist/esm/wip/wms-feature-info-loader.js.map +1 -0
- package/dist/esm/{wms-layer-description-loader.js → wip/wms-layer-description-loader.js} +3 -3
- package/dist/esm/wip/wms-layer-description-loader.js.map +1 -0
- package/dist/esm/wip/wms-layer-description-loader.md +47 -0
- package/dist/esm/{wmts-capabilities-loader.js → wip/wmts-capabilities-loader.js} +3 -3
- package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -0
- package/dist/esm/wms-capabilities-loader.js +2 -2
- package/dist/esm/wms-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-error-loader.js +20 -5
- package/dist/esm/wms-error-loader.js.map +1 -1
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/lerc-loader.d.ts +30 -0
- package/dist/lerc-loader.d.ts.map +1 -0
- package/dist/lerc-loader.js +56 -0
- package/dist/lib/data-sources/adhoc-image-service.d.ts +24 -0
- package/dist/lib/data-sources/adhoc-image-service.d.ts.map +1 -0
- package/dist/lib/data-sources/adhoc-image-service.js +46 -0
- package/dist/lib/data-sources/arcgis-image-service.d.ts +79 -0
- package/dist/lib/data-sources/arcgis-image-service.d.ts.map +1 -0
- package/dist/lib/data-sources/arcgis-image-service.js +85 -0
- package/dist/lib/data-sources/create-image-source.d.ts +16 -0
- package/dist/lib/data-sources/create-image-source.d.ts.map +1 -0
- package/dist/lib/data-sources/create-image-source.js +39 -0
- package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts +71 -0
- package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +1 -0
- package/dist/lib/data-sources/image-services/arcgis-image-service.js +85 -0
- package/dist/lib/data-sources/image-services/image-service.d.ts +39 -0
- package/dist/lib/data-sources/image-services/image-service.d.ts.map +1 -0
- package/dist/lib/data-sources/image-services/image-service.js +82 -0
- package/dist/lib/data-sources/image-services/wms-service.d.ts +188 -0
- package/dist/lib/data-sources/image-services/wms-service.d.ts.map +1 -0
- package/dist/lib/data-sources/image-services/wms-service.js +218 -0
- package/dist/lib/data-sources/image-source.d.ts +73 -0
- package/dist/lib/data-sources/image-source.d.ts.map +1 -0
- package/dist/lib/data-sources/image-source.js +12 -0
- package/dist/lib/gml/deep-strict-equal.d.ts +3 -0
- package/dist/lib/gml/deep-strict-equal.d.ts.map +1 -0
- package/dist/lib/gml/deep-strict-equal.js +119 -0
- package/dist/lib/gml/parse-gml.d.ts +28 -0
- package/dist/lib/gml/parse-gml.d.ts.map +1 -0
- package/dist/lib/gml/parse-gml.js +371 -0
- package/dist/lib/lerc/lerc-types.d.ts +30 -0
- package/dist/lib/lerc/lerc-types.d.ts.map +1 -0
- package/dist/lib/lerc/lerc-types.js +3 -0
- package/dist/lib/wcs/parse-wcs.d.ts +7 -0
- package/dist/lib/wcs/parse-wcs.d.ts.map +1 -0
- package/dist/lib/wcs/parse-wcs.js +36 -0
- package/dist/lib/wcs/wcs-types.d.ts +73 -0
- package/dist/lib/wcs/wcs-types.d.ts.map +1 -0
- package/dist/lib/wcs/wcs-types.js +3 -0
- package/dist/lib/wfs/parse-wfs.d.ts +7 -0
- package/dist/lib/wfs/parse-wfs.d.ts.map +1 -0
- package/dist/lib/wfs/parse-wfs.js +36 -0
- package/dist/lib/wfs/wfs-types.d.ts +73 -0
- package/dist/lib/wfs/wfs-types.d.ts.map +1 -0
- package/dist/lib/wfs/wfs-types.js +3 -0
- package/dist/lib/wms/parse-wms.d.ts +24 -0
- package/dist/lib/wms/parse-wms.d.ts.map +1 -0
- package/dist/lib/wms/parse-wms.js +115 -0
- package/dist/lib/wms/wms-types.d.ts +100 -0
- package/dist/lib/wms/wms-types.d.ts.map +1 -0
- package/dist/lib/wms/wms-types.js +1908 -0
- package/dist/lib/wmts/parse-wmts.d.ts +7 -0
- package/dist/lib/wmts/parse-wmts.d.ts.map +1 -0
- package/dist/lib/wmts/parse-wmts.js +36 -0
- package/dist/lib/wmts/wmts-types.d.ts +73 -0
- package/dist/lib/wmts/wmts-types.d.ts.map +1 -0
- package/dist/lib/wmts/wmts-types.js +3 -0
- package/dist/wip/arcgis-feature-service.d.ts +56 -0
- package/dist/wip/arcgis-feature-service.d.ts.map +1 -0
- package/dist/wip/arcgis-feature-service.js +28 -0
- package/dist/wip/data-source.d.ts +54 -0
- package/dist/wip/data-source.d.ts.map +1 -0
- package/dist/wip/data-source.js +59 -0
- package/dist/wip/gml-loader.d.ts +26 -0
- package/dist/wip/gml-loader.d.ts.map +1 -0
- package/dist/wip/gml-loader.js +31 -0
- package/dist/wip/wcs-capabilities-loader.d.ts +26 -0
- package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -0
- package/dist/wip/wcs-capabilities-loader.js +31 -0
- package/dist/wip/wfs-capabilities-loader.d.ts +26 -0
- package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -0
- package/dist/wip/wfs-capabilities-loader.js +31 -0
- package/dist/wip/wms-feature-info-loader.d.ts +22 -0
- package/dist/wip/wms-feature-info-loader.d.ts.map +1 -0
- package/dist/wip/wms-feature-info-loader.js +17 -0
- package/dist/wip/wms-layer-description-loader.d.ts +22 -0
- package/dist/wip/wms-layer-description-loader.d.ts.map +1 -0
- package/dist/wip/wms-layer-description-loader.js +17 -0
- package/dist/wip/wmts-capabilities-loader.d.ts +26 -0
- package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -0
- package/dist/wip/wmts-capabilities-loader.js +31 -0
- package/dist/wms-capabilities-loader.d.ts +26 -0
- package/dist/wms-capabilities-loader.d.ts.map +1 -0
- package/dist/wms-capabilities-loader.js +31 -0
- package/dist/wms-error-loader.d.ts +34 -0
- package/dist/wms-error-loader.d.ts.map +1 -0
- package/dist/wms-error-loader.js +43 -0
- package/package.json +9 -8
- package/src/index.ts +41 -15
- package/src/lerc-loader.ts +50 -0
- package/src/lib/data-sources/adhoc-image-service.ts +61 -0
- package/src/lib/data-sources/arcgis-image-service.ts +146 -0
- package/src/lib/data-sources/create-image-source.ts +46 -0
- package/src/lib/data-sources/image-services/arcgis-image-service.ts +136 -0
- package/src/lib/data-sources/image-services/image-service.ts +105 -0
- package/src/lib/data-sources/image-services/wms-service.ts +351 -0
- package/src/lib/data-sources/image-source.ts +82 -0
- package/src/lib/gml/deep-strict-equal.ts +119 -0
- package/src/lib/gml/parse-gml.ts +1 -1
- package/src/lib/lerc/lerc-types.ts +43 -0
- package/src/lib/wcs/parse-wcs.ts +39 -0
- package/src/lib/wcs/wcs-types.ts +77 -0
- package/src/lib/wms/parse-wms.ts +16 -3
- package/src/wip/arcgis-feature-service.ts +89 -0
- package/src/{lib/data-sources/image-data-source.ts → wip/data-source.ts} +20 -41
- package/src/{gml-loader.ts → wip/gml-loader.ts} +1 -1
- package/src/{wcs-capabilities-loader.ts → wip/wcs-capabilities-loader.ts} +2 -2
- package/src/{wfs-capabilities-loader.ts → wip/wfs-capabilities-loader.ts} +2 -2
- package/src/{wms-feature-info-loader.ts → wip/wms-feature-info-loader.ts} +3 -3
- package/src/wip/wms-layer-description-loader.md +47 -0
- package/src/{wms-layer-description-loader.ts → wip/wms-layer-description-loader.ts} +3 -3
- package/src/{wmts-capabilities-loader.ts → wip/wmts-capabilities-loader.ts} +2 -2
- package/src/wms-capabilities-loader.ts +1 -1
- package/src/wms-error-loader.ts +25 -6
- package/dist/es5/gml-loader.js.map +0 -1
- package/dist/es5/lib/data-sources/image-data-source.js +0 -4
- package/dist/es5/lib/data-sources/image-data-source.js.map +0 -1
- package/dist/es5/lib/data-sources/wms-service.js +0 -340
- package/dist/es5/lib/data-sources/wms-service.js.map +0 -1
- package/dist/es5/wcs-capabilities-loader.js.map +0 -1
- package/dist/es5/wfs-capabilities-loader.js.map +0 -1
- package/dist/es5/wms-feature-info-loader.js.map +0 -1
- package/dist/es5/wms-layer-description-loader.js.map +0 -1
- package/dist/es5/wmts-capabilities-loader.js.map +0 -1
- package/dist/esm/gml-loader.js.map +0 -1
- package/dist/esm/lib/data-sources/image-data-source.js +0 -2
- package/dist/esm/lib/data-sources/image-data-source.js.map +0 -1
- package/dist/esm/lib/data-sources/wms-service.js +0 -156
- package/dist/esm/lib/data-sources/wms-service.js.map +0 -1
- package/dist/esm/wcs-capabilities-loader.js.map +0 -1
- package/dist/esm/wfs-capabilities-loader.js.map +0 -1
- package/dist/esm/wms-feature-info-loader.js.map +0 -1
- package/dist/esm/wms-layer-description-loader.js.map +0 -1
- package/dist/esm/wmts-capabilities-loader.js.map +0 -1
- package/src/lib/data-sources/wms-service.ts +0 -313
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
|
|
3
|
-
import { WMSCapabilitiesLoader, WMSFeatureInfoLoader, WMSLayerDescriptionLoader, WMSErrorLoader } from '@loaders.gl/wms';
|
|
4
|
-
import { ImageLoader } from '@loaders.gl/images';
|
|
5
|
-
const WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS = {
|
|
6
|
-
service: 'WMS',
|
|
7
|
-
version: '1.1.1',
|
|
8
|
-
request: 'GetCapabilities'
|
|
9
|
-
};
|
|
10
|
-
const WMS_GET_MAP_DEFAULT_PARAMETERS = {
|
|
11
|
-
service: 'WMS',
|
|
12
|
-
version: '1.1.1',
|
|
13
|
-
request: 'GetMap',
|
|
14
|
-
layers: [],
|
|
15
|
-
styles: undefined,
|
|
16
|
-
bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
|
|
17
|
-
width: 1200,
|
|
18
|
-
height: 900,
|
|
19
|
-
srs: 'EPSG:4326',
|
|
20
|
-
format: 'image/png'
|
|
21
|
-
};
|
|
22
|
-
const WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS = {
|
|
23
|
-
service: 'WMS',
|
|
24
|
-
version: '1.1.1',
|
|
25
|
-
request: 'GetFeatureInfo',
|
|
26
|
-
layers: [],
|
|
27
|
-
styles: undefined,
|
|
28
|
-
bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
|
|
29
|
-
width: 1200,
|
|
30
|
-
height: 900,
|
|
31
|
-
srs: 'EPSG:4326',
|
|
32
|
-
format: 'image/png',
|
|
33
|
-
x: undefined,
|
|
34
|
-
y: undefined,
|
|
35
|
-
query_layers: [],
|
|
36
|
-
info_format: 'text/plain'
|
|
37
|
-
};
|
|
38
|
-
const WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS = {
|
|
39
|
-
service: 'WMS',
|
|
40
|
-
version: '1.1.1',
|
|
41
|
-
request: 'DescribeLayer'
|
|
42
|
-
};
|
|
43
|
-
const WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS = {
|
|
44
|
-
service: 'WMS',
|
|
45
|
-
version: '1.1.1',
|
|
46
|
-
request: 'GetLegendGraphic'
|
|
47
|
-
};
|
|
48
|
-
export class WMSService {
|
|
49
|
-
constructor(props) {
|
|
50
|
-
_defineProperty(this, "url", void 0);
|
|
51
|
-
_defineProperty(this, "loadOptions", void 0);
|
|
52
|
-
_defineProperty(this, "fetch", void 0);
|
|
53
|
-
this.url = props.url;
|
|
54
|
-
this.loadOptions = props.loadOptions || {};
|
|
55
|
-
this.fetch = props.fetch || fetch;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
getCapabilitiesURL(parameters, extra) {
|
|
59
|
-
const options = {
|
|
60
|
-
...WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS,
|
|
61
|
-
...parameters,
|
|
62
|
-
...extra
|
|
63
|
-
};
|
|
64
|
-
return this.getWMSUrl(options, extra);
|
|
65
|
-
}
|
|
66
|
-
getMapURL(parameters, extra) {
|
|
67
|
-
const options = {
|
|
68
|
-
...WMS_GET_MAP_DEFAULT_PARAMETERS,
|
|
69
|
-
...parameters,
|
|
70
|
-
...extra
|
|
71
|
-
};
|
|
72
|
-
return this.getWMSUrl(options, extra);
|
|
73
|
-
}
|
|
74
|
-
getFeatureInfoURL(parameters, extra) {
|
|
75
|
-
const options = {
|
|
76
|
-
...WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS,
|
|
77
|
-
...parameters,
|
|
78
|
-
...extra
|
|
79
|
-
};
|
|
80
|
-
return this.getWMSUrl(options, extra);
|
|
81
|
-
}
|
|
82
|
-
describeLayerURL(parameters, extra) {
|
|
83
|
-
const options = {
|
|
84
|
-
...WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS,
|
|
85
|
-
...parameters,
|
|
86
|
-
...extra
|
|
87
|
-
};
|
|
88
|
-
return this.getWMSUrl(options, extra);
|
|
89
|
-
}
|
|
90
|
-
getLegendGraphicURL(parameters, extra) {
|
|
91
|
-
const options = {
|
|
92
|
-
...WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS,
|
|
93
|
-
...parameters,
|
|
94
|
-
...extra
|
|
95
|
-
};
|
|
96
|
-
return this.getWMSUrl(options, extra);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async getCapabilities(parameters, extra) {
|
|
100
|
-
const url = this.getCapabilitiesURL(parameters, extra);
|
|
101
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
102
|
-
await this.checkResponse(response);
|
|
103
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
104
|
-
return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
async getMap(options, extra) {
|
|
108
|
-
const url = this.getMapURL(options, extra);
|
|
109
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
110
|
-
await this.checkResponse(response);
|
|
111
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
112
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
async getFeatureInfo(options, extra) {
|
|
116
|
-
const url = this.getFeatureInfoURL(options, extra);
|
|
117
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
118
|
-
await this.checkResponse(response);
|
|
119
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
120
|
-
return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async describeLayer(options, extra) {
|
|
124
|
-
const url = this.describeLayerURL(options, extra);
|
|
125
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
126
|
-
await this.checkResponse(response);
|
|
127
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
128
|
-
return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
async getLegendGraphic(options, extra) {
|
|
132
|
-
const url = this.getLegendGraphicURL(options, extra);
|
|
133
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
134
|
-
await this.checkResponse(response);
|
|
135
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
136
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
getWMSUrl(options, extra) {
|
|
140
|
-
var _options$layers;
|
|
141
|
-
let url = "".concat(this.url, "?REQUEST=").concat(options.request);
|
|
142
|
-
if ((_options$layers = options.layers) !== null && _options$layers !== void 0 && _options$layers.length) {
|
|
143
|
-
url += "&LAYERS=[".concat(options.layers.join(','), "]");
|
|
144
|
-
}
|
|
145
|
-
return url;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
async checkResponse(response) {
|
|
149
|
-
if (!response.ok || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {
|
|
150
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
151
|
-
const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);
|
|
152
|
-
throw new Error(error);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=wms-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-service.js","names":["WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","WMSErrorLoader","ImageLoader","WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS","service","version","request","WMS_GET_MAP_DEFAULT_PARAMETERS","layers","styles","undefined","bbox","width","height","srs","format","WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS","x","y","query_layers","info_format","WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS","WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS","WMSService","constructor","props","url","loadOptions","fetch","getCapabilitiesURL","parameters","extra","options","getWMSUrl","getMapURL","getFeatureInfoURL","describeLayerURL","getLegendGraphicURL","getCapabilities","response","checkResponse","arrayBuffer","parse","getMap","getFeatureInfo","describeLayer","getLegendGraphic","length","join","ok","headers","mimeTypes","error","Error"],"sources":["../../../../src/lib/data-sources/wms-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '@loaders.gl/wms';\nimport {\n WMSCapabilitiesLoader,\n WMSFeatureInfoLoader,\n WMSLayerDescriptionLoader,\n WMSErrorLoader\n} from '@loaders.gl/wms';\nimport {ImageLoader, ImageType} from '@loaders.gl/images';\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\n\ntype FetchLike = (url: string, options?: RequestInit) => Promise<Response>;\n\nexport type WMSGetCapabilitiesParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type WMSGetMapParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetMap';\n /** Layers to render */\n layers: string[];\n /** Styling */\n styles?: unknown;\n /** bounding box of the requested map image */\n bbox: [number, number, number, number];\n /** pixel width of returned image */\n width: number;\n /** pixels */\n height: number;\n /** srs for the image (not the bounding box) */\n srs?: string;\n /** requested format for the return image */\n format?: 'image/png';\n};\n\n// https://imagery.pasda.psu.edu/arcgis/services/pasda/UrbanTreeCanopy_Landcover/MapServer/WmsServer?SERVICE=WMS&\nexport type WMSGetFeatureInfoParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetFeatureInfo';\n\n /** x coordinate for the feature info request */\n x: number;\n /** y coordinate for the feature info request */\n y: number;\n /** list of layers to query (could be different from rendered layers) */\n query_layers: string[];\n /** MIME type of returned feature info */\n info_format: 'text/plain';\n\n /** Layers to render */\n layers: string[];\n /** Styling */\n styles?: unknown;\n /** bounding box of the requested map image */\n bbox: [number, number, number, number];\n /** pixel width of returned image */\n width: number;\n /** pixels */\n height: number;\n /** srs for the image (not the bounding box) */\n srs?: string;\n /** requested format for the return image */\n format?: 'image/png';\n};\n\nexport type WMSDescribeLayerParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'DescribeLayer';\n};\n\nexport type WMSGetLegendGraphicParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetLegendGraphic';\n};\n\nconst WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS: Required<WMSGetCapabilitiesParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetCapabilities'\n};\n\nconst WMS_GET_MAP_DEFAULT_PARAMETERS: Required<WMSGetMapParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetMap',\n layers: [],\n styles: undefined,\n bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n width: 1200,\n height: 900,\n srs: 'EPSG:4326',\n format: 'image/png'\n};\n\nconst WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS: Required<WMSGetFeatureInfoParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetFeatureInfo',\n layers: [],\n styles: undefined,\n bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n width: 1200,\n height: 900,\n srs: 'EPSG:4326',\n format: 'image/png',\n\n x: undefined!,\n y: undefined!,\n query_layers: [],\n info_format: 'text/plain'\n};\n\nconst WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS: Required<WMSDescribeLayerParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'DescribeLayer'\n};\n\nconst WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS: Required<WMSGetLegendGraphicParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetLegendGraphic'\n};\n\nexport type WMSServiceProps = {\n url: string;\n loadOptions?: LoaderOptions;\n fetch?: typeof fetch | FetchLike;\n};\n\nexport class WMSService {\n url: string;\n loadOptions: LoaderOptions;\n fetch: typeof fetch | FetchLike;\n\n constructor(props: WMSServiceProps) {\n this.url = props.url;\n this.loadOptions = props.loadOptions || {};\n this.fetch = props.fetch || fetch;\n }\n\n // Typed URL creators\n\n getCapabilitiesURL(\n parameters?: WMSGetCapabilitiesParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetCapabilitiesParameters> = {\n ...WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getMapURL(parameters: WMSGetMapParameters, extra?: Record<string, unknown>): string {\n const options: Required<WMSGetMapParameters> = {\n ...WMS_GET_MAP_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getFeatureInfoURL(\n parameters: WMSGetFeatureInfoParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetFeatureInfoParameters> = {\n ...WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n describeLayerURL(\n parameters: WMSDescribeLayerParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSDescribeLayerParameters> = {\n ...WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getLegendGraphicURL(\n parameters: WMSGetLegendGraphicParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetLegendGraphicParameters> = {\n ...WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n // WMS Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n parameters?: WMSGetCapabilitiesParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSCapabilities> {\n const url = this.getCapabilitiesURL(parameters, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get a map image */\n async getMap(options: WMSGetMapParameters, extra?: Record<string, unknown>): Promise<ImageType> {\n const url = this.getMapURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get Feature Info for a coordinate */\n async getFeatureInfo(\n options: WMSGetFeatureInfoParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSFeatureInfo> {\n const url = this.getFeatureInfoURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get more information about a layer */\n async describeLayer(\n options: WMSDescribeLayerParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSLayerDescription> {\n const url = this.describeLayerURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get an image with a semantic legend */\n async getLegendGraphic(\n options: WMSGetLegendGraphicParameters,\n extra?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getLegendGraphicURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?\n * @note if override is common, maybe add a callback prop?\n * */\n protected getWMSUrl(\n options: {\n request: string;\n layers?: string[];\n },\n extra?: Record<string, unknown>\n ): string {\n let url = `${this.url}?REQUEST=${options.request}`;\n if (options.layers?.length) {\n url += `&LAYERS=[${options.layers.join(',')}]`;\n }\n return url;\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected async checkResponse(response: Response) {\n if (!response.ok || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {\n const arrayBuffer = await response.arrayBuffer();\n const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);\n throw new Error(error);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wcs-capabilities-loader.js","names":["parseWFSCapabilities","VERSION","WCSCapabilitiesLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","wms","parse","arrayBuffer","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckWFSCapabilitiesLoader"],"sources":["../../src/wcs-capabilities-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseWFSCapabilities} from './lib/wfs/parse-wfs';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type WCSLoaderOptions = LoaderOptions & {\n wcs?: {};\n};\n\n/**\n * Loader for the response to the WCS GetCapability request\n */\nexport const WCSCapabilitiesLoader = {\n name: 'WFS Capabilities',\n id: 'wcs-capabilities',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wcs_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wms: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: WCSLoaderOptions) =>\n parseWFSCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WCSLoaderOptions) => parseWFSCapabilities(text, options)\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n\nexport const _typecheckWFSCapabilitiesLoader: LoaderWithParser = WCSCapabilitiesLoader;\n"],"mappings":";;AAGA,SAAQA,oBAAoB,QAAO,qBAAqB;;AAIxD,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAS3E,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,IAAI,EAAE,kBAAkB;EACxBC,EAAE,EAAE,kBAAkB;EAEtBC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,6BAA6B,EAAE,iBAAiB,EAAE,UAAU,CAAC;EACzEC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR,CAAC;EACDC,KAAK,EAAE,OAAOC,WAAwB,EAAEH,OAA0B,KAChEZ,oBAAoB,CAAC,IAAIgB,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEH,OAAO,CAAC;EACtEM,aAAa,EAAE,CAACC,IAAY,EAAEP,OAA0B,KAAKZ,oBAAoB,CAACmB,IAAI,EAAEP,OAAO;AACjG,CAAC;AAED,SAASD,WAAW,CAACQ,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,OAAO,MAAMC,+BAAiD,GAAGnB,qBAAqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wfs-capabilities-loader.js","names":["parseWFSCapabilities","VERSION","WFSCapabilitiesLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","wms","parse","arrayBuffer","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckWFSCapabilitiesLoader"],"sources":["../../src/wfs-capabilities-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseWFSCapabilities} from './lib/wfs/parse-wfs';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type WFSLoaderOptions = LoaderOptions & {\n wfs?: {};\n};\n\n/**\n * Loader for the response to the WFS GetCapability request\n */\nexport const WFSCapabilitiesLoader = {\n name: 'WFS Capabilities',\n id: 'wfs-capabilities',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wfs_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wms: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: WFSLoaderOptions) =>\n parseWFSCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WFSLoaderOptions) => parseWFSCapabilities(text, options)\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n\nexport const _typecheckWFSCapabilitiesLoader: LoaderWithParser = WFSCapabilitiesLoader;\n"],"mappings":";;AAGA,SAAQA,oBAAoB,QAAO,qBAAqB;;AAIxD,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAS3E,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,IAAI,EAAE,kBAAkB;EACxBC,EAAE,EAAE,kBAAkB;EAEtBC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,6BAA6B,EAAE,iBAAiB,EAAE,UAAU,CAAC;EACzEC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR,CAAC;EACDC,KAAK,EAAE,OAAOC,WAAwB,EAAEH,OAA0B,KAChEZ,oBAAoB,CAAC,IAAIgB,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEH,OAAO,CAAC;EACtEM,aAAa,EAAE,CAACC,IAAY,EAAEP,OAA0B,KAAKZ,oBAAoB,CAACmB,IAAI,EAAEP,OAAO;AACjG,CAAC;AAED,SAASD,WAAW,CAACQ,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,OAAO,MAAMC,+BAAiD,GAAGnB,qBAAqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-feature-info-loader.js","names":["WMSCapabilitiesLoader","parseWMSFeatureInfo","WMSFeatureInfoLoader","name","id","parse","arrayBuffer","options","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-feature-info-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSFeatureInfo} from './lib/wms/parse-wms';\n\n/**\n * Loader for the response to the WMS GetFeatureInfo request\n */\nexport const WMSFeatureInfoLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS FeatureInfo',\n id: 'wms-feature-info',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSFeatureInfo(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSFeatureInfoLoader;\n"],"mappings":";;AAGA,SAAQA,qBAAqB,QAAyB,2BAA2B;AACjF,SAAQC,mBAAmB,QAAO,qBAAqB;;AAKvD,OAAO,MAAMC,oBAAoB,GAAG;EAClC,GAAGF,qBAAqB;EAExBG,IAAI,EAAE,iBAAiB;EACvBC,EAAE,EAAE,kBAAkB;EAEtBC,KAAK,EAAE,OAAOC,WAAwB,EAAEC,OAA0B,KAChEN,mBAAmB,CAAC,IAAIO,WAAW,EAAE,CAACC,MAAM,CAACH,WAAW,CAAC,EAAEC,OAAO,CAAC;EACrEG,aAAa,EAAE,CAACC,IAAY,EAAEJ,OAA0B,KAAKN,mBAAmB,CAACU,IAAI,EAAEJ,OAAO;AAChG,CAAC;AAED,OAAO,MAAMK,8BAAgD,GAAGV,oBAAoB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-layer-description-loader.js","names":["WMSCapabilitiesLoader","parseWMSLayerDescription","WMSLayerDescriptionLoader","name","id","parse","arrayBuffer","options","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-layer-description-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSLayerDescription} from './lib/wms/parse-wms';\n\n/**\n * Loader for the response to the WMS DescribeLayer request\n */\nexport const WMSLayerDescriptionLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS DescribeLayer',\n id: 'wms-layer-description',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSLayerDescription(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSLayerDescription(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSLayerDescriptionLoader;\n"],"mappings":";;AAGA,SAAQA,qBAAqB,QAAyB,2BAA2B;AACjF,SAAQC,wBAAwB,QAAO,qBAAqB;;AAK5D,OAAO,MAAMC,yBAAyB,GAAG;EACvC,GAAGF,qBAAqB;EAExBG,IAAI,EAAE,mBAAmB;EACzBC,EAAE,EAAE,uBAAuB;EAE3BC,KAAK,EAAE,OAAOC,WAAwB,EAAEC,OAA0B,KAChEN,wBAAwB,CAAC,IAAIO,WAAW,EAAE,CAACC,MAAM,CAACH,WAAW,CAAC,EAAEC,OAAO,CAAC;EAC1EG,aAAa,EAAE,CAACC,IAAY,EAAEJ,OAA0B,KAAKN,wBAAwB,CAACU,IAAI,EAAEJ,OAAO;AACrG,CAAC;AAED,OAAO,MAAMK,8BAAgD,GAAGV,yBAAyB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wmts-capabilities-loader.js","names":["parseWMTSCapabilities","VERSION","WMTSCapabilitiesLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","wms","parse","arrayBuffer","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckWMTSCapabilitiesLoader"],"sources":["../../src/wmts-capabilities-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseWMTSCapabilities} from './lib/wmts/parse-wmts';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type WMTSLoaderOptions = LoaderOptions & {\n wmts?: {};\n};\n\n/**\n * Loader for the response to the WMTS GetCapability request\n */\nexport const WMTSCapabilitiesLoader = {\n name: 'WMTS Capabilities',\n id: 'wmts-capabilities',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wmts_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wms: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: WMTSLoaderOptions) =>\n parseWMTSCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMTSLoaderOptions) => parseWMTSCapabilities(text, options)\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n\nexport const _typecheckWMTSCapabilitiesLoader: LoaderWithParser = WMTSCapabilitiesLoader;\n"],"mappings":";;AAGA,SAAQA,qBAAqB,QAAO,uBAAuB;;AAI3D,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAS3E,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,IAAI,EAAE,mBAAmB;EACzBC,EAAE,EAAE,mBAAmB;EAEvBC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,UAAU,CAAC;EAC1EC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR,CAAC;EACDC,KAAK,EAAE,OAAOC,WAAwB,EAAEH,OAA2B,KACjEZ,qBAAqB,CAAC,IAAIgB,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEH,OAAO,CAAC;EACvEM,aAAa,EAAE,CAACC,IAAY,EAAEP,OAA2B,KAAKZ,qBAAqB,CAACmB,IAAI,EAAEP,OAAO;AACnG,CAAC;AAED,SAASD,WAAW,CAACQ,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,OAAO,MAAMC,gCAAkD,GAAGnB,sBAAsB"}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
// loaders.gl, MIT license
|
|
2
|
-
|
|
3
|
-
/* eslint-disable camelcase */
|
|
4
|
-
|
|
5
|
-
import type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '@loaders.gl/wms';
|
|
6
|
-
import {
|
|
7
|
-
WMSCapabilitiesLoader,
|
|
8
|
-
WMSFeatureInfoLoader,
|
|
9
|
-
WMSLayerDescriptionLoader,
|
|
10
|
-
WMSErrorLoader
|
|
11
|
-
} from '@loaders.gl/wms';
|
|
12
|
-
import {ImageLoader, ImageType} from '@loaders.gl/images';
|
|
13
|
-
import {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
14
|
-
|
|
15
|
-
type FetchLike = (url: string, options?: RequestInit) => Promise<Response>;
|
|
16
|
-
|
|
17
|
-
export type WMSGetCapabilitiesParameters = {
|
|
18
|
-
/** In case the endpoint supports multiple services */
|
|
19
|
-
service?: 'WMS';
|
|
20
|
-
/** In case the endpoint supports multiple WMS versions */
|
|
21
|
-
version?: '1.1.1' | '1.3.0';
|
|
22
|
-
/** Request type */
|
|
23
|
-
request?: 'GetCapabilities';
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export type WMSGetMapParameters = {
|
|
27
|
-
/** In case the endpoint supports multiple services */
|
|
28
|
-
service?: 'WMS';
|
|
29
|
-
/** In case the endpoint supports multiple WMS versions */
|
|
30
|
-
version?: '1.1.1' | '1.3.0';
|
|
31
|
-
/** Request type */
|
|
32
|
-
request?: 'GetMap';
|
|
33
|
-
/** Layers to render */
|
|
34
|
-
layers: string[];
|
|
35
|
-
/** Styling */
|
|
36
|
-
styles?: unknown;
|
|
37
|
-
/** bounding box of the requested map image */
|
|
38
|
-
bbox: [number, number, number, number];
|
|
39
|
-
/** pixel width of returned image */
|
|
40
|
-
width: number;
|
|
41
|
-
/** pixels */
|
|
42
|
-
height: number;
|
|
43
|
-
/** srs for the image (not the bounding box) */
|
|
44
|
-
srs?: string;
|
|
45
|
-
/** requested format for the return image */
|
|
46
|
-
format?: 'image/png';
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// https://imagery.pasda.psu.edu/arcgis/services/pasda/UrbanTreeCanopy_Landcover/MapServer/WmsServer?SERVICE=WMS&
|
|
50
|
-
export type WMSGetFeatureInfoParameters = {
|
|
51
|
-
/** In case the endpoint supports multiple services */
|
|
52
|
-
service?: 'WMS';
|
|
53
|
-
/** In case the endpoint supports multiple WMS versions */
|
|
54
|
-
version?: '1.1.1' | '1.3.0';
|
|
55
|
-
/** Request type */
|
|
56
|
-
request?: 'GetFeatureInfo';
|
|
57
|
-
|
|
58
|
-
/** x coordinate for the feature info request */
|
|
59
|
-
x: number;
|
|
60
|
-
/** y coordinate for the feature info request */
|
|
61
|
-
y: number;
|
|
62
|
-
/** list of layers to query (could be different from rendered layers) */
|
|
63
|
-
query_layers: string[];
|
|
64
|
-
/** MIME type of returned feature info */
|
|
65
|
-
info_format: 'text/plain';
|
|
66
|
-
|
|
67
|
-
/** Layers to render */
|
|
68
|
-
layers: string[];
|
|
69
|
-
/** Styling */
|
|
70
|
-
styles?: unknown;
|
|
71
|
-
/** bounding box of the requested map image */
|
|
72
|
-
bbox: [number, number, number, number];
|
|
73
|
-
/** pixel width of returned image */
|
|
74
|
-
width: number;
|
|
75
|
-
/** pixels */
|
|
76
|
-
height: number;
|
|
77
|
-
/** srs for the image (not the bounding box) */
|
|
78
|
-
srs?: string;
|
|
79
|
-
/** requested format for the return image */
|
|
80
|
-
format?: 'image/png';
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
export type WMSDescribeLayerParameters = {
|
|
84
|
-
/** In case the endpoint supports multiple services */
|
|
85
|
-
service?: 'WMS';
|
|
86
|
-
/** In case the endpoint supports multiple WMS versions */
|
|
87
|
-
version?: '1.1.1' | '1.3.0';
|
|
88
|
-
/** Request type */
|
|
89
|
-
request?: 'DescribeLayer';
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
export type WMSGetLegendGraphicParameters = {
|
|
93
|
-
/** In case the endpoint supports multiple services */
|
|
94
|
-
service?: 'WMS';
|
|
95
|
-
/** In case the endpoint supports multiple WMS versions */
|
|
96
|
-
version?: '1.1.1' | '1.3.0';
|
|
97
|
-
/** Request type */
|
|
98
|
-
request?: 'GetLegendGraphic';
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS: Required<WMSGetCapabilitiesParameters> = {
|
|
102
|
-
service: 'WMS',
|
|
103
|
-
version: '1.1.1',
|
|
104
|
-
request: 'GetCapabilities'
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
const WMS_GET_MAP_DEFAULT_PARAMETERS: Required<WMSGetMapParameters> = {
|
|
108
|
-
service: 'WMS',
|
|
109
|
-
version: '1.1.1',
|
|
110
|
-
request: 'GetMap',
|
|
111
|
-
layers: [],
|
|
112
|
-
styles: undefined,
|
|
113
|
-
bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
|
|
114
|
-
width: 1200,
|
|
115
|
-
height: 900,
|
|
116
|
-
srs: 'EPSG:4326',
|
|
117
|
-
format: 'image/png'
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS: Required<WMSGetFeatureInfoParameters> = {
|
|
121
|
-
service: 'WMS',
|
|
122
|
-
version: '1.1.1',
|
|
123
|
-
request: 'GetFeatureInfo',
|
|
124
|
-
layers: [],
|
|
125
|
-
styles: undefined,
|
|
126
|
-
bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
|
|
127
|
-
width: 1200,
|
|
128
|
-
height: 900,
|
|
129
|
-
srs: 'EPSG:4326',
|
|
130
|
-
format: 'image/png',
|
|
131
|
-
|
|
132
|
-
x: undefined!,
|
|
133
|
-
y: undefined!,
|
|
134
|
-
query_layers: [],
|
|
135
|
-
info_format: 'text/plain'
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
const WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS: Required<WMSDescribeLayerParameters> = {
|
|
139
|
-
service: 'WMS',
|
|
140
|
-
version: '1.1.1',
|
|
141
|
-
request: 'DescribeLayer'
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
const WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS: Required<WMSGetLegendGraphicParameters> = {
|
|
145
|
-
service: 'WMS',
|
|
146
|
-
version: '1.1.1',
|
|
147
|
-
request: 'GetLegendGraphic'
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
export type WMSServiceProps = {
|
|
151
|
-
url: string;
|
|
152
|
-
loadOptions?: LoaderOptions;
|
|
153
|
-
fetch?: typeof fetch | FetchLike;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
export class WMSService {
|
|
157
|
-
url: string;
|
|
158
|
-
loadOptions: LoaderOptions;
|
|
159
|
-
fetch: typeof fetch | FetchLike;
|
|
160
|
-
|
|
161
|
-
constructor(props: WMSServiceProps) {
|
|
162
|
-
this.url = props.url;
|
|
163
|
-
this.loadOptions = props.loadOptions || {};
|
|
164
|
-
this.fetch = props.fetch || fetch;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// Typed URL creators
|
|
168
|
-
|
|
169
|
-
getCapabilitiesURL(
|
|
170
|
-
parameters?: WMSGetCapabilitiesParameters,
|
|
171
|
-
extra?: Record<string, unknown>
|
|
172
|
-
): string {
|
|
173
|
-
const options: Required<WMSGetCapabilitiesParameters> = {
|
|
174
|
-
...WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS,
|
|
175
|
-
...parameters,
|
|
176
|
-
...extra
|
|
177
|
-
};
|
|
178
|
-
return this.getWMSUrl(options, extra);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
getMapURL(parameters: WMSGetMapParameters, extra?: Record<string, unknown>): string {
|
|
182
|
-
const options: Required<WMSGetMapParameters> = {
|
|
183
|
-
...WMS_GET_MAP_DEFAULT_PARAMETERS,
|
|
184
|
-
...parameters,
|
|
185
|
-
...extra
|
|
186
|
-
};
|
|
187
|
-
return this.getWMSUrl(options, extra);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
getFeatureInfoURL(
|
|
191
|
-
parameters: WMSGetFeatureInfoParameters,
|
|
192
|
-
extra?: Record<string, unknown>
|
|
193
|
-
): string {
|
|
194
|
-
const options: Required<WMSGetFeatureInfoParameters> = {
|
|
195
|
-
...WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS,
|
|
196
|
-
...parameters,
|
|
197
|
-
...extra
|
|
198
|
-
};
|
|
199
|
-
return this.getWMSUrl(options, extra);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
describeLayerURL(
|
|
203
|
-
parameters: WMSDescribeLayerParameters,
|
|
204
|
-
extra?: Record<string, unknown>
|
|
205
|
-
): string {
|
|
206
|
-
const options: Required<WMSDescribeLayerParameters> = {
|
|
207
|
-
...WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS,
|
|
208
|
-
...parameters,
|
|
209
|
-
...extra
|
|
210
|
-
};
|
|
211
|
-
return this.getWMSUrl(options, extra);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
getLegendGraphicURL(
|
|
215
|
-
parameters: WMSGetLegendGraphicParameters,
|
|
216
|
-
extra?: Record<string, unknown>
|
|
217
|
-
): string {
|
|
218
|
-
const options: Required<WMSGetLegendGraphicParameters> = {
|
|
219
|
-
...WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS,
|
|
220
|
-
...parameters,
|
|
221
|
-
...extra
|
|
222
|
-
};
|
|
223
|
-
return this.getWMSUrl(options, extra);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// WMS Service API Stubs
|
|
227
|
-
|
|
228
|
-
/** Get Capabilities */
|
|
229
|
-
async getCapabilities(
|
|
230
|
-
parameters?: WMSGetCapabilitiesParameters,
|
|
231
|
-
extra?: Record<string, unknown>
|
|
232
|
-
): Promise<WMSCapabilities> {
|
|
233
|
-
const url = this.getCapabilitiesURL(parameters, extra);
|
|
234
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
235
|
-
await this.checkResponse(response);
|
|
236
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
237
|
-
return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/** Get a map image */
|
|
241
|
-
async getMap(options: WMSGetMapParameters, extra?: Record<string, unknown>): Promise<ImageType> {
|
|
242
|
-
const url = this.getMapURL(options, extra);
|
|
243
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
244
|
-
await this.checkResponse(response);
|
|
245
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
246
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/** Get Feature Info for a coordinate */
|
|
250
|
-
async getFeatureInfo(
|
|
251
|
-
options: WMSGetFeatureInfoParameters,
|
|
252
|
-
extra?: Record<string, unknown>
|
|
253
|
-
): Promise<WMSFeatureInfo> {
|
|
254
|
-
const url = this.getFeatureInfoURL(options, extra);
|
|
255
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
256
|
-
await this.checkResponse(response);
|
|
257
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
258
|
-
return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/** Get more information about a layer */
|
|
262
|
-
async describeLayer(
|
|
263
|
-
options: WMSDescribeLayerParameters,
|
|
264
|
-
extra?: Record<string, unknown>
|
|
265
|
-
): Promise<WMSLayerDescription> {
|
|
266
|
-
const url = this.describeLayerURL(options, extra);
|
|
267
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
268
|
-
await this.checkResponse(response);
|
|
269
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
270
|
-
return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/** Get an image with a semantic legend */
|
|
274
|
-
async getLegendGraphic(
|
|
275
|
-
options: WMSGetLegendGraphicParameters,
|
|
276
|
-
extra?: Record<string, unknown>
|
|
277
|
-
): Promise<ImageType> {
|
|
278
|
-
const url = this.getLegendGraphicURL(options, extra);
|
|
279
|
-
const response = await this.fetch(url, this.loadOptions);
|
|
280
|
-
await this.checkResponse(response);
|
|
281
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
282
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
// INTERNAL METHODS
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?
|
|
289
|
-
* @note if override is common, maybe add a callback prop?
|
|
290
|
-
* */
|
|
291
|
-
protected getWMSUrl(
|
|
292
|
-
options: {
|
|
293
|
-
request: string;
|
|
294
|
-
layers?: string[];
|
|
295
|
-
},
|
|
296
|
-
extra?: Record<string, unknown>
|
|
297
|
-
): string {
|
|
298
|
-
let url = `${this.url}?REQUEST=${options.request}`;
|
|
299
|
-
if (options.layers?.length) {
|
|
300
|
-
url += `&LAYERS=[${options.layers.join(',')}]`;
|
|
301
|
-
}
|
|
302
|
-
return url;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/** Checks for and parses a WMS XML formatted ServiceError and throws an exception */
|
|
306
|
-
protected async checkResponse(response: Response) {
|
|
307
|
-
if (!response.ok || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {
|
|
308
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
309
|
-
const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);
|
|
310
|
-
throw new Error(error);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|