@loaders.gl/wms 3.3.0-alpha.11 → 3.3.0-alpha.13

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 (199) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +6 -0
  4. package/dist/dist.min.js +4842 -5361
  5. package/dist/es5/index.js +41 -20
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/lerc-loader.js +74 -0
  8. package/dist/es5/lerc-loader.js.map +1 -0
  9. package/dist/es5/lib/data-sources/adhoc-image-service.js +125 -0
  10. package/dist/es5/lib/data-sources/adhoc-image-service.js.map +1 -0
  11. package/dist/es5/lib/data-sources/image-source.js +14 -0
  12. package/dist/es5/lib/data-sources/image-source.js.map +1 -0
  13. package/dist/es5/lib/data-sources/wms-service.js +192 -173
  14. package/dist/es5/lib/data-sources/wms-service.js.map +1 -1
  15. package/dist/es5/lib/gml/deep-strict-equal.js +64 -0
  16. package/dist/es5/lib/gml/deep-strict-equal.js.map +1 -0
  17. package/dist/es5/lib/gml/parse-gml.js +3 -3
  18. package/dist/es5/lib/gml/parse-gml.js.map +1 -1
  19. package/dist/es5/lib/lerc/lerc-types.js +2 -0
  20. package/dist/es5/lib/lerc/lerc-types.js.map +1 -0
  21. package/dist/es5/lib/wcs/parse-wcs.js +43 -0
  22. package/dist/es5/lib/wcs/parse-wcs.js.map +1 -0
  23. package/dist/es5/lib/wcs/wcs-types.js +2 -0
  24. package/dist/es5/lib/wcs/wcs-types.js.map +1 -0
  25. package/dist/es5/lib/wms/parse-wms.js +6 -4
  26. package/dist/es5/lib/wms/parse-wms.js.map +1 -1
  27. package/dist/es5/wip/data-source.js +4 -0
  28. package/dist/es5/wip/data-source.js.map +1 -0
  29. package/dist/es5/{gml-loader.js → wip/gml-loader.js} +2 -2
  30. package/dist/es5/wip/gml-loader.js.map +1 -0
  31. package/dist/es5/{wcs-capabilities-loader.js → wip/wcs-capabilities-loader.js} +5 -5
  32. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -0
  33. package/dist/es5/{wfs-capabilities-loader.js → wip/wfs-capabilities-loader.js} +3 -3
  34. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -0
  35. package/dist/es5/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
  36. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -0
  37. package/dist/es5/{wms-layer-description-loader.js → wip/wms-layer-description-loader.js} +3 -3
  38. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -0
  39. package/dist/es5/wip/wms-layer-description-loader.md +47 -0
  40. package/dist/es5/{wmts-capabilities-loader.js → wip/wmts-capabilities-loader.js} +3 -3
  41. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -0
  42. package/dist/es5/wms-capabilities-loader.js +2 -2
  43. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  44. package/dist/es5/wms-error-loader.js +22 -6
  45. package/dist/es5/wms-error-loader.js.map +1 -1
  46. package/dist/esm/index.js +11 -5
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/lerc-loader.js +25 -0
  49. package/dist/esm/lerc-loader.js.map +1 -0
  50. package/dist/esm/lib/data-sources/adhoc-image-service.js +41 -0
  51. package/dist/esm/lib/data-sources/adhoc-image-service.js.map +1 -0
  52. package/dist/esm/lib/data-sources/image-source.js +4 -0
  53. package/dist/esm/lib/data-sources/image-source.js.map +1 -0
  54. package/dist/esm/lib/data-sources/wms-service.js +136 -116
  55. package/dist/esm/lib/data-sources/wms-service.js.map +1 -1
  56. package/dist/esm/lib/gml/deep-strict-equal.js +57 -0
  57. package/dist/esm/lib/gml/deep-strict-equal.js.map +1 -0
  58. package/dist/esm/lib/gml/parse-gml.js +1 -1
  59. package/dist/esm/lib/gml/parse-gml.js.map +1 -1
  60. package/dist/esm/lib/lerc/lerc-types.js +2 -0
  61. package/dist/esm/lib/lerc/lerc-types.js.map +1 -0
  62. package/dist/esm/lib/wcs/parse-wcs.js +32 -0
  63. package/dist/esm/lib/wcs/parse-wcs.js.map +1 -0
  64. package/dist/esm/lib/wcs/wcs-types.js +2 -0
  65. package/dist/esm/lib/wcs/wcs-types.js.map +1 -0
  66. package/dist/esm/lib/wms/parse-wms.js +6 -4
  67. package/dist/esm/lib/wms/parse-wms.js.map +1 -1
  68. package/dist/esm/wip/data-source.js +2 -0
  69. package/dist/esm/wip/data-source.js.map +1 -0
  70. package/dist/esm/{gml-loader.js → wip/gml-loader.js} +2 -2
  71. package/dist/esm/wip/gml-loader.js.map +1 -0
  72. package/dist/esm/{wcs-capabilities-loader.js → wip/wcs-capabilities-loader.js} +3 -3
  73. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -0
  74. package/dist/esm/{wfs-capabilities-loader.js → wip/wfs-capabilities-loader.js} +3 -3
  75. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -0
  76. package/dist/esm/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
  77. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -0
  78. package/dist/esm/{wms-layer-description-loader.js → wip/wms-layer-description-loader.js} +3 -3
  79. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -0
  80. package/dist/esm/wip/wms-layer-description-loader.md +47 -0
  81. package/dist/esm/{wmts-capabilities-loader.js → wip/wmts-capabilities-loader.js} +3 -3
  82. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -0
  83. package/dist/esm/wms-capabilities-loader.js +2 -2
  84. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  85. package/dist/esm/wms-error-loader.js +20 -5
  86. package/dist/esm/wms-error-loader.js.map +1 -1
  87. package/dist/index.d.ts +25 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +27 -0
  90. package/dist/lerc-loader.d.ts +30 -0
  91. package/dist/lerc-loader.d.ts.map +1 -0
  92. package/dist/lerc-loader.js +56 -0
  93. package/dist/lib/data-sources/adhoc-image-service.d.ts +22 -0
  94. package/dist/lib/data-sources/adhoc-image-service.d.ts.map +1 -0
  95. package/dist/lib/data-sources/adhoc-image-service.js +44 -0
  96. package/dist/lib/data-sources/image-source.d.ts +73 -0
  97. package/dist/lib/data-sources/image-source.d.ts.map +1 -0
  98. package/dist/lib/data-sources/image-source.js +12 -0
  99. package/dist/lib/data-sources/wms-service.d.ts +193 -0
  100. package/dist/lib/data-sources/wms-service.d.ts.map +1 -0
  101. package/dist/lib/data-sources/wms-service.js +206 -0
  102. package/dist/lib/gml/deep-strict-equal.d.ts +3 -0
  103. package/dist/lib/gml/deep-strict-equal.d.ts.map +1 -0
  104. package/dist/lib/gml/deep-strict-equal.js +119 -0
  105. package/dist/lib/gml/parse-gml.d.ts +28 -0
  106. package/dist/lib/gml/parse-gml.d.ts.map +1 -0
  107. package/dist/lib/gml/parse-gml.js +371 -0
  108. package/dist/lib/lerc/lerc-types.d.ts +30 -0
  109. package/dist/lib/lerc/lerc-types.d.ts.map +1 -0
  110. package/dist/lib/lerc/lerc-types.js +3 -0
  111. package/dist/lib/wcs/parse-wcs.d.ts +7 -0
  112. package/dist/lib/wcs/parse-wcs.d.ts.map +1 -0
  113. package/dist/lib/wcs/parse-wcs.js +36 -0
  114. package/dist/lib/wcs/wcs-types.d.ts +73 -0
  115. package/dist/lib/wcs/wcs-types.d.ts.map +1 -0
  116. package/dist/lib/wcs/wcs-types.js +3 -0
  117. package/dist/lib/wfs/parse-wfs.d.ts +7 -0
  118. package/dist/lib/wfs/parse-wfs.d.ts.map +1 -0
  119. package/dist/lib/wfs/parse-wfs.js +36 -0
  120. package/dist/lib/wfs/wfs-types.d.ts +73 -0
  121. package/dist/lib/wfs/wfs-types.d.ts.map +1 -0
  122. package/dist/lib/wfs/wfs-types.js +3 -0
  123. package/dist/lib/wms/parse-wms.d.ts +24 -0
  124. package/dist/lib/wms/parse-wms.d.ts.map +1 -0
  125. package/dist/lib/wms/parse-wms.js +115 -0
  126. package/dist/lib/wms/wms-types.d.ts +100 -0
  127. package/dist/lib/wms/wms-types.d.ts.map +1 -0
  128. package/dist/lib/wms/wms-types.js +1908 -0
  129. package/dist/lib/wmts/parse-wmts.d.ts +7 -0
  130. package/dist/lib/wmts/parse-wmts.d.ts.map +1 -0
  131. package/dist/lib/wmts/parse-wmts.js +36 -0
  132. package/dist/lib/wmts/wmts-types.d.ts +73 -0
  133. package/dist/lib/wmts/wmts-types.d.ts.map +1 -0
  134. package/dist/lib/wmts/wmts-types.js +3 -0
  135. package/dist/wip/data-source.d.ts +53 -0
  136. package/dist/wip/data-source.d.ts.map +1 -0
  137. package/dist/wip/data-source.js +57 -0
  138. package/dist/wip/gml-loader.d.ts +26 -0
  139. package/dist/wip/gml-loader.d.ts.map +1 -0
  140. package/dist/wip/gml-loader.js +31 -0
  141. package/dist/wip/wcs-capabilities-loader.d.ts +26 -0
  142. package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -0
  143. package/dist/wip/wcs-capabilities-loader.js +31 -0
  144. package/dist/wip/wfs-capabilities-loader.d.ts +26 -0
  145. package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -0
  146. package/dist/wip/wfs-capabilities-loader.js +31 -0
  147. package/dist/wip/wms-feature-info-loader.d.ts +22 -0
  148. package/dist/wip/wms-feature-info-loader.d.ts.map +1 -0
  149. package/dist/wip/wms-feature-info-loader.js +17 -0
  150. package/dist/wip/wms-layer-description-loader.d.ts +22 -0
  151. package/dist/wip/wms-layer-description-loader.d.ts.map +1 -0
  152. package/dist/wip/wms-layer-description-loader.js +17 -0
  153. package/dist/wip/wmts-capabilities-loader.d.ts +26 -0
  154. package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -0
  155. package/dist/wip/wmts-capabilities-loader.js +31 -0
  156. package/dist/wms-capabilities-loader.d.ts +26 -0
  157. package/dist/wms-capabilities-loader.d.ts.map +1 -0
  158. package/dist/wms-capabilities-loader.js +31 -0
  159. package/dist/wms-error-loader.d.ts +34 -0
  160. package/dist/wms-error-loader.d.ts.map +1 -0
  161. package/dist/wms-error-loader.js +43 -0
  162. package/package.json +9 -8
  163. package/src/index.ts +34 -13
  164. package/src/lerc-loader.ts +50 -0
  165. package/src/lib/data-sources/adhoc-image-service.ts +58 -0
  166. package/src/lib/data-sources/image-source.ts +82 -0
  167. package/src/lib/data-sources/wms-service.ts +211 -177
  168. package/src/lib/gml/deep-strict-equal.ts +119 -0
  169. package/src/lib/gml/parse-gml.ts +1 -1
  170. package/src/lib/lerc/lerc-types.ts +43 -0
  171. package/src/lib/wcs/parse-wcs.ts +39 -0
  172. package/src/lib/wcs/wcs-types.ts +77 -0
  173. package/src/lib/wms/parse-wms.ts +16 -3
  174. package/src/{lib/data-sources/image-data-source.ts → wip/data-source.ts} +6 -29
  175. package/src/{gml-loader.ts → wip/gml-loader.ts} +1 -1
  176. package/src/{wcs-capabilities-loader.ts → wip/wcs-capabilities-loader.ts} +2 -2
  177. package/src/{wfs-capabilities-loader.ts → wip/wfs-capabilities-loader.ts} +2 -2
  178. package/src/{wms-feature-info-loader.ts → wip/wms-feature-info-loader.ts} +3 -3
  179. package/src/wip/wms-layer-description-loader.md +47 -0
  180. package/src/{wms-layer-description-loader.ts → wip/wms-layer-description-loader.ts} +3 -3
  181. package/src/{wmts-capabilities-loader.ts → wip/wmts-capabilities-loader.ts} +2 -2
  182. package/src/wms-capabilities-loader.ts +1 -1
  183. package/src/wms-error-loader.ts +25 -6
  184. package/dist/es5/gml-loader.js.map +0 -1
  185. package/dist/es5/lib/data-sources/image-data-source.js +0 -4
  186. package/dist/es5/lib/data-sources/image-data-source.js.map +0 -1
  187. package/dist/es5/wcs-capabilities-loader.js.map +0 -1
  188. package/dist/es5/wfs-capabilities-loader.js.map +0 -1
  189. package/dist/es5/wms-feature-info-loader.js.map +0 -1
  190. package/dist/es5/wms-layer-description-loader.js.map +0 -1
  191. package/dist/es5/wmts-capabilities-loader.js.map +0 -1
  192. package/dist/esm/gml-loader.js.map +0 -1
  193. package/dist/esm/lib/data-sources/image-data-source.js +0 -2
  194. package/dist/esm/lib/data-sources/image-data-source.js.map +0 -1
  195. package/dist/esm/wcs-capabilities-loader.js.map +0 -1
  196. package/dist/esm/wfs-capabilities-loader.js.map +0 -1
  197. package/dist/esm/wms-feature-info-loader.js.map +0 -1
  198. package/dist/esm/wms-layer-description-loader.js.map +0 -1
  199. package/dist/esm/wmts-capabilities-loader.js.map +0 -1
