@loaders.gl/wms 3.3.0-alpha.13 → 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/dist.min.js +182 -1046
- package/dist/es5/index.js +20 -13
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lerc-loader.js +1 -1
- package/dist/es5/lib/data-sources/adhoc-image-service.js +4 -0
- package/dist/es5/lib/data-sources/adhoc-image-service.js.map +1 -1
- 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/{wms-service.js → image-services/wms-service.js} +116 -75
- package/dist/es5/lib/data-sources/image-services/wms-service.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.map +1 -1
- package/dist/es5/wip/gml-loader.js +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/wmts-capabilities-loader.js +1 -1
- package/dist/es5/wms-capabilities-loader.js +1 -1
- package/dist/es5/wms-error-loader.js +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lerc-loader.js +1 -1
- package/dist/esm/lib/data-sources/adhoc-image-service.js +2 -0
- package/dist/esm/lib/data-sources/adhoc-image-service.js.map +1 -1
- 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/{wms-service.js → image-services/wms-service.js} +46 -32
- package/dist/esm/lib/data-sources/image-services/wms-service.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.map +1 -1
- package/dist/esm/wip/gml-loader.js +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/wmts-capabilities-loader.js +1 -1
- package/dist/esm/wms-capabilities-loader.js +1 -1
- package/dist/esm/wms-error-loader.js +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -8
- package/dist/lib/data-sources/adhoc-image-service.d.ts +2 -0
- package/dist/lib/data-sources/adhoc-image-service.d.ts.map +1 -1
- package/dist/lib/data-sources/adhoc-image-service.js +2 -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/{wms-service.d.ts → image-services/wms-service.d.ts} +33 -38
- package/dist/lib/data-sources/image-services/wms-service.d.ts.map +1 -0
- package/dist/lib/data-sources/{wms-service.js → image-services/wms-service.js} +40 -28
- 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 +14 -13
- package/dist/wip/data-source.d.ts.map +1 -1
- package/dist/wip/data-source.js +15 -13
- package/package.json +6 -6
- package/src/index.ts +13 -8
- package/src/lib/data-sources/adhoc-image-service.ts +3 -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/{wms-service.ts → image-services/wms-service.ts} +51 -47
- package/src/wip/arcgis-feature-service.ts +89 -0
- package/src/wip/data-source.ts +15 -13
- package/dist/es5/lib/data-sources/wms-service.js.map +0 -1
- package/dist/esm/lib/data-sources/wms-service.js.map +0 -1
- package/dist/lib/data-sources/wms-service.d.ts.map +0 -1
|
@@ -4,18 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import type {ImageType} from '@loaders.gl/images';
|
|
6
6
|
import {ImageLoader} from '@loaders.gl/images';
|
|
7
|
-
import {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
8
7
|
|
|
9
|
-
import type {ImageSourceMetadata, GetImageParameters} from '
|
|
10
|
-
import {ImageSource} from '
|
|
8
|
+
import type {ImageSourceMetadata, GetImageParameters} from '../image-source';
|
|
9
|
+
import {ImageSource} from '../image-source';
|
|
10
|
+
import {ImageServiceProps, getFetchFunction, mergeImageServiceProps} from './image-service';
|
|
11
11
|
|
|
12
|
-
import type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '
|
|
13
|
-
import {WMSCapabilitiesLoader} from '
|
|
14
|
-
import {WMSFeatureInfoLoader} from '
|
|
15
|
-
import {WMSLayerDescriptionLoader} from '
|
|
16
|
-
import {WMSErrorLoader} from '
|
|
17
|
-
|
|
18
|
-
type FetchLike = (url: string, options?: RequestInit) => Promise<Response>;
|
|
12
|
+
import type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '../../wms/wms-types';
|
|
13
|
+
import {WMSCapabilitiesLoader} from '../../../wms-capabilities-loader';
|
|
14
|
+
import {WMSFeatureInfoLoader} from '../../../wip/wms-feature-info-loader';
|
|
15
|
+
import {WMSLayerDescriptionLoader} from '../../../wip/wms-layer-description-loader';
|
|
16
|
+
import {WMSErrorLoader} from '../../../wms-error-loader';
|
|
19
17
|
|
|
20
18
|
type WMSCommonParameters = {
|
|
21
19
|
/** In case the endpoint supports multiple services */
|
|
@@ -60,7 +58,7 @@ export type WMSGetFeatureInfoParameters = WMSCommonParameters & {
|
|
|
60
58
|
/** list of layers to query (could be different from rendered layers) */
|
|
61
59
|
query_layers: string[];
|
|
62
60
|
/** MIME type of returned feature info */
|
|
63
|
-
info_format?: 'text/plain';
|
|
61
|
+
info_format?: 'text/plain' | 'application/vnd.ogc.gml';
|
|
64
62
|
|
|
65
63
|
/** Layers to render */
|
|
66
64
|
layers: string[];
|
|
@@ -88,16 +86,6 @@ export type WMSGetLegendGraphicParameters = WMSCommonParameters & {
|
|
|
88
86
|
request?: 'GetLegendGraphic';
|
|
89
87
|
};
|
|
90
88
|
|
|
91
|
-
/** Properties that can be specified when creating a new WMS service */
|
|
92
|
-
export type WMSServiceProps = {
|
|
93
|
-
/** Base URL to the service */
|
|
94
|
-
serviceUrl: string;
|
|
95
|
-
/** Any load options to the loaders.gl Loaders used by the WMSService methods */
|
|
96
|
-
loadOptions?: LoaderOptions;
|
|
97
|
-
/** Override the fetch function if required */
|
|
98
|
-
fetch?: typeof fetch | FetchLike;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
89
|
/**
|
|
102
90
|
* The WMSService class provides
|
|
103
91
|
* - provides type safe methods to form URLs to a WMS service
|
|
@@ -106,12 +94,12 @@ export type WMSServiceProps = {
|
|
|
106
94
|
* @note Only the URL parameter conversion is supported. XML posts are not supported.
|
|
107
95
|
*/
|
|
108
96
|
export class WMSService extends ImageSource {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
97
|
+
static type: 'wms' = 'wms';
|
|
98
|
+
static testURL = (url: string): boolean => url.toLowerCase().includes('wms');
|
|
99
|
+
|
|
100
|
+
props: Required<ImageServiceProps>;
|
|
101
|
+
fetch: (url: string, options?: RequestInit) => Promise<Response>;
|
|
102
|
+
capabilities: WMSCapabilities | null = null;
|
|
115
103
|
|
|
116
104
|
/** A list of loaders used by the WMSService methods */
|
|
117
105
|
readonly loaders = [
|
|
@@ -123,12 +111,15 @@ export class WMSService extends ImageSource {
|
|
|
123
111
|
];
|
|
124
112
|
|
|
125
113
|
/** Create a WMSService */
|
|
126
|
-
constructor(props:
|
|
114
|
+
constructor(props: ImageServiceProps) {
|
|
127
115
|
super();
|
|
128
|
-
this.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
116
|
+
this.props = mergeImageServiceProps(props);
|
|
117
|
+
this.fetch = getFetchFunction(this.props);
|
|
118
|
+
this.props.loadOptions = {
|
|
119
|
+
...this.props.loadOptions,
|
|
120
|
+
// We want error responses to throw exceptions, the WMSErrorLoader can do this
|
|
121
|
+
wms: {...this.props.loadOptions?.wms, throwOnError: true}
|
|
122
|
+
};
|
|
132
123
|
}
|
|
133
124
|
|
|
134
125
|
// ImageSource implementation
|
|
@@ -148,11 +139,12 @@ export class WMSService extends ImageSource {
|
|
|
148
139
|
vendorParameters?: Record<string, unknown>
|
|
149
140
|
): Promise<WMSCapabilities> {
|
|
150
141
|
const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);
|
|
151
|
-
const
|
|
152
|
-
const response = await fetch(url, this.loadOptions);
|
|
142
|
+
const response = await this.fetch(url);
|
|
153
143
|
const arrayBuffer = await response.arrayBuffer();
|
|
154
144
|
this._checkResponse(response, arrayBuffer);
|
|
155
|
-
|
|
145
|
+
const capabilities = await WMSCapabilitiesLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
146
|
+
this.capabilities = capabilities;
|
|
147
|
+
return capabilities;
|
|
156
148
|
}
|
|
157
149
|
|
|
158
150
|
/** Get a map image */
|
|
@@ -161,12 +153,11 @@ export class WMSService extends ImageSource {
|
|
|
161
153
|
vendorParameters?: Record<string, unknown>
|
|
162
154
|
): Promise<ImageType> {
|
|
163
155
|
const url = this.getMapURL(options, vendorParameters);
|
|
164
|
-
const
|
|
165
|
-
const response = await fetch(url, this.loadOptions);
|
|
156
|
+
const response = await this.fetch(url);
|
|
166
157
|
const arrayBuffer = await response.arrayBuffer();
|
|
167
158
|
this._checkResponse(response, arrayBuffer);
|
|
168
159
|
try {
|
|
169
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
160
|
+
return await ImageLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
170
161
|
} catch {
|
|
171
162
|
throw this._parseError(arrayBuffer);
|
|
172
163
|
}
|
|
@@ -178,10 +169,23 @@ export class WMSService extends ImageSource {
|
|
|
178
169
|
vendorParameters?: Record<string, unknown>
|
|
179
170
|
): Promise<WMSFeatureInfo> {
|
|
180
171
|
const url = this.getFeatureInfoURL(options, vendorParameters);
|
|
181
|
-
const response = await this.fetch(url
|
|
172
|
+
const response = await this.fetch(url);
|
|
173
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
174
|
+
this._checkResponse(response, arrayBuffer);
|
|
175
|
+
return await WMSFeatureInfoLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/** Get Feature Info for a coordinate */
|
|
179
|
+
async getFeatureInfoText(
|
|
180
|
+
options: WMSGetFeatureInfoParameters,
|
|
181
|
+
vendorParameters?: Record<string, unknown>
|
|
182
|
+
): Promise<string> {
|
|
183
|
+
options = {...options, info_format: 'text/plain'};
|
|
184
|
+
const url = this.getFeatureInfoURL(options, vendorParameters);
|
|
185
|
+
const response = await this.fetch(url);
|
|
182
186
|
const arrayBuffer = await response.arrayBuffer();
|
|
183
187
|
this._checkResponse(response, arrayBuffer);
|
|
184
|
-
return
|
|
188
|
+
return new TextDecoder().decode(arrayBuffer);
|
|
185
189
|
}
|
|
186
190
|
|
|
187
191
|
/** Get more information about a layer */
|
|
@@ -190,10 +194,10 @@ export class WMSService extends ImageSource {
|
|
|
190
194
|
vendorParameters?: Record<string, unknown>
|
|
191
195
|
): Promise<WMSLayerDescription> {
|
|
192
196
|
const url = this.describeLayerURL(options, vendorParameters);
|
|
193
|
-
const response = await this.fetch(url
|
|
197
|
+
const response = await this.fetch(url);
|
|
194
198
|
const arrayBuffer = await response.arrayBuffer();
|
|
195
199
|
this._checkResponse(response, arrayBuffer);
|
|
196
|
-
return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
|
|
200
|
+
return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
197
201
|
}
|
|
198
202
|
|
|
199
203
|
/** Get an image with a semantic legend */
|
|
@@ -202,11 +206,11 @@ export class WMSService extends ImageSource {
|
|
|
202
206
|
vendorParameters?: Record<string, unknown>
|
|
203
207
|
): Promise<ImageType> {
|
|
204
208
|
const url = this.getLegendGraphicURL(options, vendorParameters);
|
|
205
|
-
const response = await this.fetch(url
|
|
209
|
+
const response = await this.fetch(url);
|
|
206
210
|
const arrayBuffer = await response.arrayBuffer();
|
|
207
211
|
this._checkResponse(response, arrayBuffer);
|
|
208
212
|
try {
|
|
209
|
-
return await ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
213
|
+
return await ImageLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
210
214
|
} catch {
|
|
211
215
|
throw this._parseError(arrayBuffer);
|
|
212
216
|
}
|
|
@@ -316,7 +320,7 @@ export class WMSService extends ImageSource {
|
|
|
316
320
|
options: Record<string, unknown>,
|
|
317
321
|
vendorParameters?: Record<string, unknown>
|
|
318
322
|
): string {
|
|
319
|
-
let url =
|
|
323
|
+
let url = this.props.url;
|
|
320
324
|
let first = true;
|
|
321
325
|
for (const [key, value] of Object.entries(options)) {
|
|
322
326
|
url += first ? '?' : '&';
|
|
@@ -334,14 +338,14 @@ export class WMSService extends ImageSource {
|
|
|
334
338
|
protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void {
|
|
335
339
|
const contentType = response.headers['content-type'];
|
|
336
340
|
if (!response.ok || WMSErrorLoader.mimeTypes.includes(contentType)) {
|
|
337
|
-
const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);
|
|
341
|
+
const error = WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
|
|
338
342
|
throw new Error(error);
|
|
339
343
|
}
|
|
340
344
|
}
|
|
341
345
|
|
|
342
346
|
/** Error situation detected */
|
|
343
347
|
protected _parseError(arrayBuffer: ArrayBuffer): Error {
|
|
344
|
-
const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);
|
|
348
|
+
const error = WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
|
|
345
349
|
return new Error(error);
|
|
346
350
|
}
|
|
347
351
|
}
|
|
@@ -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
|
+
}
|
package/src/wip/data-source.ts
CHANGED
|
@@ -6,23 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
// ImageSource
|
|
8
8
|
|
|
9
|
+
// Tile Source
|
|
9
10
|
|
|
10
11
|
/** Data source that serves data by tile index *
|
|
11
12
|
export abstract class TileDataSource extends DataSource {};
|
|
12
13
|
|
|
13
|
-
// Vector Tile Source
|
|
14
|
-
|
|
15
|
-
export type VectorTileDataSourceCapabilities = {
|
|
16
|
-
// check tile.json
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type VectorTile = Record<string, any>;
|
|
20
|
-
|
|
21
|
-
export abstract class VectorTileDataSource extends TileDataSource {
|
|
22
|
-
abstract getCapabilities(): Promise<VectorTileDataSourceCapabilities>;
|
|
23
|
-
abstract getTile({x, y, z, width, height, layers, parameters}): Promise<VectorTile>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
14
|
// Image Tile Data Source
|
|
27
15
|
|
|
28
16
|
export type ImageTileDataSourceCapabilities = {
|
|
@@ -57,4 +45,18 @@ export abstract class ImageTileDataSource extends TileDataSource {
|
|
|
57
45
|
return [0, 0, 1, 1];
|
|
58
46
|
}
|
|
59
47
|
}
|
|
48
|
+
|
|
49
|
+
// Vector Tile Source
|
|
50
|
+
|
|
51
|
+
export type VectorTileDataSourceCapabilities = {
|
|
52
|
+
// check tile.json
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type VectorTile = Record<string, any>;
|
|
56
|
+
|
|
57
|
+
export abstract class VectorTileDataSource extends TileDataSource {
|
|
58
|
+
abstract getCapabilities(): Promise<VectorTileDataSourceCapabilities>;
|
|
59
|
+
abstract getTile({x, y, z, width, height, layers, parameters}): Promise<VectorTile>;
|
|
60
|
+
}
|
|
61
|
+
|
|
60
62
|
*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-service.js","names":["WMSService","props","wms","throwOnError","ImageLoader","WMSErrorLoader","WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","serviceUrl","Object","assign","loadOptions","fetch","getCapabilities","parameters","getMap","wmsParameters","vendorParameters","url","getCapabilitiesURL","response","arrayBuffer","_checkResponse","parse","options","getMapURL","_parseError","getFeatureInfoURL","describeLayerURL","getLegendGraphicURL","service","version","request","_getWMSUrl","styles","undefined","srs","format","info_format","first","entries","key","value","Array","isArray","toUpperCase","join","String","encodeURI","contentType","headers","ok","mimeTypes","includes","error","parseSync","Error","ImageSource"],"sources":["../../../../src/lib/data-sources/wms-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\n\nimport type {ImageSourceMetadata, GetImageParameters} from './image-source';\nimport {ImageSource} from './image-source';\n\nimport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '../wms/wms-types';\nimport {WMSCapabilitiesLoader} from '../../wms-capabilities-loader';\nimport {WMSFeatureInfoLoader} from '../../wip/wms-feature-info-loader';\nimport {WMSLayerDescriptionLoader} from '../../wip/wms-layer-description-loader';\nimport {WMSErrorLoader} from '../../wms-error-loader';\n\ntype FetchLike = (url: string, options?: RequestInit) => Promise<Response>;\n\ntype WMSCommonParameters = {\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};\n\nexport type WMSGetCapabilitiesParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type WMSGetMapParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetMap';\n /** Layers to render */\n layers: string | 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 = WMSCommonParameters & {\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 = WMSCommonParameters & {\n /** Request type */\n request?: 'DescribeLayer';\n};\n\nexport type WMSGetLegendGraphicParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetLegendGraphic';\n};\n\n/** Properties that can be specified when creating a new WMS service */\nexport type WMSServiceProps = {\n /** Base URL to the service */\n serviceUrl: string;\n /** Any load options to the loaders.gl Loaders used by the WMSService methods */\n loadOptions?: LoaderOptions;\n /** Override the fetch function if required */\n fetch?: typeof fetch | FetchLike;\n};\n\n/**\n * The WMSService class provides\n * - provides type safe methods to form URLs to a WMS service\n * - provides type safe methods to query and parse results (and errors) from a WMS service\n * - implements the ImageService interface\n * @note Only the URL parameter conversion is supported. XML posts are not supported.\n */\nexport class WMSService extends ImageSource {\n serviceUrl: string;\n loadOptions: LoaderOptions = {\n // We want error responses to throw exceptions, the WMSErrorLoader can do this\n wms: {throwOnError: true}\n };\n fetch: typeof fetch | FetchLike;\n\n /** A list of loaders used by the WMSService methods */\n readonly loaders = [\n ImageLoader,\n WMSErrorLoader,\n WMSCapabilitiesLoader,\n WMSFeatureInfoLoader,\n WMSLayerDescriptionLoader\n ];\n\n /** Create a WMSService */\n constructor(props: WMSServiceProps) {\n super();\n this.serviceUrl = props.serviceUrl;\n // TODO Need an options merge function from loaders.gl to merge subobjects\n Object.assign(this.loadOptions, props.loadOptions);\n this.fetch = props.fetch || fetch;\n }\n\n // ImageSource implementation\n getMetadata(): Promise<ImageSourceMetadata> {\n return this.getCapabilities();\n }\n\n getImage(parameters: GetImageParameters): Promise<ImageType> {\n return this.getMap(parameters);\n }\n\n // WMS Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n wmsParameters?: WMSGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<WMSCapabilities> {\n const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);\n const {fetch} = this;\n const response = await fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get a map image */\n async getMap(\n options: WMSGetMapParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getMapURL(options, vendorParameters);\n const {fetch} = this;\n const response = await fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n } catch {\n throw this._parseError(arrayBuffer);\n }\n }\n\n /** Get Feature Info for a coordinate */\n async getFeatureInfo(\n options: WMSGetFeatureInfoParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<WMSFeatureInfo> {\n const url = this.getFeatureInfoURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(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 vendorParameters?: Record<string, unknown>\n ): Promise<WMSLayerDescription> {\n const url = this.describeLayerURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(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 vendorParameters?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getLegendGraphicURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n } catch {\n throw this._parseError(arrayBuffer);\n }\n }\n\n // Typed URL creators\n // For applications that want full control of fetching and parsing\n\n /** Generate a URL for the GetCapabilities request */\n getCapabilitiesURL(\n wmsParameters?: WMSGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetCapabilitiesParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetCapabilities',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetMap request */\n getMapURL(\n wmsParameters: WMSGetMapParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetMapParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetMap',\n // layers: [],\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n styles: undefined,\n srs: 'EPSG:4326',\n format: 'image/png',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetFeatureInfo request */\n getFeatureInfoURL(\n wmsParameters: WMSGetFeatureInfoParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetFeatureInfoParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetFeatureInfo',\n // layers: [],\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n // x: undefined!,\n // y: undefined!,\n // query_layers: [],\n srs: 'EPSG:4326',\n format: 'image/png',\n info_format: 'text/plain',\n styles: undefined,\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetFeatureInfo request */\n describeLayerURL(\n wmsParameters: WMSDescribeLayerParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSDescribeLayerParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'DescribeLayer',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n getLegendGraphicURL(\n wmsParameters: WMSGetLegendGraphicParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetLegendGraphicParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetLegendGraphic',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note case _getWMSUrl may need to be overridden to handle certain backends?\n * */\n protected _getWMSUrl(\n options: Record<string, unknown>,\n vendorParameters?: Record<string, unknown>\n ): string {\n let url = `${this.serviceUrl}`;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return encodeURI(url);\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void {\n const contentType = response.headers['content-type'];\n if (!response.ok || WMSErrorLoader.mimeTypes.includes(contentType)) {\n const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);\n throw new Error(error);\n }\n }\n\n /** Error situation detected */\n protected _parseError(arrayBuffer: ArrayBuffer): Error {\n const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);\n return new Error(error);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-service.js","names":["ImageLoader","ImageSource","WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","WMSErrorLoader","WMSService","constructor","props","wms","throwOnError","serviceUrl","Object","assign","loadOptions","fetch","getMetadata","getCapabilities","getImage","parameters","getMap","wmsParameters","vendorParameters","url","getCapabilitiesURL","response","arrayBuffer","_checkResponse","parse","options","getMapURL","_parseError","getFeatureInfo","getFeatureInfoURL","describeLayer","describeLayerURL","getLegendGraphic","getLegendGraphicURL","service","version","request","_getWMSUrl","styles","undefined","srs","format","info_format","first","key","value","entries","Array","isArray","toUpperCase","join","String","encodeURI","contentType","headers","ok","mimeTypes","includes","error","parseSync","Error"],"sources":["../../../../src/lib/data-sources/wms-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\n\nimport type {ImageSourceMetadata, GetImageParameters} from './image-source';\nimport {ImageSource} from './image-source';\n\nimport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '../wms/wms-types';\nimport {WMSCapabilitiesLoader} from '../../wms-capabilities-loader';\nimport {WMSFeatureInfoLoader} from '../../wip/wms-feature-info-loader';\nimport {WMSLayerDescriptionLoader} from '../../wip/wms-layer-description-loader';\nimport {WMSErrorLoader} from '../../wms-error-loader';\n\ntype FetchLike = (url: string, options?: RequestInit) => Promise<Response>;\n\ntype WMSCommonParameters = {\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};\n\nexport type WMSGetCapabilitiesParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type WMSGetMapParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetMap';\n /** Layers to render */\n layers: string | 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 = WMSCommonParameters & {\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 = WMSCommonParameters & {\n /** Request type */\n request?: 'DescribeLayer';\n};\n\nexport type WMSGetLegendGraphicParameters = WMSCommonParameters & {\n /** Request type */\n request?: 'GetLegendGraphic';\n};\n\n/** Properties that can be specified when creating a new WMS service */\nexport type WMSServiceProps = {\n /** Base URL to the service */\n serviceUrl: string;\n /** Any load options to the loaders.gl Loaders used by the WMSService methods */\n loadOptions?: LoaderOptions;\n /** Override the fetch function if required */\n fetch?: typeof fetch | FetchLike;\n};\n\n/**\n * The WMSService class provides\n * - provides type safe methods to form URLs to a WMS service\n * - provides type safe methods to query and parse results (and errors) from a WMS service\n * - implements the ImageService interface\n * @note Only the URL parameter conversion is supported. XML posts are not supported.\n */\nexport class WMSService extends ImageSource {\n serviceUrl: string;\n loadOptions: LoaderOptions = {\n // We want error responses to throw exceptions, the WMSErrorLoader can do this\n wms: {throwOnError: true}\n };\n fetch: typeof fetch | FetchLike;\n\n /** A list of loaders used by the WMSService methods */\n readonly loaders = [\n ImageLoader,\n WMSErrorLoader,\n WMSCapabilitiesLoader,\n WMSFeatureInfoLoader,\n WMSLayerDescriptionLoader\n ];\n\n /** Create a WMSService */\n constructor(props: WMSServiceProps) {\n super();\n this.serviceUrl = props.serviceUrl;\n // TODO Need an options merge function from loaders.gl to merge subobjects\n Object.assign(this.loadOptions, props.loadOptions);\n this.fetch = props.fetch || fetch;\n }\n\n // ImageSource implementation\n getMetadata(): Promise<ImageSourceMetadata> {\n return this.getCapabilities();\n }\n\n getImage(parameters: GetImageParameters): Promise<ImageType> {\n return this.getMap(parameters);\n }\n\n // WMS Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n wmsParameters?: WMSGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<WMSCapabilities> {\n const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);\n const {fetch} = this;\n const response = await fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get a map image */\n async getMap(\n options: WMSGetMapParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getMapURL(options, vendorParameters);\n const {fetch} = this;\n const response = await fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n } catch {\n throw this._parseError(arrayBuffer);\n }\n }\n\n /** Get Feature Info for a coordinate */\n async getFeatureInfo(\n options: WMSGetFeatureInfoParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<WMSFeatureInfo> {\n const url = this.getFeatureInfoURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(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 vendorParameters?: Record<string, unknown>\n ): Promise<WMSLayerDescription> {\n const url = this.describeLayerURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(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 vendorParameters?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getLegendGraphicURL(options, vendorParameters);\n const response = await this.fetch(url, this.loadOptions);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n } catch {\n throw this._parseError(arrayBuffer);\n }\n }\n\n // Typed URL creators\n // For applications that want full control of fetching and parsing\n\n /** Generate a URL for the GetCapabilities request */\n getCapabilitiesURL(\n wmsParameters?: WMSGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetCapabilitiesParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetCapabilities',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetMap request */\n getMapURL(\n wmsParameters: WMSGetMapParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetMapParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetMap',\n // layers: [],\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n styles: undefined,\n srs: 'EPSG:4326',\n format: 'image/png',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetFeatureInfo request */\n getFeatureInfoURL(\n wmsParameters: WMSGetFeatureInfoParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetFeatureInfoParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetFeatureInfo',\n // layers: [],\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n // x: undefined!,\n // y: undefined!,\n // query_layers: [],\n srs: 'EPSG:4326',\n format: 'image/png',\n info_format: 'text/plain',\n styles: undefined,\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetFeatureInfo request */\n describeLayerURL(\n wmsParameters: WMSDescribeLayerParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSDescribeLayerParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'DescribeLayer',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n getLegendGraphicURL(\n wmsParameters: WMSGetLegendGraphicParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetLegendGraphicParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetLegendGraphic',\n ...wmsParameters,\n ...vendorParameters\n };\n return this._getWMSUrl(options, vendorParameters);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note case _getWMSUrl may need to be overridden to handle certain backends?\n * */\n protected _getWMSUrl(\n options: Record<string, unknown>,\n vendorParameters?: Record<string, unknown>\n ): string {\n let url = `${this.serviceUrl}`;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return encodeURI(url);\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void {\n const contentType = response.headers['content-type'];\n if (!response.ok || WMSErrorLoader.mimeTypes.includes(contentType)) {\n const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);\n throw new Error(error);\n }\n }\n\n /** Error situation detected */\n protected _parseError(arrayBuffer: ArrayBuffer): Error {\n const error = WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);\n return new Error(error);\n }\n}\n"],"mappings":";;AAKA,SAAQA,WAAW,QAAO,oBAAoB;AAI9C,SAAQC,WAAW,QAAO,gBAAgB;AAG1C,SAAQC,qBAAqB,QAAO,+BAA+B;AACnE,SAAQC,oBAAoB,QAAO,mCAAmC;AACtE,SAAQC,yBAAyB,QAAO,wCAAwC;AAChF,SAAQC,cAAc,QAAO,wBAAwB;AA4FrD,OAAO,MAAMC,UAAU,SAASL,WAAW,CAAC;;EAkB1CM,WAAW,CAACC,KAAsB,EAAE;IAClC,KAAK,EAAE;IAAC;IAAA,qCAjBmB;MAE3BC,GAAG,EAAE;QAACC,YAAY,EAAE;MAAI;IAC1B,CAAC;IAAA;IAAA,iCAIkB,CACjBV,WAAW,EACXK,cAAc,EACdH,qBAAqB,EACrBC,oBAAoB,EACpBC,yBAAyB,CAC1B;IAKC,IAAI,CAACO,UAAU,GAAGH,KAAK,CAACG,UAAU;IAElCC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACC,WAAW,EAAEN,KAAK,CAACM,WAAW,CAAC;IAClD,IAAI,CAACC,KAAK,GAAGP,KAAK,CAACO,KAAK,IAAIA,KAAK;EACnC;;EAGAC,WAAW,GAAiC;IAC1C,OAAO,IAAI,CAACC,eAAe,EAAE;EAC/B;EAEAC,QAAQ,CAACC,UAA8B,EAAsB;IAC3D,OAAO,IAAI,CAACC,MAAM,CAACD,UAAU,CAAC;EAChC;;EAKA,MAAMF,eAAe,CACnBI,aAA4C,EAC5CC,gBAA0C,EAChB;IAC1B,MAAMC,GAAG,GAAG,IAAI,CAACC,kBAAkB,CAACH,aAAa,EAAEC,gBAAgB,CAAC;IACpE,MAAM;MAACP;IAAK,CAAC,GAAG,IAAI;IACpB,MAAMU,QAAQ,GAAG,MAAMV,KAAK,CAACQ,GAAG,EAAE,IAAI,CAACT,WAAW,CAAC;IACnD,MAAMY,WAAW,GAAG,MAAMD,QAAQ,CAACC,WAAW,EAAE;IAChD,IAAI,CAACC,cAAc,CAACF,QAAQ,EAAEC,WAAW,CAAC;IAC1C,OAAO,MAAMxB,qBAAqB,CAAC0B,KAAK,CAACF,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;EACzE;;EAGA,MAAMM,MAAM,CACVS,OAA4B,EAC5BP,gBAA0C,EACtB;IACpB,MAAMC,GAAG,GAAG,IAAI,CAACO,SAAS,CAACD,OAAO,EAAEP,gBAAgB,CAAC;IACrD,MAAM;MAACP;IAAK,CAAC,GAAG,IAAI;IACpB,MAAMU,QAAQ,GAAG,MAAMV,KAAK,CAACQ,GAAG,EAAE,IAAI,CAACT,WAAW,CAAC;IACnD,MAAMY,WAAW,GAAG,MAAMD,QAAQ,CAACC,WAAW,EAAE;IAChD,IAAI,CAACC,cAAc,CAACF,QAAQ,EAAEC,WAAW,CAAC;IAC1C,IAAI;MACF,OAAO,MAAM1B,WAAW,CAAC4B,KAAK,CAACF,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;IAC/D,CAAC,CAAC,MAAM;MACN,MAAM,IAAI,CAACiB,WAAW,CAACL,WAAW,CAAC;IACrC;EACF;;EAGA,MAAMM,cAAc,CAClBH,OAAoC,EACpCP,gBAA0C,EACjB;IACzB,MAAMC,GAAG,GAAG,IAAI,CAACU,iBAAiB,CAACJ,OAAO,EAAEP,gBAAgB,CAAC;IAC7D,MAAMG,QAAQ,GAAG,MAAM,IAAI,CAACV,KAAK,CAACQ,GAAG,EAAE,IAAI,CAACT,WAAW,CAAC;IACxD,MAAMY,WAAW,GAAG,MAAMD,QAAQ,CAACC,WAAW,EAAE;IAChD,IAAI,CAACC,cAAc,CAACF,QAAQ,EAAEC,WAAW,CAAC;IAC1C,OAAO,MAAMvB,oBAAoB,CAACyB,KAAK,CAACF,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;EACxE;;EAGA,MAAMoB,aAAa,CACjBL,OAAmC,EACnCP,gBAA0C,EACZ;IAC9B,MAAMC,GAAG,GAAG,IAAI,CAACY,gBAAgB,CAACN,OAAO,EAAEP,gBAAgB,CAAC;IAC5D,MAAMG,QAAQ,GAAG,MAAM,IAAI,CAACV,KAAK,CAACQ,GAAG,EAAE,IAAI,CAACT,WAAW,CAAC;IACxD,MAAMY,WAAW,GAAG,MAAMD,QAAQ,CAACC,WAAW,EAAE;IAChD,IAAI,CAACC,cAAc,CAACF,QAAQ,EAAEC,WAAW,CAAC;IAC1C,OAAO,MAAMtB,yBAAyB,CAACwB,KAAK,CAACF,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;EAC7E;;EAGA,MAAMsB,gBAAgB,CACpBP,OAAsC,EACtCP,gBAA0C,EACtB;IACpB,MAAMC,GAAG,GAAG,IAAI,CAACc,mBAAmB,CAACR,OAAO,EAAEP,gBAAgB,CAAC;IAC/D,MAAMG,QAAQ,GAAG,MAAM,IAAI,CAACV,KAAK,CAACQ,GAAG,EAAE,IAAI,CAACT,WAAW,CAAC;IACxD,MAAMY,WAAW,GAAG,MAAMD,QAAQ,CAACC,WAAW,EAAE;IAChD,IAAI,CAACC,cAAc,CAACF,QAAQ,EAAEC,WAAW,CAAC;IAC1C,IAAI;MACF,OAAO,MAAM1B,WAAW,CAAC4B,KAAK,CAACF,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;IAC/D,CAAC,CAAC,MAAM;MACN,MAAM,IAAI,CAACiB,WAAW,CAACL,WAAW,CAAC;IACrC;EACF;;EAMAF,kBAAkB,CAChBH,aAA4C,EAC5CC,gBAA0C,EAClC;IACR,MAAMO,OAA+C,GAAG;MACtDS,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAE,iBAAiB;MAC1B,GAAGnB,aAAa;MAChB,GAAGC;IACL,CAAC;IACD,OAAO,IAAI,CAACmB,UAAU,CAACZ,OAAO,EAAEP,gBAAgB,CAAC;EACnD;;EAGAQ,SAAS,CACPT,aAAkC,EAClCC,gBAA0C,EAClC;IACR,MAAMO,OAAsC,GAAG;MAC7CS,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAE,QAAQ;MAKjBE,MAAM,EAAEC,SAAS;MACjBC,GAAG,EAAE,WAAW;MAChBC,MAAM,EAAE,WAAW;MACnB,GAAGxB,aAAa;MAChB,GAAGC;IACL,CAAC;IACD,OAAO,IAAI,CAACmB,UAAU,CAACZ,OAAO,EAAEP,gBAAgB,CAAC;EACnD;;EAGAW,iBAAiB,CACfZ,aAA0C,EAC1CC,gBAA0C,EAClC;IACR,MAAMO,OAA8C,GAAG;MACrDS,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAE,gBAAgB;MAQzBI,GAAG,EAAE,WAAW;MAChBC,MAAM,EAAE,WAAW;MACnBC,WAAW,EAAE,YAAY;MACzBJ,MAAM,EAAEC,SAAS;MACjB,GAAGtB,aAAa;MAChB,GAAGC;IACL,CAAC;IACD,OAAO,IAAI,CAACmB,UAAU,CAACZ,OAAO,EAAEP,gBAAgB,CAAC;EACnD;;EAGAa,gBAAgB,CACdd,aAAyC,EACzCC,gBAA0C,EAClC;IACR,MAAMO,OAA6C,GAAG;MACpDS,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAE,eAAe;MACxB,GAAGnB,aAAa;MAChB,GAAGC;IACL,CAAC;IACD,OAAO,IAAI,CAACmB,UAAU,CAACZ,OAAO,EAAEP,gBAAgB,CAAC;EACnD;EAEAe,mBAAmB,CACjBhB,aAA4C,EAC5CC,gBAA0C,EAClC;IACR,MAAMO,OAAgD,GAAG;MACvDS,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAE,kBAAkB;MAC3B,GAAGnB,aAAa;MAChB,GAAGC;IACL,CAAC;IACD,OAAO,IAAI,CAACmB,UAAU,CAACZ,OAAO,EAAEP,gBAAgB,CAAC;EACnD;;EAOUmB,UAAU,CAClBZ,OAAgC,EAChCP,gBAA0C,EAClC;IACR,IAAIC,GAAG,aAAM,IAAI,CAACZ,UAAU,CAAE;IAC9B,IAAIoC,KAAK,GAAG,IAAI;IAChB,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIrC,MAAM,CAACsC,OAAO,CAACrB,OAAO,CAAC,EAAE;MAClDN,GAAG,IAAIwB,KAAK,GAAG,GAAG,GAAG,GAAG;MACxBA,KAAK,GAAG,KAAK;MACb,IAAII,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;QACxB1B,GAAG,cAAOyB,GAAG,CAACK,WAAW,EAAE,cAAIJ,KAAK,CAACK,IAAI,CAAC,GAAG,CAAC,CAAE;MAClD,CAAC,MAAM;QACL/B,GAAG,cAAOyB,GAAG,CAACK,WAAW,EAAE,cAAIJ,KAAK,GAAGM,MAAM,CAACN,KAAK,CAAC,GAAG,EAAE,CAAE;MAC7D;IACF;IACA,OAAOO,SAAS,CAACjC,GAAG,CAAC;EACvB;;EAGUI,cAAc,CAACF,QAAkB,EAAEC,WAAwB,EAAQ;IAC3E,MAAM+B,WAAW,GAAGhC,QAAQ,CAACiC,OAAO,CAAC,cAAc,CAAC;IACpD,IAAI,CAACjC,QAAQ,CAACkC,EAAE,IAAItD,cAAc,CAACuD,SAAS,CAACC,QAAQ,CAACJ,WAAW,CAAC,EAAE;MAClE,MAAMK,KAAK,GAAGzD,cAAc,CAAC0D,SAAS,CAACrC,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;MACrE,MAAM,IAAIkD,KAAK,CAACF,KAAK,CAAC;IACxB;EACF;;EAGU/B,WAAW,CAACL,WAAwB,EAAS;IACrD,MAAMoC,KAAK,GAAGzD,cAAc,CAAC0D,SAAS,CAACrC,WAAW,EAAE,IAAI,CAACZ,WAAW,CAAC;IACrE,OAAO,IAAIkD,KAAK,CAACF,KAAK,CAAC;EACzB;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wms-service.d.ts","sourceRoot":"","sources":["../../../src/lib/data-sources/wms-service.ts"],"names":[],"mappings":"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"}
|