@loaders.gl/wms 3.3.0-alpha.10 → 3.3.0-alpha.11
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 +3487 -33
- package/dist/es5/gml-loader.js +54 -0
- package/dist/es5/gml-loader.js.map +1 -0
- package/dist/es5/index.js +31 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/data-sources/image-data-source.js.map +1 -1
- package/dist/es5/lib/data-sources/{wms-data-source.js → wms-service.js} +182 -65
- package/dist/es5/lib/data-sources/wms-service.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/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/{parse-wms.js → wms/parse-wms.js} +33 -2
- 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/es5/lib/wms/wms-types.js.map +1 -0
- 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/wcs-capabilities-loader.js +54 -0
- package/dist/es5/wcs-capabilities-loader.js.map +1 -0
- package/dist/es5/wfs-capabilities-loader.js +54 -0
- package/dist/es5/wfs-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 +54 -0
- package/dist/es5/wms-error-loader.js.map +1 -0
- package/dist/es5/wms-feature-info-loader.js +1 -1
- package/dist/es5/wms-feature-info-loader.js.map +1 -1
- package/dist/es5/wms-layer-description-loader.js +3 -3
- package/dist/es5/wms-layer-description-loader.js.map +1 -1
- package/dist/es5/wmts-capabilities-loader.js +54 -0
- package/dist/es5/wmts-capabilities-loader.js.map +1 -0
- package/dist/esm/gml-loader.js +25 -0
- package/dist/esm/gml-loader.js.map +1 -0
- package/dist/esm/index.js +8 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/data-sources/image-data-source.js.map +1 -1
- package/dist/esm/lib/data-sources/wms-service.js +156 -0
- package/dist/esm/lib/data-sources/wms-service.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/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/{parse-wms.js → wms/parse-wms.js} +31 -2
- 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/esm/lib/wms/wms-types.js.map +1 -0
- 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/wcs-capabilities-loader.js +25 -0
- package/dist/esm/wcs-capabilities-loader.js.map +1 -0
- package/dist/esm/wfs-capabilities-loader.js +25 -0
- package/dist/esm/wfs-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 +25 -0
- package/dist/esm/wms-error-loader.js.map +1 -0
- package/dist/esm/wms-feature-info-loader.js +1 -1
- package/dist/esm/wms-feature-info-loader.js.map +1 -1
- package/dist/esm/wms-layer-description-loader.js +3 -3
- package/dist/esm/wms-layer-description-loader.js.map +1 -1
- package/dist/esm/wmts-capabilities-loader.js +25 -0
- package/dist/esm/wmts-capabilities-loader.js.map +1 -0
- package/package.json +15 -5
- package/src/gml-loader.ts +40 -0
- package/src/index.ts +23 -4
- package/src/lib/data-sources/image-data-source.ts +1 -2
- package/src/lib/data-sources/wms-service.ts +313 -0
- package/src/lib/gml/parse-gml.ts +500 -0
- package/src/lib/wfs/parse-wfs.ts +39 -0
- package/src/lib/wfs/wfs-types.ts +78 -0
- package/src/lib/{parse-wms.ts → wms/parse-wms.ts} +41 -4
- package/src/{wms-types.ts → lib/wms/wms-types.ts} +3 -1
- package/src/lib/wmts/parse-wmts.ts +39 -0
- package/src/lib/wmts/wmts-types.ts +77 -0
- package/src/wcs-capabilities-loader.ts +40 -0
- package/src/wfs-capabilities-loader.ts +40 -0
- package/src/wms-capabilities-loader.ts +1 -1
- package/src/wms-error-loader.ts +40 -0
- package/src/wms-feature-info-loader.ts +1 -1
- package/src/wms-layer-description-loader.ts +4 -4
- package/src/wmts-capabilities-loader.ts +40 -0
- package/dist/es5/lib/data-sources/wms-data-source.js.map +0 -1
- package/dist/es5/lib/parse-wms.js.map +0 -1
- package/dist/es5/wms-types.js.map +0 -1
- package/dist/esm/lib/data-sources/wms-data-source.js +0 -70
- package/dist/esm/lib/data-sources/wms-data-source.js.map +0 -1
- package/dist/esm/lib/parse-wms.js.map +0 -1
- package/dist/esm/wms-types.js.map +0 -1
- package/src/lib/data-sources/wms-data-source.ts +0 -99
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports._typecheckGMLLoader = exports.GMLLoader = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _parseGml = require("./lib/gml/parse-gml");
|
|
11
|
+
|
|
12
|
+
var VERSION = typeof "3.3.0-alpha.11" !== 'undefined' ? "3.3.0-alpha.11" : 'latest';
|
|
13
|
+
var GMLLoader = {
|
|
14
|
+
name: 'GML',
|
|
15
|
+
id: 'gml',
|
|
16
|
+
module: 'wms',
|
|
17
|
+
version: VERSION,
|
|
18
|
+
worker: false,
|
|
19
|
+
extensions: ['xml'],
|
|
20
|
+
mimeTypes: ['application/vnd.ogc.gml_xml', 'application/xml', 'text/xml'],
|
|
21
|
+
testText: testXMLFile,
|
|
22
|
+
options: {
|
|
23
|
+
gml: {}
|
|
24
|
+
},
|
|
25
|
+
parse: function () {
|
|
26
|
+
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
27
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
|
+
while (1) {
|
|
29
|
+
switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
return _context.abrupt("return", (0, _parseGml.parseGML)(new TextDecoder().decode(arrayBuffer), options));
|
|
32
|
+
case 1:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, _callee);
|
|
38
|
+
}));
|
|
39
|
+
function parse(_x, _x2) {
|
|
40
|
+
return _parse.apply(this, arguments);
|
|
41
|
+
}
|
|
42
|
+
return parse;
|
|
43
|
+
}(),
|
|
44
|
+
parseTextSync: function parseTextSync(text, options) {
|
|
45
|
+
return (0, _parseGml.parseGML)(text, options);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.GMLLoader = GMLLoader;
|
|
49
|
+
function testXMLFile(text) {
|
|
50
|
+
return text.startsWith('<?xml');
|
|
51
|
+
}
|
|
52
|
+
var _typecheckGMLLoader = GMLLoader;
|
|
53
|
+
exports._typecheckGMLLoader = _typecheckGMLLoader;
|
|
54
|
+
//# sourceMappingURL=gml-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gml-loader.js","names":["VERSION","GMLLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","gml","parse","arrayBuffer","parseGML","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckGMLLoader"],"sources":["../../src/gml-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseGML} from './lib/gml/parse-gml';\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 GMLLoaderOptions = LoaderOptions & {\n gml?: {};\n};\n\n/**\n * Loader for the response to the GML GetCapability request\n */\nexport const GMLLoader = {\n name: 'GML',\n id: 'gml',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.gml_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n gml: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: GMLLoaderOptions) =>\n parseGML(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: GMLLoaderOptions) => parseGML(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 _typecheckGMLLoader: LoaderWithParser = GMLLoader;\n"],"mappings":";;;;;;;;;AAGA;;AAIA,IAAMA,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AASpE,IAAMC,SAAS,GAAG;EACvBC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EAETC,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;IAAA,uEAAE,iBAAOC,WAAwB,EAAEH,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChE,IAAAI,kBAAQ,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACH,WAAW,CAAC,EAAEH,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAC1DO,aAAa,EAAE,uBAACC,IAAY,EAAER,OAA0B;IAAA,OAAK,IAAAI,kBAAQ,EAACI,IAAI,EAAER,OAAO,CAAC;EAAA;AACtF,CAAC;AAAC;AAEF,SAASD,WAAW,CAACS,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEO,IAAMC,mBAAqC,GAAGpB,SAAS;AAAC"}
|
package/dist/es5/index.js
CHANGED
|
@@ -3,12 +3,30 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "GMLLoader", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _gmlLoader.GMLLoader;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "WFSCapabilitiesLoader", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _wfsCapabilitiesLoader.WFSCapabilitiesLoader;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
6
18
|
Object.defineProperty(exports, "WMSCapabilitiesLoader", {
|
|
7
19
|
enumerable: true,
|
|
8
20
|
get: function get() {
|
|
9
21
|
return _wmsCapabilitiesLoader.WMSCapabilitiesLoader;
|
|
10
22
|
}
|
|
11
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "WMSErrorLoader", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _wmsErrorLoader.WMSErrorLoader;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
12
30
|
Object.defineProperty(exports, "WMSFeatureInfoLoader", {
|
|
13
31
|
enumerable: true,
|
|
14
32
|
get: function get() {
|
|
@@ -21,14 +39,24 @@ Object.defineProperty(exports, "WMSLayerDescriptionLoader", {
|
|
|
21
39
|
return _wmsLayerDescriptionLoader.WMSLayerDescriptionLoader;
|
|
22
40
|
}
|
|
23
41
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
42
|
+
Object.defineProperty(exports, "WMSService", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _wmsService.WMSService;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "WMTSCapabilitiesLoader", {
|
|
25
49
|
enumerable: true,
|
|
26
50
|
get: function get() {
|
|
27
|
-
return
|
|
51
|
+
return _wmtsCapabilitiesLoader.WMTSCapabilitiesLoader;
|
|
28
52
|
}
|
|
29
53
|
});
|
|
54
|
+
var _wmsErrorLoader = require("./wms-error-loader");
|
|
30
55
|
var _wmsCapabilitiesLoader = require("./wms-capabilities-loader");
|
|
31
56
|
var _wmsFeatureInfoLoader = require("./wms-feature-info-loader");
|
|
32
57
|
var _wmsLayerDescriptionLoader = require("./wms-layer-description-loader");
|
|
33
|
-
var
|
|
58
|
+
var _wmsService = require("./lib/data-sources/wms-service");
|
|
59
|
+
var _wfsCapabilitiesLoader = require("./wfs-capabilities-loader");
|
|
60
|
+
var _wmtsCapabilitiesLoader = require("./wmts-capabilities-loader");
|
|
61
|
+
var _gmlLoader = require("./gml-loader");
|
|
34
62
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n//
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// WMS\n\nexport {WMSErrorLoader} from './wms-error-loader';\n\nexport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from './lib/wms/wms-types';\nexport type {WMSLoaderOptions} from './wms-capabilities-loader';\nexport {WMSCapabilitiesLoader} from './wms-capabilities-loader';\nexport {WMSFeatureInfoLoader} from './wms-feature-info-loader';\nexport {WMSLayerDescriptionLoader} from './wms-layer-description-loader';\n\nexport type {WMSServiceProps} from './lib/data-sources/wms-service';\nexport {WMSService} from './lib/data-sources/wms-service';\n\n// WFS\n\nexport type {WFSCapabilities} from './lib/wfs/wfs-types';\nexport type {WFSLoaderOptions} from './wfs-capabilities-loader';\nexport {WFSCapabilitiesLoader} from './wfs-capabilities-loader';\n\n// WMTS\n\nexport type {WMTSCapabilities} from './lib/wmts/wmts-types';\nexport type {WMTSLoaderOptions} from './wmts-capabilities-loader';\nexport {WMTSCapabilitiesLoader} from './wmts-capabilities-loader';\n\n// GML\n\nexport type {GeoJSON} from '@loaders.gl/schema';\nexport type {GMLLoaderOptions} from './gml-loader';\nexport {GMLLoader} from './gml-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AAIA;AACA;AACA;AAGA;AAMA;AAMA;AAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-data-source.js","names":[],"sources":["../../../../src/lib/data-sources/image-data-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n
|
|
1
|
+
{"version":3,"file":"image-data-source.js","names":[],"sources":["../../../../src/lib/data-sources/image-data-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// from '@loaders.gl/images';\n\n/** General data source class *\nexport abstract class DataSource {};\n\n/** Data source that serves data by tile index *\nexport abstract class TileDataSource extends DataSource {};\n\nexport type ImageFeatureInfo = {};\n\nexport type ImageLayerInfo = {};\n\nexport type ImageDataSourceCapabilities = {}\n\n/**\n * ImageDataSource - data sources that allow data to be queried by (geospatial) extents\n * @note\n * - If geospatial, bounding box is expected to be in web mercator coordinates\n *\nexport abstract class ImageDataSource extends DataSource {\n abstract getCapabilities(): Promise<ImageDataSourceCapabilities>;\n abstract getImage({boundingBox, width, height, layers, parameters}): Promise<ImageType>;\n getFeatureInfo({layers, parameters}): Promise<ImageFeatureInfo> {\n throw new Error('not implemented');\n }\n getLayerInfo({layers, parameters}): Promise<ImageLayerInfo> {\n throw new Error('not implemented');\n }\n getLegendImage({layers, parameters}): Promise<ImageType> {\n throw new Error('not implemented');\n }\n}\n\n// Vector Tile Data Source\n\nexport type VectorTileDataSourceCapabilities = {\n // check tile.json\n}\n\nexport type VectorTile = Record<string, any>;\n\nexport abstract class VectorTileDataSource extends TileDataSource {\n abstract getCapabilities(): Promise<VectorTileDataSourceCapabilities>;\n abstract getTile({x, y, z, width, height, layers, parameters}): Promise<VectorTile>;\n}\n\n// Image Tile Data Source\n\nexport type ImageTileDataSourceCapabilities = {\n}\n\nexport type ImageTile = Record<string, any>;\n\nexport type FeatureInfo = {};\n\nexport abstract class ImageTileDataSource extends TileDataSource {\n source: ImageDataSource;\n \n constructor(source: ImageDataSource) {\n super();\n this.source = source;\n }\n\n getCapabilities(): Promise<ImageTileDataSourceCapabilities> {\n return this.source.getCapabilities();\n }\n\n getTile({x, y, z, width, height, layers, parameters}): Promise<ImageType> {\n const boundingBox = this.getBoundingBoxFromTileIndex(x, y, z);\n return this.source.getImage({boundingBox, width, height, layers, parameters});\n }\n\n getFeatureInfo(): FeatureInfo | null {\n return null;\n }\n\n getBoundingBoxFromTileIndex(x: number, y: number, z: number): [number, number, number, number] {\n return [0, 0, 1, 1];\n }\n}\n*/\n"],"mappings":""}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.WMSService = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
@@ -14,10 +14,52 @@ var _wms = require("@loaders.gl/wms");
|
|
|
14
14
|
var _images = require("@loaders.gl/images");
|
|
15
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
var WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS = {
|
|
18
|
+
service: 'WMS',
|
|
19
|
+
version: '1.1.1',
|
|
20
|
+
request: 'GetCapabilities'
|
|
21
|
+
};
|
|
22
|
+
var WMS_GET_MAP_DEFAULT_PARAMETERS = {
|
|
23
|
+
service: 'WMS',
|
|
24
|
+
version: '1.1.1',
|
|
25
|
+
request: 'GetMap',
|
|
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
|
+
};
|
|
34
|
+
var WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS = {
|
|
35
|
+
service: 'WMS',
|
|
36
|
+
version: '1.1.1',
|
|
37
|
+
request: 'GetFeatureInfo',
|
|
38
|
+
layers: [],
|
|
39
|
+
styles: undefined,
|
|
40
|
+
bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
|
|
41
|
+
width: 1200,
|
|
42
|
+
height: 900,
|
|
43
|
+
srs: 'EPSG:4326',
|
|
44
|
+
format: 'image/png',
|
|
45
|
+
x: undefined,
|
|
46
|
+
y: undefined,
|
|
47
|
+
query_layers: [],
|
|
48
|
+
info_format: 'text/plain'
|
|
49
|
+
};
|
|
50
|
+
var WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS = {
|
|
51
|
+
service: 'WMS',
|
|
52
|
+
version: '1.1.1',
|
|
53
|
+
request: 'DescribeLayer'
|
|
54
|
+
};
|
|
55
|
+
var WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS = {
|
|
56
|
+
service: 'WMS',
|
|
57
|
+
version: '1.1.1',
|
|
58
|
+
request: 'GetLegendGraphic'
|
|
59
|
+
};
|
|
60
|
+
var WMSService = function () {
|
|
61
|
+
function WMSService(props) {
|
|
62
|
+
(0, _classCallCheck2.default)(this, WMSService);
|
|
21
63
|
(0, _defineProperty2.default)(this, "url", void 0);
|
|
22
64
|
(0, _defineProperty2.default)(this, "loadOptions", void 0);
|
|
23
65
|
(0, _defineProperty2.default)(this, "fetch", void 0);
|
|
@@ -25,190 +67,230 @@ var WMSDataSource = function () {
|
|
|
25
67
|
this.loadOptions = props.loadOptions || {};
|
|
26
68
|
this.fetch = props.fetch || fetch;
|
|
27
69
|
}
|
|
28
|
-
|
|
70
|
+
|
|
71
|
+
(0, _createClass2.default)(WMSService, [{
|
|
72
|
+
key: "getCapabilitiesURL",
|
|
73
|
+
value:
|
|
74
|
+
|
|
75
|
+
function getCapabilitiesURL(parameters, extra) {
|
|
76
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS), parameters), extra);
|
|
77
|
+
return this.getWMSUrl(options, extra);
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "getMapURL",
|
|
81
|
+
value: function getMapURL(parameters, extra) {
|
|
82
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, WMS_GET_MAP_DEFAULT_PARAMETERS), parameters), extra);
|
|
83
|
+
return this.getWMSUrl(options, extra);
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
key: "getFeatureInfoURL",
|
|
87
|
+
value: function getFeatureInfoURL(parameters, extra) {
|
|
88
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS), parameters), extra);
|
|
89
|
+
return this.getWMSUrl(options, extra);
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: "describeLayerURL",
|
|
93
|
+
value: function describeLayerURL(parameters, extra) {
|
|
94
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS), parameters), extra);
|
|
95
|
+
return this.getWMSUrl(options, extra);
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
key: "getLegendGraphicURL",
|
|
99
|
+
value: function getLegendGraphicURL(parameters, extra) {
|
|
100
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS), parameters), extra);
|
|
101
|
+
return this.getWMSUrl(options, extra);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
}, {
|
|
29
105
|
key: "getCapabilities",
|
|
30
106
|
value: function () {
|
|
31
|
-
var _getCapabilities = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(
|
|
107
|
+
var _getCapabilities = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(parameters, extra) {
|
|
32
108
|
var url, response, arrayBuffer;
|
|
33
109
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
34
110
|
while (1) {
|
|
35
111
|
switch (_context.prev = _context.next) {
|
|
36
112
|
case 0:
|
|
37
|
-
url = this.
|
|
38
|
-
request: 'GetCapabilities'
|
|
39
|
-
}, options));
|
|
113
|
+
url = this.getCapabilitiesURL(parameters, extra);
|
|
40
114
|
_context.next = 3;
|
|
41
115
|
return this.fetch(url, this.loadOptions);
|
|
42
116
|
case 3:
|
|
43
117
|
response = _context.sent;
|
|
44
118
|
_context.next = 6;
|
|
45
|
-
return
|
|
119
|
+
return this.checkResponse(response);
|
|
46
120
|
case 6:
|
|
121
|
+
_context.next = 8;
|
|
122
|
+
return response.arrayBuffer();
|
|
123
|
+
case 8:
|
|
47
124
|
arrayBuffer = _context.sent;
|
|
48
|
-
_context.next =
|
|
125
|
+
_context.next = 11;
|
|
49
126
|
return _wms.WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
|
|
50
|
-
case
|
|
127
|
+
case 11:
|
|
51
128
|
return _context.abrupt("return", _context.sent);
|
|
52
|
-
case
|
|
129
|
+
case 12:
|
|
53
130
|
case "end":
|
|
54
131
|
return _context.stop();
|
|
55
132
|
}
|
|
56
133
|
}
|
|
57
134
|
}, _callee, this);
|
|
58
135
|
}));
|
|
59
|
-
function getCapabilities(_x) {
|
|
136
|
+
function getCapabilities(_x, _x2) {
|
|
60
137
|
return _getCapabilities.apply(this, arguments);
|
|
61
138
|
}
|
|
62
139
|
return getCapabilities;
|
|
63
140
|
}()
|
|
64
141
|
}, {
|
|
65
|
-
key: "
|
|
142
|
+
key: "getMap",
|
|
66
143
|
value: function () {
|
|
67
|
-
var
|
|
144
|
+
var _getMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options, extra) {
|
|
68
145
|
var url, response, arrayBuffer;
|
|
69
146
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
70
147
|
while (1) {
|
|
71
148
|
switch (_context2.prev = _context2.next) {
|
|
72
149
|
case 0:
|
|
73
|
-
url = this.
|
|
74
|
-
request: 'GetMap'
|
|
75
|
-
}, options));
|
|
150
|
+
url = this.getMapURL(options, extra);
|
|
76
151
|
_context2.next = 3;
|
|
77
152
|
return this.fetch(url, this.loadOptions);
|
|
78
153
|
case 3:
|
|
79
154
|
response = _context2.sent;
|
|
80
155
|
_context2.next = 6;
|
|
81
|
-
return
|
|
156
|
+
return this.checkResponse(response);
|
|
82
157
|
case 6:
|
|
158
|
+
_context2.next = 8;
|
|
159
|
+
return response.arrayBuffer();
|
|
160
|
+
case 8:
|
|
83
161
|
arrayBuffer = _context2.sent;
|
|
84
|
-
_context2.next =
|
|
162
|
+
_context2.next = 11;
|
|
85
163
|
return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
86
|
-
case
|
|
164
|
+
case 11:
|
|
87
165
|
return _context2.abrupt("return", _context2.sent);
|
|
88
|
-
case
|
|
166
|
+
case 12:
|
|
89
167
|
case "end":
|
|
90
168
|
return _context2.stop();
|
|
91
169
|
}
|
|
92
170
|
}
|
|
93
171
|
}, _callee2, this);
|
|
94
172
|
}));
|
|
95
|
-
function
|
|
96
|
-
return
|
|
173
|
+
function getMap(_x3, _x4) {
|
|
174
|
+
return _getMap.apply(this, arguments);
|
|
97
175
|
}
|
|
98
|
-
return
|
|
176
|
+
return getMap;
|
|
99
177
|
}()
|
|
100
178
|
}, {
|
|
101
179
|
key: "getFeatureInfo",
|
|
102
180
|
value: function () {
|
|
103
|
-
var _getFeatureInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(options) {
|
|
181
|
+
var _getFeatureInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(options, extra) {
|
|
104
182
|
var url, response, arrayBuffer;
|
|
105
183
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
106
184
|
while (1) {
|
|
107
185
|
switch (_context3.prev = _context3.next) {
|
|
108
186
|
case 0:
|
|
109
|
-
url = this.
|
|
110
|
-
request: 'GetFeatureInfo'
|
|
111
|
-
}, options));
|
|
187
|
+
url = this.getFeatureInfoURL(options, extra);
|
|
112
188
|
_context3.next = 3;
|
|
113
189
|
return this.fetch(url, this.loadOptions);
|
|
114
190
|
case 3:
|
|
115
191
|
response = _context3.sent;
|
|
116
192
|
_context3.next = 6;
|
|
117
|
-
return
|
|
193
|
+
return this.checkResponse(response);
|
|
118
194
|
case 6:
|
|
195
|
+
_context3.next = 8;
|
|
196
|
+
return response.arrayBuffer();
|
|
197
|
+
case 8:
|
|
119
198
|
arrayBuffer = _context3.sent;
|
|
120
|
-
_context3.next =
|
|
199
|
+
_context3.next = 11;
|
|
121
200
|
return _wms.WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
|
|
122
|
-
case
|
|
201
|
+
case 11:
|
|
123
202
|
return _context3.abrupt("return", _context3.sent);
|
|
124
|
-
case
|
|
203
|
+
case 12:
|
|
125
204
|
case "end":
|
|
126
205
|
return _context3.stop();
|
|
127
206
|
}
|
|
128
207
|
}
|
|
129
208
|
}, _callee3, this);
|
|
130
209
|
}));
|
|
131
|
-
function getFeatureInfo(
|
|
210
|
+
function getFeatureInfo(_x5, _x6) {
|
|
132
211
|
return _getFeatureInfo.apply(this, arguments);
|
|
133
212
|
}
|
|
134
213
|
return getFeatureInfo;
|
|
135
214
|
}()
|
|
136
215
|
}, {
|
|
137
|
-
key: "
|
|
216
|
+
key: "describeLayer",
|
|
138
217
|
value: function () {
|
|
139
|
-
var
|
|
218
|
+
var _describeLayer = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(options, extra) {
|
|
140
219
|
var url, response, arrayBuffer;
|
|
141
220
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
142
221
|
while (1) {
|
|
143
222
|
switch (_context4.prev = _context4.next) {
|
|
144
223
|
case 0:
|
|
145
|
-
url = this.
|
|
146
|
-
request: 'GetLayerInfo'
|
|
147
|
-
}, options));
|
|
224
|
+
url = this.describeLayerURL(options, extra);
|
|
148
225
|
_context4.next = 3;
|
|
149
226
|
return this.fetch(url, this.loadOptions);
|
|
150
227
|
case 3:
|
|
151
228
|
response = _context4.sent;
|
|
152
229
|
_context4.next = 6;
|
|
153
|
-
return
|
|
230
|
+
return this.checkResponse(response);
|
|
154
231
|
case 6:
|
|
232
|
+
_context4.next = 8;
|
|
233
|
+
return response.arrayBuffer();
|
|
234
|
+
case 8:
|
|
155
235
|
arrayBuffer = _context4.sent;
|
|
156
|
-
_context4.next =
|
|
236
|
+
_context4.next = 11;
|
|
157
237
|
return _wms.WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
|
|
158
|
-
case
|
|
238
|
+
case 11:
|
|
159
239
|
return _context4.abrupt("return", _context4.sent);
|
|
160
|
-
case
|
|
240
|
+
case 12:
|
|
161
241
|
case "end":
|
|
162
242
|
return _context4.stop();
|
|
163
243
|
}
|
|
164
244
|
}
|
|
165
245
|
}, _callee4, this);
|
|
166
246
|
}));
|
|
167
|
-
function
|
|
168
|
-
return
|
|
247
|
+
function describeLayer(_x7, _x8) {
|
|
248
|
+
return _describeLayer.apply(this, arguments);
|
|
169
249
|
}
|
|
170
|
-
return
|
|
250
|
+
return describeLayer;
|
|
171
251
|
}()
|
|
172
252
|
}, {
|
|
173
|
-
key: "
|
|
253
|
+
key: "getLegendGraphic",
|
|
174
254
|
value: function () {
|
|
175
|
-
var
|
|
255
|
+
var _getLegendGraphic = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(options, extra) {
|
|
176
256
|
var url, response, arrayBuffer;
|
|
177
257
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
178
258
|
while (1) {
|
|
179
259
|
switch (_context5.prev = _context5.next) {
|
|
180
260
|
case 0:
|
|
181
|
-
url = this.
|
|
182
|
-
request: 'GetLegendImage'
|
|
183
|
-
}, options));
|
|
261
|
+
url = this.getLegendGraphicURL(options, extra);
|
|
184
262
|
_context5.next = 3;
|
|
185
263
|
return this.fetch(url, this.loadOptions);
|
|
186
264
|
case 3:
|
|
187
265
|
response = _context5.sent;
|
|
188
266
|
_context5.next = 6;
|
|
189
|
-
return
|
|
267
|
+
return this.checkResponse(response);
|
|
190
268
|
case 6:
|
|
269
|
+
_context5.next = 8;
|
|
270
|
+
return response.arrayBuffer();
|
|
271
|
+
case 8:
|
|
191
272
|
arrayBuffer = _context5.sent;
|
|
192
|
-
_context5.next =
|
|
273
|
+
_context5.next = 11;
|
|
193
274
|
return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
|
|
194
|
-
case
|
|
275
|
+
case 11:
|
|
195
276
|
return _context5.abrupt("return", _context5.sent);
|
|
196
|
-
case
|
|
277
|
+
case 12:
|
|
197
278
|
case "end":
|
|
198
279
|
return _context5.stop();
|
|
199
280
|
}
|
|
200
281
|
}
|
|
201
282
|
}, _callee5, this);
|
|
202
283
|
}));
|
|
203
|
-
function
|
|
204
|
-
return
|
|
284
|
+
function getLegendGraphic(_x9, _x10) {
|
|
285
|
+
return _getLegendGraphic.apply(this, arguments);
|
|
205
286
|
}
|
|
206
|
-
return
|
|
287
|
+
return getLegendGraphic;
|
|
207
288
|
}()
|
|
208
289
|
}, {
|
|
209
|
-
key: "
|
|
290
|
+
key: "getWMSUrl",
|
|
210
291
|
value:
|
|
211
|
-
|
|
292
|
+
|
|
293
|
+
function getWMSUrl(options, extra) {
|
|
212
294
|
var _options$layers;
|
|
213
295
|
var url = "".concat(this.url, "?REQUEST=").concat(options.request);
|
|
214
296
|
if ((_options$layers = options.layers) !== null && _options$layers !== void 0 && _options$layers.length) {
|
|
@@ -216,8 +298,43 @@ var WMSDataSource = function () {
|
|
|
216
298
|
}
|
|
217
299
|
return url;
|
|
218
300
|
}
|
|
301
|
+
|
|
302
|
+
}, {
|
|
303
|
+
key: "checkResponse",
|
|
304
|
+
value: function () {
|
|
305
|
+
var _checkResponse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(response) {
|
|
306
|
+
var arrayBuffer, error;
|
|
307
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
308
|
+
while (1) {
|
|
309
|
+
switch (_context6.prev = _context6.next) {
|
|
310
|
+
case 0:
|
|
311
|
+
if (!(!response.ok || response.headers['content-type'] === _wms.WMSErrorLoader.mimeTypes[0])) {
|
|
312
|
+
_context6.next = 8;
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
_context6.next = 3;
|
|
316
|
+
return response.arrayBuffer();
|
|
317
|
+
case 3:
|
|
318
|
+
arrayBuffer = _context6.sent;
|
|
319
|
+
_context6.next = 6;
|
|
320
|
+
return _wms.WMSErrorLoader.parse(arrayBuffer, this.loadOptions);
|
|
321
|
+
case 6:
|
|
322
|
+
error = _context6.sent;
|
|
323
|
+
throw new Error(error);
|
|
324
|
+
case 8:
|
|
325
|
+
case "end":
|
|
326
|
+
return _context6.stop();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}, _callee6, this);
|
|
330
|
+
}));
|
|
331
|
+
function checkResponse(_x11) {
|
|
332
|
+
return _checkResponse.apply(this, arguments);
|
|
333
|
+
}
|
|
334
|
+
return checkResponse;
|
|
335
|
+
}()
|
|
219
336
|
}]);
|
|
220
|
-
return
|
|
337
|
+
return WMSService;
|
|
221
338
|
}();
|
|
222
|
-
exports.
|
|
223
|
-
//# sourceMappingURL=wms-
|
|
339
|
+
exports.WMSService = WMSService;
|
|
340
|
+
//# sourceMappingURL=wms-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wms-service.js","names":["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","props","url","loadOptions","fetch","parameters","extra","options","getWMSUrl","getCapabilitiesURL","response","checkResponse","arrayBuffer","WMSCapabilitiesLoader","parse","getMapURL","ImageLoader","getFeatureInfoURL","WMSFeatureInfoLoader","describeLayerURL","WMSLayerDescriptionLoader","getLegendGraphicURL","length","join","ok","headers","WMSErrorLoader","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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"}
|