@@ -6,124 +6,81 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.WMSService = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- var _wms = require("@loaders.gl/wms");
14
18
  var _images = require("@loaders.gl/images");
19
+ var _imageSource = require("./image-source");
20
+ var _wmsCapabilitiesLoader = require("../../wms-capabilities-loader");
21
+ var _wmsFeatureInfoLoader = require("../../wip/wms-feature-info-loader");
22
+ var _wmsLayerDescriptionLoader = require("../../wip/wms-layer-description-loader");
23
+ var _wmsErrorLoader = require("../../wms-error-loader");
15
24
  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
25
  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 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 () {
26
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
28
+ var WMSService = function (_ImageSource) {
29
+ (0, _inherits2.default)(WMSService, _ImageSource);
30
+ var _super = _createSuper(WMSService);
31
+
61
32
  function WMSService(props) {
33
+ var _this;
62
34
  (0, _classCallCheck2.default)(this, WMSService);
63
- (0, _defineProperty2.default)(this, "url", void 0);
64
- (0, _defineProperty2.default)(this, "loadOptions", void 0);
65
- (0, _defineProperty2.default)(this, "fetch", void 0);
66
- this.url = props.url;
67
- this.loadOptions = props.loadOptions || {};
68
- this.fetch = props.fetch || fetch;
35
+ _this = _super.call(this);
36
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "serviceUrl", void 0);
37
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loadOptions", {
38
+ wms: {
39
+ throwOnError: true
40
+ }
41
+ });
42
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fetch", void 0);
43
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loaders", [_images.ImageLoader, _wmsErrorLoader.WMSErrorLoader, _wmsCapabilitiesLoader.WMSCapabilitiesLoader, _wmsFeatureInfoLoader.WMSFeatureInfoLoader, _wmsLayerDescriptionLoader.WMSLayerDescriptionLoader]);
44
+ _this.serviceUrl = props.serviceUrl;
45
+ Object.assign(_this.loadOptions, props.loadOptions);
46
+ _this.fetch = props.fetch || fetch;
47
+ return _this;
69
48
  }
