@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.
Files changed (98) hide show
  1. package/dist/dist.min.js +3487 -33
  2. package/dist/es5/gml-loader.js +54 -0
  3. package/dist/es5/gml-loader.js.map +1 -0
  4. package/dist/es5/index.js +31 -3
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/lib/data-sources/image-data-source.js.map +1 -1
  7. package/dist/es5/lib/data-sources/{wms-data-source.js → wms-service.js} +182 -65
  8. package/dist/es5/lib/data-sources/wms-service.js.map +1 -0
  9. package/dist/es5/lib/gml/parse-gml.js +416 -0
  10. package/dist/es5/lib/gml/parse-gml.js.map +1 -0
  11. package/dist/es5/lib/wfs/parse-wfs.js +43 -0
  12. package/dist/es5/lib/wfs/parse-wfs.js.map +1 -0
  13. package/dist/es5/lib/wfs/wfs-types.js +2 -0
  14. package/dist/es5/lib/wfs/wfs-types.js.map +1 -0
  15. package/dist/es5/lib/{parse-wms.js → wms/parse-wms.js} +33 -2
  16. package/dist/es5/lib/wms/parse-wms.js.map +1 -0
  17. package/dist/es5/{wms-types.js → lib/wms/wms-types.js} +0 -0
  18. package/dist/es5/lib/wms/wms-types.js.map +1 -0
  19. package/dist/es5/lib/wmts/parse-wmts.js +43 -0
  20. package/dist/es5/lib/wmts/parse-wmts.js.map +1 -0
  21. package/dist/es5/lib/wmts/wmts-types.js +2 -0
  22. package/dist/es5/lib/wmts/wmts-types.js.map +1 -0
  23. package/dist/es5/wcs-capabilities-loader.js +54 -0
  24. package/dist/es5/wcs-capabilities-loader.js.map +1 -0
  25. package/dist/es5/wfs-capabilities-loader.js +54 -0
  26. package/dist/es5/wfs-capabilities-loader.js.map +1 -0
  27. package/dist/es5/wms-capabilities-loader.js +2 -2
  28. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  29. package/dist/es5/wms-error-loader.js +54 -0
  30. package/dist/es5/wms-error-loader.js.map +1 -0
  31. package/dist/es5/wms-feature-info-loader.js +1 -1
  32. package/dist/es5/wms-feature-info-loader.js.map +1 -1
  33. package/dist/es5/wms-layer-description-loader.js +3 -3
  34. package/dist/es5/wms-layer-description-loader.js.map +1 -1
  35. package/dist/es5/wmts-capabilities-loader.js +54 -0
  36. package/dist/es5/wmts-capabilities-loader.js.map +1 -0
  37. package/dist/esm/gml-loader.js +25 -0
  38. package/dist/esm/gml-loader.js.map +1 -0
  39. package/dist/esm/index.js +8 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/lib/data-sources/image-data-source.js.map +1 -1
  42. package/dist/esm/lib/data-sources/wms-service.js +156 -0
  43. package/dist/esm/lib/data-sources/wms-service.js.map +1 -0
  44. package/dist/esm/lib/gml/parse-gml.js +348 -0
  45. package/dist/esm/lib/gml/parse-gml.js.map +1 -0
  46. package/dist/esm/lib/wfs/parse-wfs.js +32 -0
  47. package/dist/esm/lib/wfs/parse-wfs.js.map +1 -0
  48. package/dist/esm/lib/wfs/wfs-types.js +2 -0
  49. package/dist/esm/lib/wfs/wfs-types.js.map +1 -0
  50. package/dist/esm/lib/{parse-wms.js → wms/parse-wms.js} +31 -2
  51. package/dist/esm/lib/wms/parse-wms.js.map +1 -0
  52. package/dist/esm/{wms-types.js → lib/wms/wms-types.js} +0 -0
  53. package/dist/esm/lib/wms/wms-types.js.map +1 -0
  54. package/dist/esm/lib/wmts/parse-wmts.js +32 -0
  55. package/dist/esm/lib/wmts/parse-wmts.js.map +1 -0
  56. package/dist/esm/lib/wmts/wmts-types.js +2 -0
  57. package/dist/esm/lib/wmts/wmts-types.js.map +1 -0
  58. package/dist/esm/wcs-capabilities-loader.js +25 -0
  59. package/dist/esm/wcs-capabilities-loader.js.map +1 -0
  60. package/dist/esm/wfs-capabilities-loader.js +25 -0
  61. package/dist/esm/wfs-capabilities-loader.js.map +1 -0
  62. package/dist/esm/wms-capabilities-loader.js +2 -2
  63. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  64. package/dist/esm/wms-error-loader.js +25 -0
  65. package/dist/esm/wms-error-loader.js.map +1 -0
  66. package/dist/esm/wms-feature-info-loader.js +1 -1
  67. package/dist/esm/wms-feature-info-loader.js.map +1 -1
  68. package/dist/esm/wms-layer-description-loader.js +3 -3
  69. package/dist/esm/wms-layer-description-loader.js.map +1 -1
  70. package/dist/esm/wmts-capabilities-loader.js +25 -0
  71. package/dist/esm/wmts-capabilities-loader.js.map +1 -0
  72. package/package.json +15 -5
  73. package/src/gml-loader.ts +40 -0
  74. package/src/index.ts +23 -4
  75. package/src/lib/data-sources/image-data-source.ts +1 -2
  76. package/src/lib/data-sources/wms-service.ts +313 -0
  77. package/src/lib/gml/parse-gml.ts +500 -0
  78. package/src/lib/wfs/parse-wfs.ts +39 -0
  79. package/src/lib/wfs/wfs-types.ts +78 -0
  80. package/src/lib/{parse-wms.ts → wms/parse-wms.ts} +41 -4
  81. package/src/{wms-types.ts → lib/wms/wms-types.ts} +3 -1
  82. package/src/lib/wmts/parse-wmts.ts +39 -0
  83. package/src/lib/wmts/wmts-types.ts +77 -0
  84. package/src/wcs-capabilities-loader.ts +40 -0
  85. package/src/wfs-capabilities-loader.ts +40 -0
  86. package/src/wms-capabilities-loader.ts +1 -1
  87. package/src/wms-error-loader.ts +40 -0
  88. package/src/wms-feature-info-loader.ts +1 -1
  89. package/src/wms-layer-description-loader.ts +4 -4
  90. package/src/wmts-capabilities-loader.ts +40 -0
  91. package/dist/es5/lib/data-sources/wms-data-source.js.map +0 -1
  92. package/dist/es5/lib/parse-wms.js.map +0 -1
  93. package/dist/es5/wms-types.js.map +0 -1
  94. package/dist/esm/lib/data-sources/wms-data-source.js +0 -70
  95. package/dist/esm/lib/data-sources/wms-data-source.js.map +0 -1
  96. package/dist/esm/lib/parse-wms.js.map +0 -1
  97. package/dist/esm/wms-types.js.map +0 -1
  98. 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, "_WMSDataSource", {
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 _wmsDataSource.WMSDataSource;
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 _wmsDataSource = require("./lib/data-sources/wms-data-source");
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// WMSCapabilitiesLoader\n\nexport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from './wms-types';\n\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 {WMSDataSourceProps as _WMSDataSourceProps} from './lib/data-sources/wms-data-source';\nexport {WMSDataSource as _WMSDataSource} from './lib/data-sources/wms-data-source';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AACA;AACA;AAGA"}
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/*\nimport {ImageType} 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":""}
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.WMSDataSource = void 0;
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 WMSDataSource = function () {
18
-
19
- function WMSDataSource(props) {
20
- (0, _classCallCheck2.default)(this, WMSDataSource);
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
- (0, _createClass2.default)(WMSDataSource, [{
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(options) {
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.getUrl(_objectSpread({
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 response.arrayBuffer();
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 = 9;
125
+ _context.next = 11;
49
126
  return _wms.WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
50
- case 9:
127
+ case 11:
51
128
  return _context.abrupt("return", _context.sent);
52
- case 10:
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: "getImage",
142
+ key: "getMap",
66
143
  value: function () {
67
- var _getImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options) {
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.getUrl(_objectSpread({
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 response.arrayBuffer();
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 = 9;
162
+ _context2.next = 11;
85
163
  return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
86
- case 9:
164
+ case 11:
87
165
  return _context2.abrupt("return", _context2.sent);
88
- case 10:
166
+ case 12:
89
167
  case "end":
90
168
  return _context2.stop();
91
169
  }
92
170
  }
93
171
  }, _callee2, this);
94
172
  }));
95
- function getImage(_x2) {
96
- return _getImage.apply(this, arguments);
173
+ function getMap(_x3, _x4) {
174
+ return _getMap.apply(this, arguments);
97
175
  }
98
- return getImage;
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.getUrl(_objectSpread({
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 response.arrayBuffer();
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 = 9;
199
+ _context3.next = 11;
121
200
  return _wms.WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
122
- case 9:
201
+ case 11:
123
202
  return _context3.abrupt("return", _context3.sent);
124
- case 10:
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(_x3) {
210
+ function getFeatureInfo(_x5, _x6) {
132
211
  return _getFeatureInfo.apply(this, arguments);
133
212
  }
134
213
  return getFeatureInfo;
135
214
  }()
136
215
  }, {
137
- key: "getLayerInfo",
216
+ key: "describeLayer",
138
217
  value: function () {
139
- var _getLayerInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(options) {
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.getUrl(_objectSpread({
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 response.arrayBuffer();
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 = 9;
236
+ _context4.next = 11;
157
237
  return _wms.WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
158
- case 9:
238
+ case 11:
159
239
  return _context4.abrupt("return", _context4.sent);
160
- case 10:
240
+ case 12:
161
241
  case "end":
162
242
  return _context4.stop();
163
243
  }
164
244
  }
165
245
  }, _callee4, this);
166
246
  }));
167
- function getLayerInfo(_x4) {
168
- return _getLayerInfo.apply(this, arguments);
247
+ function describeLayer(_x7, _x8) {
248
+ return _describeLayer.apply(this, arguments);
169
249
  }
170
- return getLayerInfo;
250
+ return describeLayer;
171
251
  }()
172
252
  }, {
173
- key: "getLegendImage",
253
+ key: "getLegendGraphic",
174
254
  value: function () {
175
- var _getLegendImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(options) {
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.getUrl(_objectSpread({
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 response.arrayBuffer();
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 = 9;
273
+ _context5.next = 11;
193
274
  return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
194
- case 9:
275
+ case 11:
195
276
  return _context5.abrupt("return", _context5.sent);
196
- case 10:
277
+ case 12:
197
278
  case "end":
198
279
  return _context5.stop();
199
280
  }
200
281
  }
201
282
  }, _callee5, this);
202
283
  }));
203
- function getLegendImage(_x5) {
204
- return _getLegendImage.apply(this, arguments);
284
+ function getLegendGraphic(_x9, _x10) {
285
+ return _getLegendGraphic.apply(this, arguments);
205
286
  }
206
- return getLegendImage;
287
+ return getLegendGraphic;
207
288
  }()
208
289
  }, {
209
- key: "getUrl",
290
+ key: "getWMSUrl",
210
291
  value:
211
- function getUrl(options) {
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 WMSDataSource;
337
+ return WMSService;
221
338
  }();
222
- exports.WMSDataSource = WMSDataSource;
223
- //# sourceMappingURL=wms-data-source.js.map
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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"}