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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/dist.min.js +182 -1046
  2. package/dist/es5/index.js +20 -13
  3. package/dist/es5/index.js.map +1 -1
  4. package/dist/es5/lerc-loader.js +1 -1
  5. package/dist/es5/lib/data-sources/adhoc-image-service.js +4 -0
  6. package/dist/es5/lib/data-sources/adhoc-image-service.js.map +1 -1
  7. package/dist/es5/lib/data-sources/arcgis-image-service.js +180 -0
  8. package/dist/es5/lib/data-sources/arcgis-image-service.js.map +1 -0
  9. package/dist/es5/lib/data-sources/create-image-source.js +45 -0
  10. package/dist/es5/lib/data-sources/create-image-source.js.map +1 -0
  11. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js +179 -0
  12. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
  13. package/dist/es5/lib/data-sources/image-services/image-service.js +163 -0
  14. package/dist/es5/lib/data-sources/image-services/image-service.js.map +1 -0
  15. package/dist/es5/lib/data-sources/{wms-service.js → image-services/wms-service.js} +116 -75
  16. package/dist/es5/lib/data-sources/image-services/wms-service.js.map +1 -0
  17. package/dist/es5/wip/arcgis-feature-service.js +45 -0
  18. package/dist/es5/wip/arcgis-feature-service.js.map +1 -0
  19. package/dist/es5/wip/data-source.js.map +1 -1
  20. package/dist/es5/wip/gml-loader.js +1 -1
  21. package/dist/es5/wip/wcs-capabilities-loader.js +1 -1
  22. package/dist/es5/wip/wfs-capabilities-loader.js +1 -1
  23. package/dist/es5/wip/wmts-capabilities-loader.js +1 -1
  24. package/dist/es5/wms-capabilities-loader.js +1 -1
  25. package/dist/es5/wms-error-loader.js +1 -1
  26. package/dist/esm/index.js +5 -5
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/lerc-loader.js +1 -1
  29. package/dist/esm/lib/data-sources/adhoc-image-service.js +2 -0
  30. package/dist/esm/lib/data-sources/adhoc-image-service.js.map +1 -1
  31. package/dist/esm/lib/data-sources/arcgis-image-service.js +62 -0
  32. package/dist/esm/lib/data-sources/arcgis-image-service.js.map +1 -0
  33. package/dist/esm/lib/data-sources/create-image-source.js +30 -0
  34. package/dist/esm/lib/data-sources/create-image-source.js.map +1 -0
  35. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +61 -0
  36. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
  37. package/dist/esm/lib/data-sources/image-services/image-service.js +72 -0
  38. package/dist/esm/lib/data-sources/image-services/image-service.js.map +1 -0
  39. package/dist/esm/lib/data-sources/{wms-service.js → image-services/wms-service.js} +46 -32
  40. package/dist/esm/lib/data-sources/image-services/wms-service.js.map +1 -0
  41. package/dist/esm/wip/arcgis-feature-service.js +28 -0
  42. package/dist/esm/wip/arcgis-feature-service.js.map +1 -0
  43. package/dist/esm/wip/data-source.js.map +1 -1
  44. package/dist/esm/wip/gml-loader.js +1 -1
  45. package/dist/esm/wip/wcs-capabilities-loader.js +1 -1
  46. package/dist/esm/wip/wfs-capabilities-loader.js +1 -1
  47. package/dist/esm/wip/wmts-capabilities-loader.js +1 -1
  48. package/dist/esm/wms-capabilities-loader.js +1 -1
  49. package/dist/esm/wms-error-loader.js +1 -1
  50. package/dist/index.d.ts +9 -7
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +14 -8
  53. package/dist/lib/data-sources/adhoc-image-service.d.ts +2 -0
  54. package/dist/lib/data-sources/adhoc-image-service.d.ts.map +1 -1
  55. package/dist/lib/data-sources/adhoc-image-service.js +2 -0
  56. package/dist/lib/data-sources/arcgis-image-service.d.ts +79 -0
  57. package/dist/lib/data-sources/arcgis-image-service.d.ts.map +1 -0
  58. package/dist/lib/data-sources/arcgis-image-service.js +85 -0
  59. package/dist/lib/data-sources/create-image-source.d.ts +16 -0
  60. package/dist/lib/data-sources/create-image-source.d.ts.map +1 -0
  61. package/dist/lib/data-sources/create-image-source.js +39 -0
  62. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts +71 -0
  63. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +1 -0
  64. package/dist/lib/data-sources/image-services/arcgis-image-service.js +85 -0
  65. package/dist/lib/data-sources/image-services/image-service.d.ts +39 -0
  66. package/dist/lib/data-sources/image-services/image-service.d.ts.map +1 -0
  67. package/dist/lib/data-sources/image-services/image-service.js +82 -0
  68. package/dist/lib/data-sources/{wms-service.d.ts → image-services/wms-service.d.ts} +33 -38
  69. package/dist/lib/data-sources/image-services/wms-service.d.ts.map +1 -0
  70. package/dist/lib/data-sources/{wms-service.js → image-services/wms-service.js} +40 -28
  71. package/dist/wip/arcgis-feature-service.d.ts +56 -0
  72. package/dist/wip/arcgis-feature-service.d.ts.map +1 -0
  73. package/dist/wip/arcgis-feature-service.js +28 -0
  74. package/dist/wip/data-source.d.ts +14 -13
  75. package/dist/wip/data-source.d.ts.map +1 -1
  76. package/dist/wip/data-source.js +15 -13
  77. package/package.json +6 -6
  78. package/src/index.ts +13 -8
  79. package/src/lib/data-sources/adhoc-image-service.ts +3 -0
  80. package/src/lib/data-sources/arcgis-image-service.ts +146 -0
  81. package/src/lib/data-sources/create-image-source.ts +46 -0
  82. package/src/lib/data-sources/image-services/arcgis-image-service.ts +136 -0
  83. package/src/lib/data-sources/image-services/image-service.ts +105 -0
  84. package/src/lib/data-sources/{wms-service.ts → image-services/wms-service.ts} +51 -47
  85. package/src/wip/arcgis-feature-service.ts +89 -0
  86. package/src/wip/data-source.ts +15 -13
  87. package/dist/es5/lib/data-sources/wms-service.js.map +0 -1
  88. package/dist/esm/lib/data-sources/wms-service.js.map +0 -1
  89. package/dist/lib/data-sources/wms-service.d.ts.map +0 -1