70
49
 
71
50
  (0, _createClass2.default)(WMSService, [{
72
- key: "getCapabilitiesURL",
51
+ key: "getMetadata",
73
52
  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);
53
+ function getMetadata() {
54
+ return this.getCapabilities();
90
55
  }
91
56
  }, {
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);
57
+ key: "getImage",
58
+ value: function getImage(parameters) {
59
+ return this.getMap(parameters);
102
60
  }
103
61
 
104
62
  }, {
105
63
  key: "getCapabilities",
106
64
  value: function () {
107
- var _getCapabilities = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(parameters, extra) {
108
- var url, response, arrayBuffer;
65
+ var _getCapabilities = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(wmsParameters, vendorParameters) {
66
+ var url, fetch, response, arrayBuffer;
109
67
  return _regenerator.default.wrap(function _callee$(_context) {
110
68
  while (1) {
111
69
  switch (_context.prev = _context.next) {
112
70
  case 0:
113
- url = this.getCapabilitiesURL(parameters, extra);
114
- _context.next = 3;
115
- return this.fetch(url, this.loadOptions);
116
- case 3:
71
+ url = this.getCapabilitiesURL(wmsParameters, vendorParameters);
72
+ fetch = this.fetch;
73
+ _context.next = 4;
74
+ return fetch(url, this.loadOptions);
75
+ case 4:
117
76
  response = _context.sent;
118
- _context.next = 6;
119
- return this.checkResponse(response);
120
- case 6:
121
- _context.next = 8;
77
+ _context.next = 7;
122
78
  return response.arrayBuffer();
123
- case 8:
79
+ case 7:
124
80
  arrayBuffer = _context.sent;
81
+ this._checkResponse(response, arrayBuffer);
125
82
  _context.next = 11;
126
- return _wms.WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
83
+ return _wmsCapabilitiesLoader.WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
127
84
  case 11:
128
85
  return _context.abrupt("return", _context.sent);
129
86
  case 12:
@@ -141,34 +98,38 @@ var WMSService = function () {
141
98
  }, {
142
99
  key: "getMap",
143
100
  value: function () {
144
- var _getMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options, extra) {
145
- var url, response, arrayBuffer;
101
+ var _getMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options, vendorParameters) {
102
+ var url, fetch, response, arrayBuffer;
146
103
  return _regenerator.default.wrap(function _callee2$(_context2) {
147
104
  while (1) {
148
105
  switch (_context2.prev = _context2.next) {
149
106
  case 0:
150
- url = this.getMapURL(options, extra);
151
- _context2.next = 3;
152
- return this.fetch(url, this.loadOptions);
153
- case 3:
107
+ url = this.getMapURL(options, vendorParameters);
108
+ fetch = this.fetch;
109
+ _context2.next = 4;
110
+ return fetch(url, this.loadOptions);
111
+ case 4:
154
112
  response = _context2.sent;
155
- _context2.next = 6;
156
- return this.checkResponse(response);
157
- case 6:
158
- _context2.next = 8;
113
+ _context2.next = 7;
159
114
  return response.arrayBuffer();
160
- case 8:
115
+ case 7:
161
116
  arrayBuffer = _context2.sent;
162
- _context2.next = 11;
117
+ this._checkResponse(response, arrayBuffer);
118
+ _context2.prev = 9;
119
+ _context2.next = 12;
163
120
  return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
164
- case 11:
165
- return _context2.abrupt("return", _context2.sent);
166
121
  case 12:
122
+ return _context2.abrupt("return", _context2.sent);
123
+ case 15:
124
+ _context2.prev = 15;
125
+ _context2.t0 = _context2["catch"](9);
126
+ throw this._parseError(arrayBuffer);
127
+ case 18:
167
128
  case "end":
168
129
  return _context2.stop();
169
130
  }
170
131
  }
171
- }, _callee2, this);
132
+ }, _callee2, this, [[9, 15]]);
172
133
  }));
173
134
  function getMap(_x3, _x4) {
174
135
  return _getMap.apply(this, arguments);
@@ -178,29 +139,27 @@ var WMSService = function () {
178
139
  }, {
179
140
  key: "getFeatureInfo",
180
141
  value: function () {
181
- var _getFeatureInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(options, extra) {
142
+ var _getFeatureInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(options, vendorParameters) {
182
143
  var url, response, arrayBuffer;
183
144
  return _regenerator.default.wrap(function _callee3$(_context3) {
184
145
  while (1) {
185
146
  switch (_context3.prev = _context3.next) {
186
147
  case 0:
187
- url = this.getFeatureInfoURL(options, extra);
148
+ url = this.getFeatureInfoURL(options, vendorParameters);
188
149
  _context3.next = 3;
189
150
  return this.fetch(url, this.loadOptions);
190
151
  case 3:
191
152
  response = _context3.sent;
192
153
  _context3.next = 6;
193
- return this.checkResponse(response);
194
- case 6:
195
- _context3.next = 8;
196
154
  return response.arrayBuffer();
197
- case 8:
155
+ case 6:
198
156
  arrayBuffer = _context3.sent;
199
- _context3.next = 11;
200
- return _wms.WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
201
- case 11:
157
+ this._checkResponse(response, arrayBuffer);
158
+ _context3.next = 10;
159
+ return _wmsFeatureInfoLoader.WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
160
+ case 10:
202
161
  return _context3.abrupt("return", _context3.sent);
203
- case 12:
162
+ case 11:
204
163
  case "end":
205
164
  return _context3.stop();
206
165
  }
@@ -215,29 +174,27 @@ var WMSService = function () {
215
174
  }, {
216
175
  key: "describeLayer",
217
176
  value: function () {
218
- var _describeLayer = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(options, extra) {
177
+ var _describeLayer = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(options, vendorParameters) {
219
178
  var url, response, arrayBuffer;
220
179
  return _regenerator.default.wrap(function _callee4$(_context4) {
221
180
  while (1) {
222
181
  switch (_context4.prev = _context4.next) {
223
182
  case 0:
224
- url = this.describeLayerURL(options, extra);
183
+ url = this.describeLayerURL(options, vendorParameters);
225
184
  _context4.next = 3;
226
185
  return this.fetch(url, this.loadOptions);
227
186
  case 3:
228
187
  response = _context4.sent;
229
188
  _context4.next = 6;
230
- return this.checkResponse(response);
231
- case 6:
232
- _context4.next = 8;
233
189
  return response.arrayBuffer();
234
- case 8:
190
+ case 6:
235
191
  arrayBuffer = _context4.sent;
236
- _context4.next = 11;
237
- return _wms.WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
238
- case 11:
192
+ this._checkResponse(response, arrayBuffer);
193
+ _context4.next = 10;
194
+ return _wmsLayerDescriptionLoader.WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
195
+ case 10:
239
196
  return _context4.abrupt("return", _context4.sent);
240
- case 12:
197
+ case 11:
241
198
  case "end":
242
199
  return _context4.stop();
243
200
  }
@@ -252,34 +209,37 @@ var WMSService = function () {
252
209
  }, {
253
210
  key: "getLegendGraphic",
254
211
  value: function () {
255
- var _getLegendGraphic = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(options, extra) {
212
+ var _getLegendGraphic = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(options, vendorParameters) {
256
213
  var url, response, arrayBuffer;
257
214
  return _regenerator.default.wrap(function _callee5$(_context5) {
258
215
  while (1) {
259
216
  switch (_context5.prev = _context5.next) {
260
217
  case 0:
261
- url = this.getLegendGraphicURL(options, extra);
218
+ url = this.getLegendGraphicURL(options, vendorParameters);
262
219
  _context5.next = 3;
263
220
  return this.fetch(url, this.loadOptions);
264
221
  case 3:
265
222
  response = _context5.sent;
266
223
  _context5.next = 6;
267
- return this.checkResponse(response);
268
- case 6:
269
- _context5.next = 8;
270
224
  return response.arrayBuffer();
271
- case 8:
225
+ case 6:
272
226
  arrayBuffer = _context5.sent;
227
+ this._checkResponse(response, arrayBuffer);
228
+ _context5.prev = 8;
273
229
  _context5.next = 11;
274
230
  return _images.ImageLoader.parse(arrayBuffer, this.loadOptions);
275
231
  case 11:
276
232
  return _context5.abrupt("return", _context5.sent);
277
- case 12:
233
+ case 14:
234
+ _context5.prev = 14;
235
+ _context5.t0 = _context5["catch"](8);
236
+ throw this._parseError(arrayBuffer);
237
+ case 17:
278
238
  case "end":
279
239
  return _context5.stop();
280
240
  }
281
241
  }
282
- }, _callee5, this);
242
+ }, _callee5, this, [[8, 14]]);
283
243
  }));
284
244
  function getLegendGraphic(_x9, _x10) {
285
245
  return _getLegendGraphic.apply(this, arguments);
@@ -287,54 +247,113 @@ var WMSService = function () {
287
247
  return getLegendGraphic;
288
248
  }()
289
249
  }, {
290
- key: "getWMSUrl",
250
+ key: "getCapabilitiesURL",
291
251
  value:
292
252
 
293
- function getWMSUrl(options, extra) {
294
- var _options$layers;
295
- var url = "".concat(this.url, "?REQUEST=").concat(options.request);
296
- if ((_options$layers = options.layers) !== null && _options$layers !== void 0 && _options$layers.length) {
297
- url += "&LAYERS=[".concat(options.layers.join(','), "]");
253
+ function getCapabilitiesURL(wmsParameters, vendorParameters) {
254
+ var options = _objectSpread(_objectSpread({
255
+ service: 'WMS',
256
+ version: '1.1.1',
257
+ request: 'GetCapabilities'
258
+ }, wmsParameters), vendorParameters);
259
+ return this._getWMSUrl(options, vendorParameters);
260
+ }
261
+
262
+ }, {
263
+ key: "getMapURL",
264
+ value:
265
+ function getMapURL(wmsParameters, vendorParameters) {
266
+ var options = _objectSpread(_objectSpread({
267
+ service: 'WMS',
268
+ version: '1.1.1',
269
+ request: 'GetMap',
270
+ styles: undefined,
271
+ srs: 'EPSG:4326',
272
+ format: 'image/png'
273
+ }, wmsParameters), vendorParameters);
274
+ return this._getWMSUrl(options, vendorParameters);
275
+ }
276
+
277
+ }, {
278
+ key: "getFeatureInfoURL",
279
+ value:
280
+ function getFeatureInfoURL(wmsParameters, vendorParameters) {
281
+ var options = _objectSpread(_objectSpread({
282
+ service: 'WMS',
283
+ version: '1.1.1',
284
+ request: 'GetFeatureInfo',
285
+ srs: 'EPSG:4326',
286
+ format: 'image/png',
287
+ info_format: 'text/plain',
288
+ styles: undefined
289
+ }, wmsParameters), vendorParameters);
290
+ return this._getWMSUrl(options, vendorParameters);
291
+ }
292
+
293
+ }, {
294
+ key: "describeLayerURL",
295
+ value:
296
+ function describeLayerURL(wmsParameters, vendorParameters) {
297
+ var options = _objectSpread(_objectSpread({
298
+ service: 'WMS',
299
+ version: '1.1.1',
300
+ request: 'DescribeLayer'
301
+ }, wmsParameters), vendorParameters);
302
+ return this._getWMSUrl(options, vendorParameters);
303
+ }
304
+ }, {
305
+ key: "getLegendGraphicURL",
306
+ value: function getLegendGraphicURL(wmsParameters, vendorParameters) {
307
+ var options = _objectSpread(_objectSpread({
308
+ service: 'WMS',
309
+ version: '1.1.1',
310
+ request: 'GetLegendGraphic'
311
+ }, wmsParameters), vendorParameters);
312
+ return this._getWMSUrl(options, vendorParameters);
313
+ }
314
+
315
+ }, {
316
+ key: "_getWMSUrl",
317
+ value:
318
+
319
+ function _getWMSUrl(options, vendorParameters) {
320
+ var url = "".concat(this.serviceUrl);
321
+ var first = true;
322
+ for (var _i = 0, _Object$entries = Object.entries(options); _i < _Object$entries.length; _i++) {
323
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
324
+ key = _Object$entries$_i[0],
325
+ value = _Object$entries$_i[1];
326
+ url += first ? '?' : '&';
327
+ first = false;
328
+ if (Array.isArray(value)) {
329
+ url += "".concat(key.toUpperCase(), "=").concat(value.join(','));
330
+ } else {
331
+ url += "".concat(key.toUpperCase(), "=").concat(value ? String(value) : '');
332
+ }
298
333
  }
299
- return url;
334
+ return encodeURI(url);
300
335
  }
301
336
 
302
337
  }, {
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);
338
+ key: "_checkResponse",
339
+ value:
340
+ function _checkResponse(response, arrayBuffer) {
341
+ var contentType = response.headers['content-type'];
342
+ if (!response.ok || _wmsErrorLoader.WMSErrorLoader.mimeTypes.includes(contentType)) {
343
+ var error = _wmsErrorLoader.WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);
344
+ throw new Error(error);
333
345
  }
334
- return checkResponse;
335
- }()
346
+ }
347
+
348
+ }, {
349
+ key: "_parseError",
350
+ value:
351
+ function _parseError(arrayBuffer) {
352
+ var error = _wmsErrorLoader.WMSErrorLoader.parseSync(arrayBuffer, this.loadOptions);
353
+ return new Error(error);
354
+ }
336
355
  }]);
337
356
  return WMSService;
338
- }();
357
+ }(_imageSource.ImageSource);
339
358
  exports.WMSService = WMSService;
340
359
  //# sourceMappingURL=wms-service.js.map
@@ -1 +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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"}
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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"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.deepStrictEqual = deepStrictEqual;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+
10
+ function deepStrictEqual(actual, expected, strict) {
11
+ if (actual === expected) {
12
+ return true;
13
+
14
+ } else if (actual instanceof Date && expected instanceof Date) {
15
+ return actual.getTime() === expected.getTime();
16
+
17
+ } else if (actual instanceof RegExp && expected instanceof RegExp) {
18
+ return actual.source === expected.source && actual.global === expected.global && actual.multiline === expected.multiline && actual.lastIndex === expected.lastIndex && actual.ignoreCase === expected.ignoreCase;
19
+
20
+ } else if ((actual === null || (0, _typeof2.default)(actual) !== 'object') && (expected === null || (0, _typeof2.default)(expected) !== 'object')) {
21
+ return strict ? actual === expected : actual == expected;
22
+
23
+ }
24
+
25
+ return objEquiv(actual, expected, strict);
26
+ }
27
+
28
+ var pSlice = Array.prototype.slice;
29
+ function isPrimitive(arg) {
30
+ return arg === null || (0, _typeof2.default)(arg) !== 'object' && typeof arg !== 'function';
31
+ }
32
+ function isArguments(object) {
33
+ return Object.prototype.toString.call(object) == '[object Arguments]';
34
+ }
35
+
36
+ function objEquiv(a, b, strict) {
37
+ if (a === null || a === undefined || b === null || b === undefined) return false;
38
+ if (isPrimitive(a) || isPrimitive(b)) return a === b;
39
+ if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false;
40
+ var aIsArgs = isArguments(a);
41
+ var bIsArgs = isArguments(b);
42
+ if (aIsArgs && !bIsArgs || !aIsArgs && bIsArgs) return false;
43
+ if (aIsArgs) {
44
+ a = pSlice.call(a);
45
+ b = pSlice.call(b);
46
+ return deepStrictEqual(a, b, strict);
47
+ }
48
+ var ka = Object.keys(a);
49
+ var kb = Object.keys(b);
50
+ var key;
51
+ var i;
52
+ if (ka.length !== kb.length) return false;
53
+ ka.sort();
54
+ kb.sort();
55
+ for (i = ka.length - 1; i >= 0; i--) {
56
+ if (ka[i] !== kb[i]) return false;
57
+ }
58
+ for (i = ka.length - 1; i >= 0; i--) {
59
+ key = ka[i];
60
+ if (!deepStrictEqual(a[key], b[key], strict)) return false;
61
+ }
62
+ return true;
63
+ }
64
+ //# sourceMappingURL=deep-strict-equal.js.map