@loaders.gl/wms 3.3.0-alpha.8 → 3.3.0
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 +4141 -1479
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +77 -0
- 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 +416 -0
- package/dist/es5/lib/gml/parse-gml.js.map +1 -0
- 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/wfs/parse-wfs.js +43 -0
- package/dist/es5/lib/wfs/parse-wfs.js.map +1 -0
- package/dist/es5/lib/wfs/wfs-types.js +2 -0
- package/dist/es5/lib/wfs/wfs-types.js.map +1 -0
- package/dist/es5/lib/wms/parse-wms.js +135 -0
- package/dist/es5/lib/wms/parse-wms.js.map +1 -0
- package/dist/es5/{wms-types.js → lib/wms/wms-types.js} +0 -0
- package/dist/{esm → es5/lib/wms}/wms-types.js.map +1 -1
- package/dist/es5/lib/wmts/parse-wmts.js +43 -0
- package/dist/es5/lib/wmts/parse-wmts.js.map +1 -0
- package/dist/es5/lib/wmts/wmts-types.js +2 -0
- package/dist/es5/lib/wmts/wmts-types.js.map +1 -0
- 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/wip/gml-loader.js +54 -0
- package/dist/es5/wip/gml-loader.js.map +1 -0
- package/dist/es5/wip/wcs-capabilities-loader.js +54 -0
- package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -0
- package/dist/es5/wip/wfs-capabilities-loader.js +54 -0
- package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -0
- package/dist/es5/wip/wms-feature-info-loader.js +44 -0
- package/dist/es5/wip/wms-feature-info-loader.js.map +1 -0
- package/dist/es5/wip/wms-layer-description-loader.js +44 -0
- package/dist/es5/wip/wms-layer-description-loader.js.map +1 -0
- package/dist/es5/wip/wms-layer-description-loader.md.disabled.md +47 -0
- package/dist/es5/wip/wmts-capabilities-loader.js +54 -0
- package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -0
- package/dist/es5/wms-capabilities-loader.js +7 -6
- package/dist/es5/wms-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-error-loader.js +70 -0
- package/dist/es5/wms-error-loader.js.map +1 -0
- package/dist/esm/bundle.js +1 -0
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/index.js +16 -0
- 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 +348 -0
- package/dist/esm/lib/gml/parse-gml.js.map +1 -0
- 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/wfs/parse-wfs.js +32 -0
- package/dist/esm/lib/wfs/parse-wfs.js.map +1 -0
- package/dist/esm/lib/wfs/wfs-types.js +2 -0
- package/dist/esm/lib/wfs/wfs-types.js.map +1 -0
- package/dist/esm/lib/wms/parse-wms.js +101 -0
- package/dist/esm/lib/wms/parse-wms.js.map +1 -0
- package/dist/esm/{wms-types.js → lib/wms/wms-types.js} +0 -0
- package/dist/{es5 → esm/lib/wms}/wms-types.js.map +1 -1
- package/dist/esm/lib/wmts/parse-wmts.js +32 -0
- package/dist/esm/lib/wmts/parse-wmts.js.map +1 -0
- package/dist/esm/lib/wmts/wmts-types.js +2 -0
- package/dist/esm/lib/wmts/wmts-types.js.map +1 -0
- 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/wip/gml-loader.js +25 -0
- package/dist/esm/wip/gml-loader.js.map +1 -0
- package/dist/esm/wip/wcs-capabilities-loader.js +25 -0
- package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -0
- package/dist/esm/wip/wfs-capabilities-loader.js +25 -0
- package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -0
- package/dist/esm/wip/wms-feature-info-loader.js +14 -0
- package/dist/esm/wip/wms-feature-info-loader.js.map +1 -0
- package/dist/esm/wip/wms-layer-description-loader.js +14 -0
- package/dist/esm/wip/wms-layer-description-loader.js.map +1 -0
- package/dist/esm/wip/wms-layer-description-loader.md.disabled.md +47 -0
- package/dist/esm/wip/wmts-capabilities-loader.js +25 -0
- package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -0
- package/dist/esm/wms-capabilities-loader.js +6 -4
- package/dist/esm/wms-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-error-loader.js +40 -0
- package/dist/esm/wms-error-loader.js.map +1 -0
- 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 +17 -6
- package/src/bundle.ts +2 -0
- package/src/index.ts +54 -2
- 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 +500 -0
- 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/wfs/parse-wfs.ts +39 -0
- package/src/lib/wfs/wfs-types.ts +78 -0
- package/src/lib/wms/parse-wms.ts +142 -0
- package/src/{wms-types.ts → lib/wms/wms-types.ts} +76 -24
- package/src/lib/wmts/parse-wmts.ts +39 -0
- package/src/lib/wmts/wmts-types.ts +77 -0
- package/src/wip/arcgis-feature-service.ts +89 -0
- package/src/wip/data-source.ts +62 -0
- package/src/wip/gml-loader.ts +40 -0
- package/src/wip/wcs-capabilities-loader.ts +40 -0
- package/src/wip/wfs-capabilities-loader.ts +40 -0
- package/src/wip/wms-feature-info-loader.ts +21 -0
- package/src/wip/wms-layer-description-loader.md.disabled.md +47 -0
- package/src/wip/wms-layer-description-loader.ts +21 -0
- package/src/wip/wmts-capabilities-loader.ts +40 -0
- package/src/wms-capabilities-loader.ts +10 -8
- package/src/wms-error-loader.ts +59 -0
- package/dist/es5/lib/parse-wms-capabilities.js +0 -19
- package/dist/es5/lib/parse-wms-capabilities.js.map +0 -1
- package/dist/esm/lib/parse-wms-capabilities.js +0 -14
- package/dist/esm/lib/parse-wms-capabilities.js.map +0 -1
- package/src/lib/parse-wms-capabilities.ts +0 -14
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// loaders.gl, MIT licenses
|
|
2
|
+
|
|
3
|
+
/** All capabilities of a WFS service - response to a WFS `GetCapabilities` data structure extracted from XML */
|
|
4
|
+
export type WFSCapabilities = {
|
|
5
|
+
serviceIdentification: {
|
|
6
|
+
title: string;
|
|
7
|
+
serviceTypeVersion: string;
|
|
8
|
+
serviceType: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
serviceProvider: {
|
|
12
|
+
providerName: string;
|
|
13
|
+
providerSite: string;
|
|
14
|
+
serviceContact: {
|
|
15
|
+
individualName: string;
|
|
16
|
+
positionName: string;
|
|
17
|
+
contactInfo: {
|
|
18
|
+
address: {
|
|
19
|
+
administrativeArea: string;
|
|
20
|
+
city: string;
|
|
21
|
+
country: string;
|
|
22
|
+
deliveryPoint: string;
|
|
23
|
+
electronicMailAddress: string;
|
|
24
|
+
postalCode: string;
|
|
25
|
+
};
|
|
26
|
+
phone: {
|
|
27
|
+
voice: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
operationsMetadata: {
|
|
34
|
+
GetCapabilities: any;
|
|
35
|
+
GetFeatureInfo: any;
|
|
36
|
+
GetTile: any;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
contents: {
|
|
40
|
+
layers: {
|
|
41
|
+
abstract: string;
|
|
42
|
+
identifier: string;
|
|
43
|
+
title: string;
|
|
44
|
+
formats: string[];
|
|
45
|
+
styles: {
|
|
46
|
+
identifier: string;
|
|
47
|
+
isDefault: string;
|
|
48
|
+
title: string;
|
|
49
|
+
abstract?: string;
|
|
50
|
+
}[];
|
|
51
|
+
bounds: {
|
|
52
|
+
left: number;
|
|
53
|
+
right: number;
|
|
54
|
+
bottom: number;
|
|
55
|
+
top: number;
|
|
56
|
+
};
|
|
57
|
+
tileMatrixSetLinks: {
|
|
58
|
+
tileMatrixSet: string;
|
|
59
|
+
}[];
|
|
60
|
+
tileMatrixSets: {
|
|
61
|
+
identifier: string;
|
|
62
|
+
matrixIds: {
|
|
63
|
+
identifier: string;
|
|
64
|
+
matrixHeight: number;
|
|
65
|
+
matrixWidth: number;
|
|
66
|
+
scaleDenominator: number;
|
|
67
|
+
tileWidth: number;
|
|
68
|
+
tileHeight: number;
|
|
69
|
+
topLeftCorner: {
|
|
70
|
+
lon: number;
|
|
71
|
+
lat: number;
|
|
72
|
+
};
|
|
73
|
+
}[];
|
|
74
|
+
};
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {WFSCapabilities} from './wfs-types';
|
|
4
|
+
|
|
5
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
6
|
+
|
|
7
|
+
// GetCapabilities
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Parses a typed data structure from raw XML for `GetCapabilities` response
|
|
11
|
+
* @note Error handlings is fairly weak
|
|
12
|
+
*/
|
|
13
|
+
export function parseWFSCapabilities(text: string, options): WFSCapabilities {
|
|
14
|
+
// Remove namespaces in XML
|
|
15
|
+
options = {...options, xml: {...options?.xml, removeNSPrefix: true}};
|
|
16
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
17
|
+
const xmlCapabilities: any = parsedXML.Capabilities || parsedXML;
|
|
18
|
+
return uncapitalizeKeys(xmlCapabilities);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function uncapitalizeKeys(object: any): any {
|
|
22
|
+
if (object && typeof object === 'object') {
|
|
23
|
+
const newObject = {};
|
|
24
|
+
for (const [key, value] of Object.entries(object)) {
|
|
25
|
+
newObject[uncapitalize(key)] = uncapitalizeKeys(value);
|
|
26
|
+
}
|
|
27
|
+
return newObject;
|
|
28
|
+
}
|
|
29
|
+
return object;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Uncapitalize first letter of a string
|
|
34
|
+
* @param {string} str
|
|
35
|
+
* @returns {string}
|
|
36
|
+
*/
|
|
37
|
+
function uncapitalize(str: string): string {
|
|
38
|
+
return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;
|
|
39
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// loaders.gl, MIT licenses
|
|
2
|
+
|
|
3
|
+
/** All capabilities of a WFS service - response to a WFS `GetCapabilities` data structure extracted from XML */
|
|
4
|
+
export type WFSCapabilities = {
|
|
5
|
+
serviceIdentification: {
|
|
6
|
+
title: string;
|
|
7
|
+
serviceTypeVersion: string;
|
|
8
|
+
serviceType: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
serviceProvider: {
|
|
12
|
+
providerName: string;
|
|
13
|
+
providerSite: string;
|
|
14
|
+
serviceContact: {
|
|
15
|
+
individualName: string;
|
|
16
|
+
positionName: string;
|
|
17
|
+
contactInfo: {
|
|
18
|
+
address: {
|
|
19
|
+
administrativeArea: string;
|
|
20
|
+
city: string;
|
|
21
|
+
country: string;
|
|
22
|
+
deliveryPoint: string;
|
|
23
|
+
electronicMailAddress: string;
|
|
24
|
+
postalCode: string;
|
|
25
|
+
};
|
|
26
|
+
phone: {
|
|
27
|
+
voice: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
operationsMetadata: {
|
|
34
|
+
GetCapabilities: any;
|
|
35
|
+
GetFeatureInfo: any;
|
|
36
|
+
GetTile: any;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
contents: {
|
|
40
|
+
layers: {
|
|
41
|
+
abstract: string;
|
|
42
|
+
identifier: string;
|
|
43
|
+
title: string;
|
|
44
|
+
formats: string[];
|
|
45
|
+
styles: {
|
|
46
|
+
identifier: string;
|
|
47
|
+
isDefault: string;
|
|
48
|
+
title: string;
|
|
49
|
+
abstract?: string;
|
|
50
|
+
}[];
|
|
51
|
+
bounds: {
|
|
52
|
+
left: number;
|
|
53
|
+
right: number;
|
|
54
|
+
bottom: number;
|
|
55
|
+
top: number;
|
|
56
|
+
};
|
|
57
|
+
tileMatrixSetLinks: {
|
|
58
|
+
tileMatrixSet: string;
|
|
59
|
+
}[];
|
|
60
|
+
tileMatrixSets: {
|
|
61
|
+
identifier: string;
|
|
62
|
+
matrixIds: {
|
|
63
|
+
identifier: string;
|
|
64
|
+
matrixHeight: number;
|
|
65
|
+
matrixWidth: number;
|
|
66
|
+
scaleDenominator: number;
|
|
67
|
+
tileWidth: number;
|
|
68
|
+
tileHeight: number;
|
|
69
|
+
topLeftCorner: {
|
|
70
|
+
lon: number;
|
|
71
|
+
lat: number;
|
|
72
|
+
};
|
|
73
|
+
}[];
|
|
74
|
+
};
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
WMSCapabilities,
|
|
5
|
+
WMSLayer,
|
|
6
|
+
WMSRequest,
|
|
7
|
+
WMSFeatureInfo,
|
|
8
|
+
WMSLayerDescription
|
|
9
|
+
// WMSFeature,
|
|
10
|
+
// WMSLayerDescription
|
|
11
|
+
} from './wms-types';
|
|
12
|
+
|
|
13
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
14
|
+
|
|
15
|
+
// GetCapabilities
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Parses a typed data structure from raw XML for `GetCapabilities` response
|
|
19
|
+
* @note Error handlings is fairly weak
|
|
20
|
+
*/
|
|
21
|
+
export function parseWMSCapabilities(text: string, options): WMSCapabilities {
|
|
22
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
23
|
+
const xmlCapabilities: any =
|
|
24
|
+
parsedXML.WMT_MS_Capabilities || parsedXML.WMS_Capabilities || parsedXML;
|
|
25
|
+
return extractCapabilities(xmlCapabilities);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Extract typed capability data from XML */
|
|
29
|
+
function extractCapabilities(xml: any): WMSCapabilities {
|
|
30
|
+
const capabilities: WMSCapabilities = {
|
|
31
|
+
name: xml.Service?.Name || 'unnamed',
|
|
32
|
+
title: xml.Service?.Title,
|
|
33
|
+
keywords: [],
|
|
34
|
+
requests: {},
|
|
35
|
+
layer: extractLayer(xml.Capability?.Layer),
|
|
36
|
+
raw: xml
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
for (const keyword of xml.Service?.KeywordList?.Keyword || []) {
|
|
40
|
+
capabilities.keywords.push(keyword);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
for (const [name, xmlRequest] of Object.entries(xml.Capability?.Request || {})) {
|
|
44
|
+
capabilities.requests[name] = extractRequest(name, xmlRequest);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return capabilities;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Extract typed request data from XML */
|
|
51
|
+
function extractRequest(name: string, xmlRequest: any): WMSRequest {
|
|
52
|
+
const format: string | string[] = xmlRequest?.Format;
|
|
53
|
+
const mimeTypes: string[] = Array.isArray(format) ? format : [format];
|
|
54
|
+
return {name, mimeTypes};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Extract request data */
|
|
58
|
+
function extractLayer(xmlLayer: any): WMSLayer {
|
|
59
|
+
const layer: WMSLayer = {
|
|
60
|
+
name: xmlLayer?.Name,
|
|
61
|
+
title: xmlLayer?.Title,
|
|
62
|
+
srs: xmlLayer?.SRS || [],
|
|
63
|
+
layers: []
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// Single layer is not represented as array in XML
|
|
67
|
+
const xmlLayers = getXMLArray(xmlLayer?.Layer);
|
|
68
|
+
|
|
69
|
+
for (const xmlSubLayer of xmlLayers) {
|
|
70
|
+
layer.layers?.push(extractLayer(xmlSubLayer));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return layer;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function getXMLArray(xmlValue: any) {
|
|
77
|
+
if (Array.isArray(xmlValue)) {
|
|
78
|
+
return xmlValue;
|
|
79
|
+
}
|
|
80
|
+
if (xmlValue) {
|
|
81
|
+
return [xmlValue];
|
|
82
|
+
}
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// GetFeatureInfo
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Parses a typed data structure from raw XML for `GetFeatureInfo` response
|
|
90
|
+
* @note Error handlings is fairly weak
|
|
91
|
+
*/
|
|
92
|
+
export function parseWMSFeatureInfo(text: string, options): WMSFeatureInfo {
|
|
93
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
94
|
+
const xmlFeatureInfo: any = parsedXML.FeatureInfoResponse?.FIELDS || [];
|
|
95
|
+
|
|
96
|
+
const xmlFeatures = Array.isArray(xmlFeatureInfo) ? xmlFeatureInfo : [xmlFeatureInfo];
|
|
97
|
+
|
|
98
|
+
return {
|
|
99
|
+
features: xmlFeatures.map((xmlFeature) => extractFeature(xmlFeature))
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function extractFeature(xmlFeature: any) {
|
|
104
|
+
const xmlFields = xmlFeature || {};
|
|
105
|
+
// TODO - not correct
|
|
106
|
+
return {
|
|
107
|
+
attributes: xmlFields,
|
|
108
|
+
type: '',
|
|
109
|
+
bounds: {bottom: 0, top: 0, left: 0, right: 0}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// GetFeatureInfo
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Parses a typed data structure from raw XML for `GetFeatureInfo` response
|
|
117
|
+
* @note Error handlings is fairly weak
|
|
118
|
+
*/
|
|
119
|
+
export function parseWMSLayerDescription(text: string, options): WMSLayerDescription {
|
|
120
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
121
|
+
// TODO - implement parser
|
|
122
|
+
return parsedXML as unknown as WMSLayerDescription;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Extract an error message from WMS error response XML
|
|
127
|
+
* @param text
|
|
128
|
+
* @param options
|
|
129
|
+
* @returns a string with a human readable message
|
|
130
|
+
*/
|
|
131
|
+
export function parseWMSError(text: string, options): string {
|
|
132
|
+
const parsedXML = XMLLoader.parseTextSync?.(text, options);
|
|
133
|
+
const serviceExceptionXML =
|
|
134
|
+
parsedXML?.ServiceExceptionReport?.ServiceException ||
|
|
135
|
+
parsedXML?.['ogc:ServiceExceptionReport']?.['ogc:ServiceException'];
|
|
136
|
+
// Sigh, can be either a string or an object
|
|
137
|
+
const message =
|
|
138
|
+
typeof serviceExceptionXML === 'string'
|
|
139
|
+
? serviceExceptionXML
|
|
140
|
+
: serviceExceptionXML['#text'] || serviceExceptionXML.code || 'Unknown error';
|
|
141
|
+
return message;
|
|
142
|
+
}
|
|
@@ -1,35 +1,87 @@
|
|
|
1
1
|
// loaders.gl, MIT licenses
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
/** All capabilities of a WMS service - response to a WMS `GetCapabilities` data structure extracted from XML */
|
|
4
|
+
export type WMSCapabilities = {
|
|
5
|
+
name: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
abstract?: string;
|
|
8
|
+
keywords: string[];
|
|
9
|
+
layer: {
|
|
10
|
+
name: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
srs?: string[];
|
|
13
|
+
boundingBox?: [number, number, number, number];
|
|
14
|
+
layers: WMSLayer[];
|
|
15
|
+
};
|
|
16
|
+
requests: Record<string, WMSRequest>;
|
|
17
|
+
raw: Record<string, unknown>;
|
|
7
18
|
};
|
|
8
19
|
|
|
9
|
-
export type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
20
|
+
export type WMSLayer = {
|
|
21
|
+
name: string;
|
|
22
|
+
title?: string;
|
|
23
|
+
srs?: string[];
|
|
24
|
+
boundingBox?: [number, number, number, number];
|
|
25
|
+
layers: WMSLayer[];
|
|
13
26
|
};
|
|
14
27
|
|
|
15
|
-
export type
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
export type WMSRequest = {
|
|
29
|
+
name: string;
|
|
30
|
+
mimeTypes: string[];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// GetFeatureInfo
|
|
34
|
+
|
|
35
|
+
/** WMS Feature info - response to a WMS `GetFeatureInfo` request */
|
|
36
|
+
export type WMSFeatureInfo = {
|
|
37
|
+
features: WMSFeature[];
|
|
19
38
|
};
|
|
20
39
|
|
|
21
|
-
export type
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
40
|
+
export type WMSFeature = {
|
|
41
|
+
attributes: Record<string, number | string>;
|
|
42
|
+
type: string;
|
|
43
|
+
bounds: {top: number; bottom: number; left: number; right: number};
|
|
25
44
|
};
|
|
26
45
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
46
|
+
// DescribeLayer
|
|
47
|
+
|
|
48
|
+
/** Layer description - response to a WMS `DescribeLayer` request */
|
|
49
|
+
export type WMSLayerDescription = {
|
|
50
|
+
layers: {}[];
|
|
31
51
|
};
|
|
32
52
|
|
|
53
|
+
// // WIP
|
|
54
|
+
|
|
55
|
+
// export type GetCapabilities = {
|
|
56
|
+
// request: 'GetCapabilities';
|
|
57
|
+
// format: string[];
|
|
58
|
+
// dcpType: unknown;
|
|
59
|
+
// };
|
|
60
|
+
|
|
61
|
+
// export type GetMap = {
|
|
62
|
+
// request: 'GetMap';
|
|
63
|
+
// format: string[];
|
|
64
|
+
// dcpType: unknown;
|
|
65
|
+
// };
|
|
66
|
+
|
|
67
|
+
// export type GetFeatureInfo = {
|
|
68
|
+
// request: 'GetFeatureInfo';
|
|
69
|
+
// format: string[];
|
|
70
|
+
// dcpType: unknown;
|
|
71
|
+
// };
|
|
72
|
+
|
|
73
|
+
// export type GetLegendGraphic = {
|
|
74
|
+
// request: 'GetLegendGraphic';
|
|
75
|
+
// format: string[];
|
|
76
|
+
// dcpType: unknown;
|
|
77
|
+
// };
|
|
78
|
+
|
|
79
|
+
// export type GetStyles = {
|
|
80
|
+
// request: 'GetStyles';
|
|
81
|
+
// format: string[];
|
|
82
|
+
// dcpType: unknown;
|
|
83
|
+
// };
|
|
84
|
+
|
|
33
85
|
/**
|
|
34
86
|
* <EX_GeographicBoundingBox>
|
|
35
87
|
* <westBoundLongitude>-180</westBoundLongitude>
|
|
@@ -75,7 +127,7 @@ export type Style = {
|
|
|
75
127
|
};
|
|
76
128
|
};
|
|
77
129
|
|
|
78
|
-
export type Capability = GetCapabilities | GetMap;
|
|
130
|
+
// export type Capability = GetCapabilities | GetMap;
|
|
79
131
|
|
|
80
132
|
export type WMSService = {
|
|
81
133
|
rawData: unknown;
|
|
@@ -86,9 +138,9 @@ export type WMSService = {
|
|
|
86
138
|
maxWidth?: number;
|
|
87
139
|
maxHeight?: number;
|
|
88
140
|
capabilities: {
|
|
89
|
-
getCapabilities: GetCapabilities;
|
|
90
|
-
getMap: GetMap;
|
|
91
|
-
getFeatureInfo?: GetFeatureInfo;
|
|
141
|
+
// getCapabilities: GetCapabilities;
|
|
142
|
+
// getMap: GetMap;
|
|
143
|
+
// getFeatureInfo?: GetFeatureInfo;
|
|
92
144
|
};
|
|
93
145
|
|
|
94
146
|
untypedData: unknown; // The raw, untyped JSON converted from XML
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {WMTSCapabilities} from './wmts-types';
|
|
4
|
+
|
|
5
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
6
|
+
|
|
7
|
+
// GetCapabilities
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Parses a typed data structure from raw XML for `GetCapabilities` response
|
|
11
|
+
* @note Error handlings is fairly weak
|
|
12
|
+
*/
|
|
13
|
+
export function parseWMTSCapabilities(text: string, options): WMTSCapabilities {
|
|
14
|
+
// Remove namespaces in XML
|
|
15
|
+
options = {...options, xml: {...options?.xml, removeNSPrefix: true}};
|
|
16
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
17
|
+
const xmlCapabilities: any = parsedXML.Capabilities || parsedXML;
|
|
18
|
+
return uncapitalizeKeys(xmlCapabilities);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function uncapitalizeKeys(object: any): any {
|
|
22
|
+
if (object && typeof object === 'object') {
|
|
23
|
+
const newObject = {};
|
|
24
|
+
for (const [key, value] of Object.entries(object)) {
|
|
25
|
+
newObject[uncapitalize(key)] = uncapitalizeKeys(value);
|
|
26
|
+
}
|
|
27
|
+
return newObject;
|
|
28
|
+
}
|
|
29
|
+
return object;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Uncapitalize first letter of a string
|
|
34
|
+
* @param {string} str
|
|
35
|
+
* @returns {string}
|
|
36
|
+
*/
|
|
37
|
+
function uncapitalize(str: string): string {
|
|
38
|
+
return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;
|
|
39
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// loaders.gl, MIT licenses
|
|
2
|
+
|
|
3
|
+
/** All capabilities of a WMTS service - response to a WMTS `GetCapabilities` data structure extracted from XML */
|
|
4
|
+
export type WMTSCapabilities = {
|
|
5
|
+
serviceIdentification: {
|
|
6
|
+
title: string;
|
|
7
|
+
serviceTypeVersion: string;
|
|
8
|
+
serviceType: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
serviceProvider: {
|
|
12
|
+
providerName: string;
|
|
13
|
+
providerSite: string;
|
|
14
|
+
serviceContact: {
|
|
15
|
+
individualName: string;
|
|
16
|
+
positionName: string;
|
|
17
|
+
contactInfo: {
|
|
18
|
+
address: {
|
|
19
|
+
administrativeArea: string;
|
|
20
|
+
city: string;
|
|
21
|
+
country: string;
|
|
22
|
+
deliveryPoint: string;
|
|
23
|
+
electronicMailAddress: string;
|
|
24
|
+
postalCode: string;
|
|
25
|
+
};
|
|
26
|
+
phone: {
|
|
27
|
+
voice: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
operationsMetadata: {
|
|
34
|
+
GetCapabilities: any;
|
|
35
|
+
GetFeatureInfo: any;
|
|
36
|
+
GetTile: any;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
contents: {
|
|
40
|
+
layers: {
|
|
41
|
+
abstract: string;
|
|
42
|
+
identifier: string;
|
|
43
|
+
title: string;
|
|
44
|
+
formats: string[];
|
|
45
|
+
styles: {
|
|
46
|
+
identifier: string;
|
|
47
|
+
isDefault: string;
|
|
48
|
+
title: string;
|
|
49
|
+
abstract?: string;
|
|
50
|
+
}[];
|
|
51
|
+
bounds: {
|
|
52
|
+
left: number;
|
|
53
|
+
right: number;
|
|
54
|
+
bottom: number;
|
|
55
|
+
top: number;
|
|
56
|
+
};
|
|
57
|
+
tileMatrixSetLinks: {
|
|
58
|
+
tileMatrixSet: string;
|
|
59
|
+
}[];
|
|
60
|
+
tileMatrixSets: {
|
|
61
|
+
identifier: string;
|
|
62
|
+
matrixIds: {
|
|
63
|
+
identifier: string;
|
|
64
|
+
matrixHeight: number;
|
|
65
|
+
matrixWidth: number;
|
|
66
|
+
scaleDenominator: number;
|
|
67
|
+
tileWidth: number;
|
|
68
|
+
tileHeight: number;
|
|
69
|
+
topLeftCorner: {
|
|
70
|
+
lon: number;
|
|
71
|
+
lat: number;
|
|
72
|
+
};
|
|
73
|
+
}[];
|
|
74
|
+
};
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
|
|
3
|
+
import {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
4
|
+
// import {GeoJSONLoader} from '@loaders.gl/geojson';
|
|
5
|
+
|
|
6
|
+
type FetchLike = (url: string, options?: RequestInit) => Promise<Response>;
|
|
7
|
+
|
|
8
|
+
export type ArcGISImageServiceQueryOptions = {
|
|
9
|
+
returnGeometry: boolean;
|
|
10
|
+
where: '1%3D1';
|
|
11
|
+
outSR: 4326;
|
|
12
|
+
outFields: string | '*';
|
|
13
|
+
inSR: 4326;
|
|
14
|
+
geometry: `${-90}%2C+${30}%2C+${-70}%2C+${50}`;
|
|
15
|
+
geometryType: 'esriGeometryEnvelope'; // TODO - look up valid values in Esri docs
|
|
16
|
+
spatialRel: 'esriSpatialRelIntersects'; // TODO - look up valid values in Esri docs
|
|
17
|
+
geometryPrecision: number; // TODO - look up valid values in Esri docs
|
|
18
|
+
resultType: 'tile'; // TODO - look up valid values in Esri docs
|
|
19
|
+
f?: 'geojson'; // TODO - look up valid values in Esri docs
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// const DEFAULT_QUERY_OPTIONS: Required<ArcGISImageServiceQueryOptions> = {
|
|
23
|
+
// returnGeometry:true,
|
|
24
|
+
// where: '1%3D1',
|
|
25
|
+
// outSR: 4326,
|
|
26
|
+
// outFields: '*',
|
|
27
|
+
// inSR: 4326,
|
|
28
|
+
// geometry: `${-90}%2C+${30}%2C+${-70}%2C+${50}`,
|
|
29
|
+
// geometryType: 'esriGeometryEnvelope',
|
|
30
|
+
// spatialRel: 'esriSpatialRelIntersects',
|
|
31
|
+
// geometryPrecision: 6,
|
|
32
|
+
// resultType: 'tile',
|
|
33
|
+
// f: 'geojson'
|
|
34
|
+
// };
|
|
35
|
+
|
|
36
|
+
export type ArcGISFeatureServiceProps = ArcGISImageServiceQueryOptions & {
|
|
37
|
+
url: string;
|
|
38
|
+
loadOptions?: LoaderOptions;
|
|
39
|
+
fetch?: typeof fetch | FetchLike;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export class ArcGISFeatureService {
|
|
43
|
+
url: string;
|
|
44
|
+
loadOptions: LoaderOptions;
|
|
45
|
+
fetch: typeof fetch | FetchLike;
|
|
46
|
+
|
|
47
|
+
constructor(props: ArcGISFeatureServiceProps) {
|
|
48
|
+
this.url = props.url;
|
|
49
|
+
this.loadOptions = props.loadOptions || {};
|
|
50
|
+
this.fetch = props.fetch || fetch;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// URL creators
|
|
54
|
+
|
|
55
|
+
metadataURL(options: {parameters?: Record<string, unknown>}): string {
|
|
56
|
+
return this.getUrl({...options});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Form a URL to an ESRI FeatureServer
|
|
61
|
+
// https://services2.arcgis.com/CcI36Pduqd0OR4W9/ArcGIS/rest/services/Bicycle_Routes_Public/FeatureServer/0/query?
|
|
62
|
+
// returnGeometry=true&where=1%3D1&outSR=4326&outFields=*&inSR=4326&geometry=${-90}%2C+${30}%2C+${-70}%2C+${50}&
|
|
63
|
+
// geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&geometryPrecision=6&resultType=tile&f=geojson`
|
|
64
|
+
*/
|
|
65
|
+
exportImageURL(options: {
|
|
66
|
+
boundingBox: [number, number, number, number];
|
|
67
|
+
boundingBoxSR?: string;
|
|
68
|
+
width: number;
|
|
69
|
+
height: number;
|
|
70
|
+
imageSR?: string;
|
|
71
|
+
time?: never;
|
|
72
|
+
f?: 'geojson';
|
|
73
|
+
resultType?: 'tile';
|
|
74
|
+
noData?: never;
|
|
75
|
+
noDataInterpretation?: 'esriNoDataMatchAny';
|
|
76
|
+
interpolation?: '+RSP_NearestNeighbor';
|
|
77
|
+
compression?: never
|
|
78
|
+
compressionQuality?: never;
|
|
79
|
+
bandIds?: never;
|
|
80
|
+
mosaicRule?: never;
|
|
81
|
+
renderingRule?: never;
|
|
82
|
+
f?: 'image';
|
|
83
|
+
}): string {
|
|
84
|
+
const {boundingBox} = options;
|
|
85
|
+
// const bbox = `bbox=${boundingBox[0]},${boundingBox[1]},${boundingBox[2]},${boundingBox[3]}`;
|
|
86
|
+
// const size = `size=${width},${height}`
|
|
87
|
+
return this.getUrl({path: 'exportImage', });
|
|
88
|
+
}
|
|
89
|
+
}
|