package/dist/es5/index.js CHANGED
@@ -3,10 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "LERCLoader", {
6
+ Object.defineProperty(exports, "ImageService", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _lercLoader.LERCLoader;
9
+ return _imageService.ImageService;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ImageSource", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _imageSource.ImageSource;
10
16
  }
11
17
  });
12
18
  Object.defineProperty(exports, "WMSCapabilitiesLoader", {
@@ -27,10 +33,10 @@ Object.defineProperty(exports, "WMSService", {
27
33
  return _wmsService.WMSService;
28
34
  }
29
35
  });
30
- Object.defineProperty(exports, "_AdHocImageService", {
36
+ Object.defineProperty(exports, "_ArcGISImageService", {
31
37
  enumerable: true,
32
38
  get: function get() {
33
- return _adhocImageService.AdHocImageService;
39
+ return _arcgisImageService.ArcGISImageService;
34
40
  }
35
41
  });
36
42
  Object.defineProperty(exports, "_GMLLoader", {
@@ -39,12 +45,6 @@ Object.defineProperty(exports, "_GMLLoader", {
39
45
  return _gmlLoader.GMLLoader;
40
46
  }
41
47
  });
42
- Object.defineProperty(exports, "_ImageSource", {
43
- enumerable: true,
44
- get: function get() {
45
- return _imageSource.ImageSource;
46
- }
47
- });
48
48
  Object.defineProperty(exports, "_WFSCapabilitiesLoader", {
49
49
  enumerable: true,
50
50
  get: function get() {
@@ -69,15 +69,22 @@ Object.defineProperty(exports, "_WMTSCapabilitiesLoader", {
69
69
  return _wmtsCapabilitiesLoader.WMTSCapabilitiesLoader;
70
70
  }
71
71
  });
72
+ Object.defineProperty(exports, "createImageSource", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _createImageSource.createImageSource;
76
+ }
77
+ });
72
78
  var _wmsErrorLoader = require("./wms-error-loader");
73
79
  var _wmsCapabilitiesLoader = require("./wms-capabilities-loader");
74
- var _wmsService = require("./lib/data-sources/wms-service");
75
80
  var _imageSource = require("./lib/data-sources/image-source");
76
- var _adhocImageService = require("./lib/data-sources/adhoc-image-service");
81
+ var _createImageSource = require("./lib/data-sources/create-image-source");
82
+ var _imageService = require("./lib/data-sources/image-services/image-service");
83
+ var _wmsService = require("./lib/data-sources/image-services/wms-service");
84
+ var _arcgisImageService = require("./lib/data-sources/image-services/arcgis-image-service");
77
85
  var _wmsFeatureInfoLoader = require("./wip/wms-feature-info-loader");
78
86
  var _wmsLayerDescriptionLoader = require("./wip/wms-layer-description-loader");
79
87
  var _wmtsCapabilitiesLoader = require("./wip/wmts-capabilities-loader");
80
88
  var _wfsCapabilitiesLoader = require("./wip/wfs-capabilities-loader");
81
89
  var _gmlLoader = require("./wip/gml-loader");
82
- var _lercLoader = require("./lerc-loader");
83
90
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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 {WMSLoaderOptions} from './wms-capabilities-loader';\n\nexport type {WMSCapabilities} from './lib/wms/wms-types';\nexport {WMSCapabilitiesLoader} from './wms-capabilities-loader';\n\nexport type {WMSServiceProps} from './lib/data-sources/wms-service';\nexport {WMSService} from './lib/data-sources/wms-service';\n\n// NOTE: Will likely move to tiles module\nexport type {ImageSourceMetadata as _ImageSourceMetadata} from './lib/data-sources/image-source';\nexport {ImageSource as _ImageSource} from './lib/data-sources/image-source';\n\nexport {AdHocImageService as _AdHocImageService} from './lib/data-sources/adhoc-image-service';\n\n// WIP /////////////////////////////////////////////////////////////////\n// Plumbing set up but details of parsing and typing not yet completed\n\n// WMS\n\nexport type {WMSFeatureInfo as _WMSFeatureInfo} from './lib/wms/wms-types';\nexport {WMSFeatureInfoLoader as _WMSFeatureInfoLoader} from './wip/wms-feature-info-loader';\n\nexport type {WMSLayerDescription as _WMSLayerDescription} from './lib/wms/wms-types';\nexport {WMSLayerDescriptionLoader as _WMSLayerDescriptionLoader} from './wip/wms-layer-description-loader';\n\n// WMTS\n\nexport type {WMTSCapabilities as _WMTSCapabilities} from './lib/wmts/wmts-types';\nexport type {WMTSLoaderOptions as _WMTSLoaderOptions} from './wip/wmts-capabilities-loader';\nexport {WMTSCapabilitiesLoader as _WMTSCapabilitiesLoader} from './wip/wmts-capabilities-loader';\n\n// WFS\n\nexport type {WFSCapabilities as _WFSCapabilities} from './lib/wfs/wfs-types';\nexport type {WFSLoaderOptions as _WFSLoaderOptions} from './wip/wfs-capabilities-loader';\nexport {WFSCapabilitiesLoader as _WFSCapabilitiesLoader} from './wip/wfs-capabilities-loader';\n\n// GML\n\nexport type {GeoJSON as _GeoJSON} from '@loaders.gl/schema';\nexport type {GMLLoaderOptions as _GMLLoaderOptions} from './wip/gml-loader';\nexport {GMLLoader as _GMLLoader} from './wip/gml-loader';\n\n// LERC\n\nexport type {LERCData} from './lib/lerc/lerc-types';\nexport {LERCLoader} from './lerc-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AAKA;AAGA;AAIA;AAEA;AAQA;AAGA;AAMA;AAMA;AAMA;AAKA"}
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 {WMSLoaderOptions} from './wms-capabilities-loader';\n\nexport type {WMSCapabilities} from './lib/wms/wms-types';\nexport {WMSCapabilitiesLoader} from './wms-capabilities-loader';\n\n// NOTE: Will likely move to tiles module\nexport type {ImageSourceMetadata} from './lib/data-sources/image-source';\nexport type {ImageType} from '@loaders.gl/images';\nexport {ImageSource} from './lib/data-sources/image-source';\n\nexport type {ImageServiceType} from './lib/data-sources/create-image-source';\nexport {createImageSource} from './lib/data-sources/create-image-source';\n\nexport type {ImageServiceProps} from './lib/data-sources/image-services/image-service';\nexport {ImageService} from './lib/data-sources/image-services/image-service';\nexport {WMSService} from './lib/data-sources/image-services/wms-service';\nexport {ArcGISImageService as _ArcGISImageService} from './lib/data-sources/image-services/arcgis-image-service';\n\n// WIP /////////////////////////////////////////////////////////////////\n// Plumbing set up but details of parsing and typing not yet completed\n\n// WMS\n\nexport type {WMSFeatureInfo as _WMSFeatureInfo} from './lib/wms/wms-types';\nexport {WMSFeatureInfoLoader as _WMSFeatureInfoLoader} from './wip/wms-feature-info-loader';\n\nexport type {WMSLayerDescription as _WMSLayerDescription} from './lib/wms/wms-types';\nexport {WMSLayerDescriptionLoader as _WMSLayerDescriptionLoader} from './wip/wms-layer-description-loader';\n\n// WMTS\n\nexport type {WMTSCapabilities as _WMTSCapabilities} from './lib/wmts/wmts-types';\nexport type {WMTSLoaderOptions as _WMTSLoaderOptions} from './wip/wmts-capabilities-loader';\nexport {WMTSCapabilitiesLoader as _WMTSCapabilitiesLoader} from './wip/wmts-capabilities-loader';\n\n// WFS\n\nexport type {WFSCapabilities as _WFSCapabilities} from './lib/wfs/wfs-types';\nexport type {WFSLoaderOptions as _WFSLoaderOptions} from './wip/wfs-capabilities-loader';\nexport {WFSCapabilitiesLoader as _WFSCapabilitiesLoader} from './wip/wfs-capabilities-loader';\n\n// GML\n\nexport type {GeoJSON as _GeoJSON} from '@loaders.gl/schema';\nexport type {GMLLoaderOptions as _GMLLoaderOptions} from './wip/gml-loader';\nexport {GMLLoader as _GMLLoader} from './wip/gml-loader';\n\n// LERC\n\n// TODO - restore once esbuild bundling issues have been resolved\n// export type {LERCData} from './lib/lerc/lerc-types';\n// export {LERCLoader} from './lerc-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AAKA;AAKA;AAGA;AAGA;AACA;AACA;AAQA;AAGA;AAMA;AAMA;AAMA"}
@@ -12,7 +12,7 @@ var Lerc = _interopRequireWildcard(require("lerc"));
12
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
14
 
15
- var VERSION = typeof "3.3.0-alpha.13" !== 'undefined' ? "3.3.0-alpha.13" : 'latest';
15
+ var VERSION = typeof "3.3.0-alpha.14" !== 'undefined' ? "3.3.0-alpha.14" : 'latest';
16
16
  var LERCLoader = {
17
17
  id: 'lerc',
18
18
  name: 'LERC',
@@ -122,4 +122,8 @@ var AdHocImageService = function (_ImageSource) {
122
122
  return AdHocImageService;
123
123
  }(_imageSource.ImageSource);
124
124
  exports.AdHocImageService = AdHocImageService;
125
+ (0, _defineProperty2.default)(AdHocImageService, "type", 'template');
126
+ (0, _defineProperty2.default)(AdHocImageService, "testURL", function (url) {
127
+ return url.toLowerCase().includes('{');
128
+ });
125
129
  //# sourceMappingURL=adhoc-image-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adhoc-image-service.js","names":["AdHocImageService","props","templateUrl","Error","parameters","granularParameters","getGranularParameters","url","getURLFromTemplate","fetch","response","arrayBuffer","ImageLoader","parse","bbox","east","north","west","south","Object","entries","key","value","replace","String","ImageSource"],"sources":["../../../../src/lib/data-sources/adhoc-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\n\nimport type {ImageSourceMetadata, GetImageParameters} from './image-source';\nimport {ImageSource} from './image-source';\n\nexport type AdHocImageServiceProps = {\n /** Template URL string should contain `${width}` etc which will be substituted. */\n templateUrl: string;\n};\n\n/**\n * Quickly connect to \"ad hoc\" image sources without subclassing ImageSource.\n * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources\n * Accepts a template url string and builds requests URLs\n */\nexport class AdHocImageService extends ImageSource {\n templateUrl: string;\n\n constructor(props: AdHocImageServiceProps) {\n super();\n this.templateUrl = props.templateUrl;\n }\n\n // IMAGE SOURCE API\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n throw new Error('ImageSource.getMetadata not implemented');\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n const granularParameters = this.getGranularParameters(parameters);\n const url = this.getURLFromTemplate(granularParameters);\n const response = await fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer);\n }\n\n // HELPERS\n\n /** Break up bounding box in east, north, south, west */\n protected getGranularParameters(parameters: GetImageParameters): Record<string, unknown> {\n const [east, north, west, south] = parameters.bbox;\n return {...parameters, east, north, south, west};\n }\n\n protected getURLFromTemplate(parameters: Record<string, unknown>): string {\n let url = this.templateUrl;\n for (const [key, value] of Object.entries(parameters)) {\n // TODO - parameter could be repeated\n // const regex = new RegExp(`\\${${key}}`, 'g');\n url = url.replace(`\\${${key}}`, String(value));\n }\n return url;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAGA;AAGA;AAA2C;AAAA;AAAA;AAAA;AAAA,IAY9BA,iBAAiB;EAAA;EAAA;EAG5B,2BAAYC,KAA6B,EAAE;IAAA;IAAA;IACzC;IAAQ;IACR,MAAKC,WAAW,GAAGD,KAAK,CAACC,WAAW;IAAC;EACvC;;EAAC;IAAA;IAAA;MAAA,6EAID;QAAA;UAAA;YAAA;cAAA;gBAAA,MACQ,IAAIC,KAAK,CAAC,yCAAyC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0EAED,kBAAeC,UAA8B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACrCC,kBAAkB,GAAG,IAAI,CAACC,qBAAqB,CAACF,UAAU,CAAC;gBAC3DG,GAAG,GAAG,IAAI,CAACC,kBAAkB,CAACH,kBAAkB,CAAC;gBAAA;gBAAA,OAChCI,KAAK,CAACF,GAAG,CAAC;cAAA;gBAA3BG,QAAQ;gBAAA;gBAAA,OACYA,QAAQ,CAACC,WAAW,EAAE;cAAA;gBAA1CA,WAAW;gBAAA;gBAAA,OACJC,mBAAW,CAACC,KAAK,CAACF,WAAW,CAAC;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC5C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;;IAKD,+BAAgCP,UAA8B,EAA2B;MACvF,oDAAmCA,UAAU,CAACU,IAAI;QAA3CC,IAAI;QAAEC,KAAK;QAAEC,IAAI;QAAEC,KAAK;MAC/B,uCAAWd,UAAU;QAAEW,IAAI,EAAJA,IAAI;QAAEC,KAAK,EAALA,KAAK;QAAEE,KAAK,EAALA,KAAK;QAAED,IAAI,EAAJA;MAAI;IACjD;EAAC;IAAA;IAAA,OAED,4BAA6Bb,UAAmC,EAAU;MACxE,IAAIG,GAAG,GAAG,IAAI,CAACL,WAAW;MAC1B,mCAA2BiB,MAAM,CAACC,OAAO,CAAChB,UAAU,CAAC,qCAAE;QAAlD;UAAOiB,GAAG;UAAEC,KAAK;QAGpBf,GAAG,GAAGA,GAAG,CAACgB,OAAO,aAAOF,GAAG,QAAKG,MAAM,CAACF,KAAK,CAAC,CAAC;MAChD;MACA,OAAOf,GAAG;IACZ;EAAC;EAAA;AAAA,EAtCoCkB,wBAAW;AAAA"}
1
+ {"version":3,"file":"adhoc-image-service.js","names":["AdHocImageService","props","templateUrl","Error","parameters","granularParameters","getGranularParameters","url","getURLFromTemplate","fetch","response","arrayBuffer","ImageLoader","parse","bbox","east","north","west","south","Object","entries","key","value","replace","String","ImageSource","toLowerCase","includes"],"sources":["../../../../src/lib/data-sources/adhoc-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\n\nimport type {ImageSourceMetadata, GetImageParameters} from './image-source';\nimport {ImageSource} from './image-source';\n\nexport type AdHocImageServiceProps = {\n /** Template URL string should contain `${width}` etc which will be substituted. */\n templateUrl: string;\n};\n\n/**\n * Quickly connect to \"ad hoc\" image sources without subclassing ImageSource.\n * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources\n * Accepts a template url string and builds requests URLs\n */\nexport class AdHocImageService extends ImageSource {\n static type: 'template' = 'template';\n static testURL = (url: string): boolean => url.toLowerCase().includes('{');\n\n templateUrl: string;\n\n constructor(props: AdHocImageServiceProps) {\n super();\n this.templateUrl = props.templateUrl;\n }\n\n // IMAGE SOURCE API\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n throw new Error('ImageSource.getMetadata not implemented');\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n const granularParameters = this.getGranularParameters(parameters);\n const url = this.getURLFromTemplate(granularParameters);\n const response = await fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer);\n }\n\n // HELPERS\n\n /** Break up bounding box in east, north, south, west */\n protected getGranularParameters(parameters: GetImageParameters): Record<string, unknown> {\n const [east, north, west, south] = parameters.bbox;\n return {...parameters, east, north, south, west};\n }\n\n protected getURLFromTemplate(parameters: Record<string, unknown>): string {\n let url = this.templateUrl;\n for (const [key, value] of Object.entries(parameters)) {\n // TODO - parameter could be repeated\n // const regex = new RegExp(`\\${${key}}`, 'g');\n url = url.replace(`\\${${key}}`, String(value));\n }\n return url;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAGA;AAGA;AAA2C;AAAA;AAAA;AAAA;AAAA,IAY9BA,iBAAiB;EAAA;EAAA;EAM5B,2BAAYC,KAA6B,EAAE;IAAA;IAAA;IACzC;IAAQ;IACR,MAAKC,WAAW,GAAGD,KAAK,CAACC,WAAW;IAAC;EACvC;;EAAC;IAAA;IAAA;MAAA,6EAID;QAAA;UAAA;YAAA;cAAA;gBAAA,MACQ,IAAIC,KAAK,CAAC,yCAAyC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0EAED,kBAAeC,UAA8B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACrCC,kBAAkB,GAAG,IAAI,CAACC,qBAAqB,CAACF,UAAU,CAAC;gBAC3DG,GAAG,GAAG,IAAI,CAACC,kBAAkB,CAACH,kBAAkB,CAAC;gBAAA;gBAAA,OAChCI,KAAK,CAACF,GAAG,CAAC;cAAA;gBAA3BG,QAAQ;gBAAA;gBAAA,OACYA,QAAQ,CAACC,WAAW,EAAE;cAAA;gBAA1CA,WAAW;gBAAA;gBAAA,OACJC,mBAAW,CAACC,KAAK,CAACF,WAAW,CAAC;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC5C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;;IAKD,+BAAgCP,UAA8B,EAA2B;MACvF,oDAAmCA,UAAU,CAACU,IAAI;QAA3CC,IAAI;QAAEC,KAAK;QAAEC,IAAI;QAAEC,KAAK;MAC/B,uCAAWd,UAAU;QAAEW,IAAI,EAAJA,IAAI;QAAEC,KAAK,EAALA,KAAK;QAAEE,KAAK,EAALA,KAAK;QAAED,IAAI,EAAJA;MAAI;IACjD;EAAC;IAAA;IAAA,OAED,4BAA6Bb,UAAmC,EAAU;MACxE,IAAIG,GAAG,GAAG,IAAI,CAACL,WAAW;MAC1B,mCAA2BiB,MAAM,CAACC,OAAO,CAAChB,UAAU,CAAC,qCAAE;QAAlD;UAAOiB,GAAG;UAAEC,KAAK;QAGpBf,GAAG,GAAGA,GAAG,CAACgB,OAAO,aAAOF,GAAG,QAAKG,MAAM,CAACF,KAAK,CAAC,CAAC;MAChD;MACA,OAAOf,GAAG;IACZ;EAAC;EAAA;AAAA,EAzCoCkB,wBAAW;AAAA;AAAA,8BAArCzB,iBAAiB,UACF,UAAU;AAAA,8BADzBA,iBAAiB,aAEX,UAACO,GAAW;EAAA,OAAcA,GAAG,CAACmB,WAAW,EAAE,CAACC,QAAQ,CAAC,GAAG,CAAC;AAAA"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ArcGISImageService = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
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"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _imageSource = require("./image-source");
19
+ 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); }; }
20
+ 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; } }
21
+ var ArcGISImageService = function (_ImageSource) {
22
+ (0, _inherits2.default)(ArcGISImageService, _ImageSource);
23
+ var _super = _createSuper(ArcGISImageService);
24
+ function ArcGISImageService(props) {
25
+ var _this;
26
+ (0, _classCallCheck2.default)(this, ArcGISImageService);
27
+ _this = _super.call(this);
28
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "url", void 0);
29
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loadOptions", void 0);
30
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fetch", void 0);
31
+ _this.url = props.url;
32
+ _this.loadOptions = props.loadOptions || {};
33
+ _this.fetch = props.fetch || fetch;
34
+ return _this;
35
+ }
36
+
37
+ (0, _createClass2.default)(ArcGISImageService, [{
38
+ key: "getMetadata",
39
+ value: function () {
40
+ var _getMetadata = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
41
+ return _regenerator.default.wrap(function _callee$(_context) {
42
+ while (1) {
43
+ switch (_context.prev = _context.next) {
44
+ case 0:
45
+ _context.next = 2;
46
+ return this.info();
47
+ case 2:
48
+ return _context.abrupt("return", _context.sent);
49
+ case 3:
50
+ case "end":
51
+ return _context.stop();
52
+ }
53
+ }
54
+ }, _callee, this);
55
+ }));
56
+ function getMetadata() {
57
+ return _getMetadata.apply(this, arguments);
58
+ }
59
+ return getMetadata;
60
+ }()
61
+ }, {
62
+ key: "getImage",
63
+ value: function () {
64
+ var _getImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parameters) {
65
+ return _regenerator.default.wrap(function _callee2$(_context2) {
66
+ while (1) {
67
+ switch (_context2.prev = _context2.next) {
68
+ case 0:
69
+ throw new Error('not implemented');
70
+ case 1:
71
+ case "end":
72
+ return _context2.stop();
73
+ }
74
+ }
75
+ }, _callee2);
76
+ }));
77
+ function getImage(_x) {
78
+ return _getImage.apply(this, arguments);
79
+ }
80
+ return getImage;
81
+ }()
82
+ }, {
83
+ key: "info",
84
+ value: function () {
85
+ var _info = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
86
+ return _regenerator.default.wrap(function _callee3$(_context3) {
87
+ while (1) {
88
+ switch (_context3.prev = _context3.next) {
89
+ case 0:
90
+ throw new Error('not implemented');
91
+ case 1:
92
+ case "end":
93
+ return _context3.stop();
94
+ }
95
+ }
96
+ }, _callee3);
97
+ }));
98
+ function info() {
99
+ return _info.apply(this, arguments);
100
+ }
101
+ return info;
102
+ }()
103
+ }, {
104
+ key: "exportImage",
105
+ value:
106
+ function exportImage(options) {
107
+ throw new Error('not implemented');
108
+ }
109
+
110
+ }, {
111
+ key: "infoURL",
112
+ value:
113
+
114
+ function infoURL(options) {
115
+ return this.url;
116
+ }
117
+
118
+ }, {
119
+ key: "exportImageURL",
120
+ value:
121
+ function exportImageURL(options) {
122
+ return this.url;
123
+ }
124
+
125
+ }, {
126
+ key: "getUrl",
127
+ value:
128
+
129
+ function getUrl(options, extra) {
130
+ var url = "".concat(this.url);
131
+ var first = true;
132
+ for (var _i = 0, _Object$entries = Object.entries(options); _i < _Object$entries.length; _i++) {
133
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
134
+ key = _Object$entries$_i[0],
135
+ value = _Object$entries$_i[1];
136
+ url += first ? '?' : '&';
137
+ first = false;
138
+ if (Array.isArray(value)) {
139
+ url += "".concat(key.toUpperCase(), "=").concat(value.join(','));
140
+ } else {
141
+ url += "".concat(key.toUpperCase(), "=").concat(value ? String(value) : '');
142
+ }
143
+ }
144
+ return url;
145
+ }
146
+
147
+ }, {
148
+ key: "checkResponse",
149
+ value: function () {
150
+ var _checkResponse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(response) {
151
+ return _regenerator.default.wrap(function _callee4$(_context4) {
152
+ while (1) {
153
+ switch (_context4.prev = _context4.next) {
154
+ case 0:
155
+ if (response.ok) {
156
+ _context4.next = 2;
157
+ break;
158
+ }
159
+ throw new Error('error');
160
+ case 2:
161
+ case "end":
162
+ return _context4.stop();
163
+ }
164
+ }
165
+ }, _callee4);
166
+ }));
167
+ function checkResponse(_x2) {
168
+ return _checkResponse.apply(this, arguments);
169
+ }
170
+ return checkResponse;
171
+ }()
172
+ }]);
173
+ return ArcGISImageService;
174
+ }(_imageSource.ImageSource);
175
+ exports.ArcGISImageService = ArcGISImageService;
176
+ (0, _defineProperty2.default)(ArcGISImageService, "type", 'arcgis-image-server');
177
+ (0, _defineProperty2.default)(ArcGISImageService, "testURL", function (url) {
178
+ return url.toLowerCase().includes('ImageServer');
179
+ });
180
+ //# sourceMappingURL=arcgis-image-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arcgis-image-service.js","names":["ArcGISImageService","props","url","loadOptions","fetch","info","parameters","Error","options","extra","first","Object","entries","key","value","Array","isArray","toUpperCase","join","String","response","ok","ImageSource","toLowerCase","includes"],"sources":["../../../../src/lib/data-sources/arcgis-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {/* ImageLoader, */ ImageType} from '@loaders.gl/images';\nimport type {ImageSourceMetadata, GetImageParameters} from './image-source';\nimport {ImageSource} from './image-source';\n\ntype FetchLike = (url: string, options?: RequestInit) => Promise<Response>;\n\nexport type ArcGISImageServiceProps = {\n url: string;\n loadOptions?: LoaderOptions;\n fetch?: typeof fetch | FetchLike;\n};\n\nexport class ArcGISImageService extends ImageSource {\n static type: 'arcgis-image-server' = 'arcgis-image-server';\n static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');\n\n url: string;\n loadOptions: LoaderOptions;\n fetch: typeof fetch | FetchLike;\n\n constructor(props: ArcGISImageServiceProps) {\n super();\n this.url = props.url;\n this.loadOptions = props.loadOptions || {};\n this.fetch = props.fetch || fetch;\n }\n\n // ImageSource (normalized endpoints)\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n return (await this.info()) as ImageSourceMetadata;\n // TODO - normalize metadata\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n throw new Error('not implemented');\n // TODO - Map generic parameters to ArcGIS specific parameters\n // return await this.exportImage(parameters);\n }\n\n // ImageServer endpoints\n\n async info(): Promise<unknown> {\n // We just need a JSON parsing...\n // return this.getUrl({path: '', ...options});\n throw new Error('not implemented');\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,\n */\n exportImage(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): Promise<ImageType> {\n // See WMSService.getMap()\n throw new Error('not implemented');\n }\n\n // URL creators\n\n infoURL(options: {parameters?: Record<string, unknown>}): string {\n return this.url;\n // return this.getUrl({path: '', ...options});\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,\n */\n exportImageURL(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): string {\n // const {boundingBox} = options;\n // const bbox = `bbox=${boundingBox[0]},${boundingBox[1]},${boundingBox[2]},${boundingBox[3]}`;\n // const size = `size=${width},${height}`;\n // return this.getUrl({path: 'exportImage'});\n return this.url;\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 getUrl(options: Record<string, unknown>, extra?: Record<string, unknown>): string {\n let url = `${this.url}`;\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 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) {\n // } || 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":";;;;;;;;;;;;;;;;;AAKA;AAA2C;AAAA;AAAA,IAU9BA,kBAAkB;EAAA;EAAA;EAQ7B,4BAAYC,KAA8B,EAAE;IAAA;IAAA;IAC1C;IAAQ;IAAA;IAAA;IACR,MAAKC,GAAG,GAAGD,KAAK,CAACC,GAAG;IACpB,MAAKC,WAAW,GAAGF,KAAK,CAACE,WAAW,IAAI,CAAC,CAAC;IAC1C,MAAKC,KAAK,GAAGH,KAAK,CAACG,KAAK,IAAIA,KAAK;IAAC;EACpC;;EAAC;IAAA;IAAA;MAAA,6EAID;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACgB,IAAI,CAACC,IAAI,EAAE;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE1B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0EAED,kBAAeC,UAA8B;QAAA;UAAA;YAAA;cAAA;gBAAA,MACrC,IAAIC,KAAK,CAAC,iBAAiB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAGnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sEAID;QAAA;UAAA;YAAA;cAAA;gBAAA,MAGQ,IAAIA,KAAK,CAAC,iBAAiB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;IAMD,qBAAYC,OAkBX,EAAsB;MAErB,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;IACpC;;EAAC;IAAA;IAAA;;IAID,iBAAQC,OAA+C,EAAU;MAC/D,OAAO,IAAI,CAACN,GAAG;IAEjB;;EAAC;IAAA;IAAA;IAMD,wBAAeM,OAkBd,EAAU;MAKT,OAAO,IAAI,CAACN,GAAG;IACjB;;EAAC;IAAA;IAAA;;IAQD,gBAAiBM,OAAgC,EAAEC,KAA+B,EAAU;MAC1F,IAAIP,GAAG,aAAM,IAAI,CAACA,GAAG,CAAE;MACvB,IAAIQ,KAAK,GAAG,IAAI;MAChB,mCAA2BC,MAAM,CAACC,OAAO,CAACJ,OAAO,CAAC,qCAAE;QAA/C;UAAOK,GAAG;UAAEC,KAAK;QACpBZ,GAAG,IAAIQ,KAAK,GAAG,GAAG,GAAG,GAAG;QACxBA,KAAK,GAAG,KAAK;QACb,IAAIK,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;UACxBZ,GAAG,cAAOW,GAAG,CAACI,WAAW,EAAE,cAAIH,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC,CAAE;QAClD,CAAC,MAAM;UACLhB,GAAG,cAAOW,GAAG,CAACI,WAAW,EAAE,cAAIH,KAAK,GAAGK,MAAM,CAACL,KAAK,CAAC,GAAG,EAAE,CAAE;QAC7D;MACF;MACA,OAAOZ,GAAG;IACZ;;EAAC;IAAA;IAAA;MAAA,+EAGD,kBAA8BkB,QAAkB;QAAA;UAAA;YAAA;cAAA;gBAAA,IACzCA,QAAQ,CAACC,EAAE;kBAAA;kBAAA;gBAAA;gBAAA,MAIR,IAAId,KAAK,CAAC,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAjIqCe,wBAAW;AAAA;AAAA,8BAAtCtB,kBAAkB,UACQ,qBAAqB;AAAA,8BAD/CA,kBAAkB,aAEZ,UAACE,GAAW;EAAA,OAAcA,GAAG,CAACqB,WAAW,EAAE,CAACC,QAAQ,CAAC,aAAa,CAAC;AAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createImageSource = createImageSource;
7
+ var _imageService = require("./image-services/image-service");
8
+ var _wmsService = require("./image-services/wms-service");
9
+ var _arcgisImageService = require("./image-services/arcgis-image-service");
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
13
+ var SERVICES = [_wmsService.WMSService, _arcgisImageService.ArcGISImageService, _imageService.ImageService];
14
+ function createImageSource(props) {
15
+ var _props$type = props.type,
16
+ type = _props$type === void 0 ? 'auto' : _props$type;
17
+ var serviceType = type === 'auto' ? guessServiceType(props.url) : type;
18
+ switch (serviceType) {
19
+ case 'template':
20
+ return new _imageService.ImageService(props);
21
+ case 'wms':
22
+ return new _wmsService.WMSService(props);
23
+ default:
24
+ throw new Error('Not a valid image source type');
25
+ }
26
+ }
27
+
28
+ function guessServiceType(url) {
29
+ var _iterator = _createForOfIteratorHelper(SERVICES),
30
+ _step;
31
+ try {
32
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
33
+ var Service = _step.value;
34
+ if (Service.testURL && Service.testURL(url)) {
35
+ return Service.type;
36
+ }
37
+ }
38
+ } catch (err) {
39
+ _iterator.e(err);
40
+ } finally {
41
+ _iterator.f();
42
+ }
43
+ return 'wms';
44
+ }
45
+ //# sourceMappingURL=create-image-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-image-source.js","names":["SERVICES","WMSService","ArcGISImageService","ImageService","createImageSource","props","type","serviceType","guessServiceType","url","Error","Service","testURL"],"sources":["../../../../src/lib/data-sources/create-image-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {ImageSource} from './image-source';\nimport {ImageService, ImageServiceProps} from './image-services/image-service';\nimport {WMSService} from './image-services/wms-service';\nimport {ArcGISImageService} from './image-services/arcgis-image-service';\n\nexport type ImageServiceType = 'wms' | 'arcgis-image-server' | 'template';\n\nconst SERVICES = [WMSService, ArcGISImageService, ImageService];\n\ntype Props = ImageServiceProps & {\n type?: ImageServiceType | 'auto';\n};\n\n/**\n * Creates an image source\n * If type is not supplied, will try to automatically detec the the\n * @param url URL to the image source\n * @param type type of source. if not known, set to 'auto'\n * @returns an ImageSource instance\n */\nexport function createImageSource(props: Props): ImageSource {\n const {type = 'auto'} = props;\n const serviceType = type === 'auto' ? guessServiceType(props.url) : type;\n switch (serviceType) {\n case 'template':\n return new ImageService(props);\n case 'wms':\n return new WMSService(props);\n default:\n // currently only wms service supported\n throw new Error('Not a valid image source type');\n }\n}\n\n/** Guess service type from URL */\nfunction guessServiceType(url: string): ImageServiceType {\n for (const Service of SERVICES) {\n if (Service.testURL && Service.testURL(url)) {\n return Service.type;\n }\n }\n // If all else fails, guess that this is MS service\n return 'wms';\n}\n"],"mappings":";;;;;;AAGA;AACA;AACA;AAAyE;AAAA;AAAA;AAIzE,IAAMA,QAAQ,GAAG,CAACC,sBAAU,EAAEC,sCAAkB,EAAEC,0BAAY,CAAC;AAaxD,SAASC,iBAAiB,CAACC,KAAY,EAAe;EAC3D,kBAAwBA,KAAK,CAAtBC,IAAI;IAAJA,IAAI,4BAAG,MAAM;EACpB,IAAMC,WAAW,GAAGD,IAAI,KAAK,MAAM,GAAGE,gBAAgB,CAACH,KAAK,CAACI,GAAG,CAAC,GAAGH,IAAI;EACxE,QAAQC,WAAW;IACjB,KAAK,UAAU;MACb,OAAO,IAAIJ,0BAAY,CAACE,KAAK,CAAC;IAChC,KAAK,KAAK;MACR,OAAO,IAAIJ,sBAAU,CAACI,KAAK,CAAC;IAC9B;MAEE,MAAM,IAAIK,KAAK,CAAC,+BAA+B,CAAC;EAAC;AAEvD;;AAGA,SAASF,gBAAgB,CAACC,GAAW,EAAoB;EAAA,2CACjCT,QAAQ;IAAA;EAAA;IAA9B,oDAAgC;MAAA,IAArBW,OAAO;MAChB,IAAIA,OAAO,CAACC,OAAO,IAAID,OAAO,CAACC,OAAO,CAACH,GAAG,CAAC,EAAE;QAC3C,OAAOE,OAAO,CAACL,IAAI;MACrB;IACF;EAAC;IAAA;EAAA;IAAA;EAAA;EAED,OAAO,KAAK;AACd"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ArcGISImageService = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
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"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _imageSource = require("../image-source");
19
+ var _imageService = require("./image-service");
20
+ 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); }; }
21
+ 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; } }
22
+ var ArcGISImageService = function (_ImageSource) {
23
+ (0, _inherits2.default)(ArcGISImageService, _ImageSource);
24
+ var _super = _createSuper(ArcGISImageService);
25
+ function ArcGISImageService(props) {
26
+ var _this;
27
+ (0, _classCallCheck2.default)(this, ArcGISImageService);
28
+ _this = _super.call(this);
29
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
30
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fetch", void 0);
31
+ _this.props = (0, _imageService.mergeImageServiceProps)(props);
32
+ _this.fetch = (0, _imageService.getFetchFunction)(_this.props);
33
+ return _this;
34
+ }
35
+
36
+ (0, _createClass2.default)(ArcGISImageService, [{
37
+ key: "getMetadata",
38
+ value: function () {
39
+ var _getMetadata = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
40
+ return _regenerator.default.wrap(function _callee$(_context) {
41
+ while (1) {
42
+ switch (_context.prev = _context.next) {
43
+ case 0:
44
+ _context.next = 2;
45
+ return this.info();
46
+ case 2:
47
+ return _context.abrupt("return", _context.sent);
48
+ case 3:
49
+ case "end":
50
+ return _context.stop();
51
+ }
52
+ }
53
+ }, _callee, this);
54
+ }));
55
+ function getMetadata() {
56
+ return _getMetadata.apply(this, arguments);
57
+ }
58
+ return getMetadata;
59
+ }()
60
+ }, {
61
+ key: "getImage",
62
+ value: function () {
63
+ var _getImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parameters) {
64
+ return _regenerator.default.wrap(function _callee2$(_context2) {
65
+ while (1) {
66
+ switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ throw new Error('not implemented');
69
+ case 1:
70
+ case "end":
71
+ return _context2.stop();
72
+ }
73
+ }
74
+ }, _callee2);
75
+ }));
76
+ function getImage(_x) {
77
+ return _getImage.apply(this, arguments);
78
+ }
79
+ return getImage;
80
+ }()
81
+ }, {
82
+ key: "info",
83
+ value: function () {
84
+ var _info = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
85
+ return _regenerator.default.wrap(function _callee3$(_context3) {
86
+ while (1) {
87
+ switch (_context3.prev = _context3.next) {
88
+ case 0:
89
+ throw new Error('not implemented');
90
+ case 1:
91
+ case "end":
92
+ return _context3.stop();
93
+ }
94
+ }
95
+ }, _callee3);
96
+ }));
97
+ function info() {
98
+ return _info.apply(this, arguments);
99
+ }
100
+ return info;
101
+ }()
102
+ }, {
103
+ key: "exportImage",
104
+ value:
105
+ function exportImage(options) {
106
+ throw new Error('not implemented');
107
+ }
108
+
109
+ }, {
110
+ key: "infoURL",
111
+ value:
112
+
113
+ function infoURL(options) {
114
+ return this.props.url;
115
+ }
116
+
117
+ }, {
118
+ key: "exportImageURL",
119
+ value:
120
+ function exportImageURL(options) {
121
+ return this.props.url;
122
+ }
123
+
124
+ }, {
125
+ key: "getUrl",
126
+ value:
127
+
128
+ function getUrl(options, extra) {
129
+ var url = "".concat(this.props.url);
130
+ var first = true;
131
+ for (var _i = 0, _Object$entries = Object.entries(options); _i < _Object$entries.length; _i++) {
132
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
133
+ key = _Object$entries$_i[0],
134
+ value = _Object$entries$_i[1];
135
+ url += first ? '?' : '&';
136
+ first = false;
137
+ if (Array.isArray(value)) {
138
+ url += "".concat(key.toUpperCase(), "=").concat(value.join(','));
139
+ } else {
140
+ url += "".concat(key.toUpperCase(), "=").concat(value ? String(value) : '');
141
+ }
142
+ }
143
+ return url;
144
+ }
145
+
146
+ }, {
147
+ key: "checkResponse",
148
+ value: function () {
149
+ var _checkResponse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(response) {
150
+ return _regenerator.default.wrap(function _callee4$(_context4) {
151
+ while (1) {
152
+ switch (_context4.prev = _context4.next) {
153
+ case 0:
154
+ if (response.ok) {
155
+ _context4.next = 2;
156
+ break;
157
+ }
158
+ throw new Error('error');
159
+ case 2:
160
+ case "end":
161
+ return _context4.stop();
162
+ }
163
+ }
164
+ }, _callee4);
165
+ }));
166
+ function checkResponse(_x2) {
167
+ return _checkResponse.apply(this, arguments);
168
+ }
169
+ return checkResponse;
170
+ }()
171
+ }]);
172
+ return ArcGISImageService;
173
+ }(_imageSource.ImageSource);
174
+ exports.ArcGISImageService = ArcGISImageService;
175
+ (0, _defineProperty2.default)(ArcGISImageService, "type", 'arcgis-image-server');
176
+ (0, _defineProperty2.default)(ArcGISImageService, "testURL", function (url) {
177
+ return url.toLowerCase().includes('ImageServer');
178
+ });
179
+ //# sourceMappingURL=arcgis-image-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arcgis-image-service.js","names":["ArcGISImageService","props","mergeImageServiceProps","fetch","getFetchFunction","info","parameters","Error","options","url","extra","first","Object","entries","key","value","Array","isArray","toUpperCase","join","String","response","ok","ImageSource","toLowerCase","includes"],"sources":["../../../../../src/lib/data-sources/image-services/arcgis-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {ImageType} from '@loaders.gl/images';\nimport type {ImageSourceMetadata, GetImageParameters} from '../image-source';\nimport {ImageSource} from '../image-source';\nimport {ImageServiceProps, mergeImageServiceProps, getFetchFunction} from './image-service';\n\nexport class ArcGISImageService extends ImageSource {\n static type: 'arcgis-image-server' = 'arcgis-image-server';\n static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');\n\n props: Required<ImageServiceProps>;\n fetch: (url: string, options?: RequestInit) => Promise<Response>;\n\n constructor(props: ImageServiceProps) {\n super();\n this.props = mergeImageServiceProps(props);\n this.fetch = getFetchFunction(this.props);\n }\n\n // ImageSource (normalized endpoints)\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n return (await this.info()) as ImageSourceMetadata;\n // TODO - normalize metadata\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n throw new Error('not implemented');\n // TODO - Map generic parameters to ArcGIS specific parameters\n // return await this.exportImage(parameters);\n }\n\n // ImageServer endpoints\n\n async info(): Promise<unknown> {\n // We just need a JSON parsing...\n // return this.getUrl({path: '', ...options});\n throw new Error('not implemented');\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,\n */\n exportImage(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): Promise<ImageType> {\n // See WMSService.getMap()\n throw new Error('not implemented');\n }\n\n // URL creators\n\n infoURL(options: {parameters?: Record<string, unknown>}): string {\n return this.props.url;\n // return this.getUrl({path: '', ...options});\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,\n */\n exportImageURL(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): string {\n // const {boundingBox} = options;\n // const bbox = `bbox=${boundingBox[0]},${boundingBox[1]},${boundingBox[2]},${boundingBox[3]}`;\n // const size = `size=${width},${height}`;\n // return this.getUrl({path: 'exportImage'});\n return this.props.url;\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 getUrl(options: Record<string, unknown>, extra?: Record<string, unknown>): string {\n let url = `${this.props.url}`;\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 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) {\n // } || 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":";;;;;;;;;;;;;;;;;AAIA;AACA;AAA4F;AAAA;AAAA,IAE/EA,kBAAkB;EAAA;EAAA;EAO7B,4BAAYC,KAAwB,EAAE;IAAA;IAAA;IACpC;IAAQ;IAAA;IACR,MAAKA,KAAK,GAAG,IAAAC,oCAAsB,EAACD,KAAK,CAAC;IAC1C,MAAKE,KAAK,GAAG,IAAAC,8BAAgB,EAAC,MAAKH,KAAK,CAAC;IAAC;EAC5C;;EAAC;IAAA;IAAA;MAAA,6EAID;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACgB,IAAI,CAACI,IAAI,EAAE;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE1B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0EAED,kBAAeC,UAA8B;QAAA;UAAA;YAAA;cAAA;gBAAA,MACrC,IAAIC,KAAK,CAAC,iBAAiB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAGnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sEAID;QAAA;UAAA;YAAA;cAAA;gBAAA,MAGQ,IAAIA,KAAK,CAAC,iBAAiB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;IAMD,qBAAYC,OAkBX,EAAsB;MAErB,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;IACpC;;EAAC;IAAA;IAAA;;IAID,iBAAQC,OAA+C,EAAU;MAC/D,OAAO,IAAI,CAACP,KAAK,CAACQ,GAAG;IAEvB;;EAAC;IAAA;IAAA;IAMD,wBAAeD,OAkBd,EAAU;MAKT,OAAO,IAAI,CAACP,KAAK,CAACQ,GAAG;IACvB;;EAAC;IAAA;IAAA;;IAQD,gBAAiBD,OAAgC,EAAEE,KAA+B,EAAU;MAC1F,IAAID,GAAG,aAAM,IAAI,CAACR,KAAK,CAACQ,GAAG,CAAE;MAC7B,IAAIE,KAAK,GAAG,IAAI;MAChB,mCAA2BC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,qCAAE;QAA/C;UAAOM,GAAG;UAAEC,KAAK;QACpBN,GAAG,IAAIE,KAAK,GAAG,GAAG,GAAG,GAAG;QACxBA,KAAK,GAAG,KAAK;QACb,IAAIK,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;UACxBN,GAAG,cAAOK,GAAG,CAACI,WAAW,EAAE,cAAIH,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC,CAAE;QAClD,CAAC,MAAM;UACLV,GAAG,cAAOK,GAAG,CAACI,WAAW,EAAE,cAAIH,KAAK,GAAGK,MAAM,CAACL,KAAK,CAAC,GAAG,EAAE,CAAE;QAC7D;MACF;MACA,OAAON,GAAG;IACZ;;EAAC;IAAA;IAAA;MAAA,+EAGD,kBAA8BY,QAAkB;QAAA;UAAA;YAAA;cAAA;gBAAA,IACzCA,QAAQ,CAACC,EAAE;kBAAA;kBAAA;gBAAA;gBAAA,MAIR,IAAIf,KAAK,CAAC,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA/HqCgB,wBAAW;AAAA;AAAA,8BAAtCvB,kBAAkB,UACQ,qBAAqB;AAAA,8BAD/CA,kBAAkB,aAEZ,UAACS,GAAW;EAAA,OAAcA,GAAG,CAACe,WAAW,EAAE,CAACC,QAAQ,CAAC,aAAa,CAAC;AAAA"}