@loaders.gl/wms 3.4.0-alpha.1 → 3.4.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/csw-capabilities-loader.d.ts +29 -0
- package/dist/csw-capabilities-loader.d.ts.map +1 -0
- package/dist/csw-capabilities-loader.js +31 -0
- package/dist/csw-domain-loader.d.ts +28 -0
- package/dist/csw-domain-loader.d.ts.map +1 -0
- package/dist/csw-domain-loader.js +31 -0
- package/dist/csw-records-loader.d.ts +12 -0
- package/dist/csw-records-loader.d.ts.map +1 -0
- package/dist/csw-records-loader.js +30 -0
- package/dist/dist.min.js +3781 -4001
- package/dist/es5/csw-capabilities-loader.js +55 -0
- package/dist/es5/csw-capabilities-loader.js.map +1 -0
- package/dist/es5/csw-domain-loader.js +54 -0
- package/dist/es5/csw-domain-loader.js.map +1 -0
- package/dist/es5/csw-records-loader.js +52 -0
- package/dist/es5/csw-records-loader.js.map +1 -0
- package/dist/es5/{wip/gml-loader.js → gml-loader.js} +3 -3
- package/dist/es5/gml-loader.js.map +1 -0
- package/dist/es5/index.js +43 -8
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lerc-loader.js +1 -1
- package/dist/es5/lerc-loader.js.map +1 -1
- package/dist/es5/lib/{data-sources/create-image-source.js → create-image-source.js} +4 -4
- package/dist/es5/lib/create-image-source.js.map +1 -0
- package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js +24 -0
- package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js.map +1 -0
- package/dist/es5/lib/parsers/csw/parse-csw-domain.js +42 -0
- package/dist/es5/lib/parsers/csw/parse-csw-domain.js.map +1 -0
- package/dist/es5/lib/parsers/csw/parse-csw-records.js +76 -0
- package/dist/es5/lib/parsers/csw/parse-csw-records.js.map +1 -0
- package/dist/es5/lib/parsers/csw/parse-exception-report.js +18 -0
- package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -0
- package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -0
- package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -0
- package/dist/es5/lib/parsers/lerc/lerc-types.js.map +1 -0
- package/dist/es5/lib/{wms/parse-wms.js → parsers/wms/parse-wms-capabilities.js} +1 -42
- package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
- package/dist/es5/lib/parsers/wms/parse-wms-error.js +16 -0
- package/dist/es5/lib/parsers/wms/parse-wms-error.js.map +1 -0
- package/dist/es5/lib/parsers/wms/parse-wms-features.js +33 -0
- package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -0
- package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +13 -0
- package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
- package/dist/es5/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.js +36 -29
- package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -0
- package/dist/es5/lib/services/arcgis/arcgis-server.js +115 -0
- package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -0
- package/dist/es5/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +22 -19
- package/dist/es5/lib/services/generic/image-service.js.map +1 -0
- package/dist/es5/lib/services/generic/tile-service.js +2 -0
- package/dist/es5/lib/services/generic/tile-service.js.map +1 -0
- package/dist/es5/lib/services/ogc/csw-service.js +384 -0
- package/dist/es5/lib/services/ogc/csw-service.js.map +1 -0
- package/dist/es5/lib/{data-sources/image-services → services/ogc}/wms-service.js +163 -115
- package/dist/es5/lib/services/ogc/wms-service.js.map +1 -0
- package/dist/es5/lib/services/ogc/wmts-service.ts.disabled +348 -0
- package/dist/es5/lib/sources/data-source.js +44 -0
- package/dist/es5/lib/sources/data-source.js.map +1 -0
- package/dist/es5/lib/sources/image-source.js +26 -0
- package/dist/es5/lib/sources/image-source.js.map +1 -0
- package/dist/es5/lib/sources/tile-source.js +26 -0
- package/dist/es5/lib/sources/tile-source.js.map +1 -0
- package/dist/es5/lib/sources/utils/utils.js +40 -0
- package/dist/es5/lib/sources/utils/utils.js.map +1 -0
- package/dist/es5/{lib/wfs/parse-wfs.js → wip/lib/wcs/parse-wcs-capabilities.js} +7 -29
- package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
- package/dist/es5/{lib/wcs/parse-wcs.js → wip/lib/wfs/parse-wfs-capabilities.js} +7 -28
- package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
- package/dist/es5/{lib/wmts/parse-wmts.js → wip/lib/wmts/parse-wmts-capabilities.js} +7 -28
- package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
- package/dist/es5/wip/wcs-capabilities-loader.js +4 -4
- package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
- package/dist/es5/wip/wfs-capabilities-loader.js +4 -4
- package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
- package/dist/es5/wip/wms-feature-info-loader.js +3 -3
- package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/es5/wip/wms-layer-description-loader.js +3 -3
- package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/es5/wip/wmts-capabilities-loader.js +10 -4
- package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-capabilities-loader.js +5 -4
- package/dist/es5/wms-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-error-loader.js +3 -3
- package/dist/es5/wms-error-loader.js.map +1 -1
- package/dist/esm/csw-capabilities-loader.js +26 -0
- package/dist/esm/csw-capabilities-loader.js.map +1 -0
- package/dist/esm/csw-domain-loader.js +25 -0
- package/dist/esm/csw-domain-loader.js.map +1 -0
- package/dist/esm/csw-records-loader.js +24 -0
- package/dist/esm/csw-records-loader.js.map +1 -0
- package/dist/esm/{wip/gml-loader.js → gml-loader.js} +3 -3
- package/dist/esm/gml-loader.js.map +1 -0
- package/dist/esm/index.js +16 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lerc-loader.js +1 -1
- package/dist/esm/lerc-loader.js.map +1 -1
- package/dist/esm/lib/{data-sources/create-image-source.js → create-image-source.js} +4 -4
- package/dist/esm/lib/create-image-source.js.map +1 -0
- package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +19 -0
- package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -0
- package/dist/esm/lib/parsers/csw/parse-csw-domain.js +25 -0
- package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -0
- package/dist/esm/lib/parsers/csw/parse-csw-records.js +46 -0
- package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -0
- package/dist/esm/lib/parsers/csw/parse-exception-report.js +13 -0
- package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -0
- package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -0
- package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -0
- package/dist/esm/lib/parsers/lerc/lerc-types.js.map +1 -0
- package/dist/esm/lib/{wms/parse-wms.js → parsers/wms/parse-wms-capabilities.js} +1 -37
- package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
- package/dist/esm/lib/parsers/wms/parse-wms-error.js +12 -0
- package/dist/esm/lib/parsers/wms/parse-wms-error.js.map +1 -0
- package/dist/esm/lib/parsers/wms/parse-wms-features.js +27 -0
- package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -0
- package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +9 -0
- package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
- package/dist/esm/lib/services/arcgis/arcgis-image-service.js +67 -0
- package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -0
- package/dist/esm/lib/services/arcgis/arcgis-server.js +35 -0
- package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -0
- package/dist/esm/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +13 -10
- package/dist/esm/lib/services/generic/image-service.js.map +1 -0
- package/dist/esm/lib/services/generic/tile-service.js +2 -0
- package/dist/esm/lib/services/generic/tile-service.js.map +1 -0
- package/dist/esm/lib/services/ogc/csw-service.js +162 -0
- package/dist/esm/lib/services/ogc/csw-service.js.map +1 -0
- package/dist/esm/lib/{data-sources/image-services → services/ogc}/wms-service.js +40 -34
- package/dist/esm/lib/services/ogc/wms-service.js.map +1 -0
- package/dist/esm/lib/services/ogc/wmts-service.ts.disabled +348 -0
- package/dist/esm/lib/sources/data-source.js +29 -0
- package/dist/esm/lib/sources/data-source.js.map +1 -0
- package/dist/esm/lib/sources/image-source.js +6 -0
- package/dist/esm/lib/sources/image-source.js.map +1 -0
- package/dist/esm/lib/sources/tile-source.js +6 -0
- package/dist/esm/lib/sources/tile-source.js.map +1 -0
- package/dist/esm/lib/sources/utils/utils.js +26 -0
- package/dist/esm/lib/sources/utils/utils.js.map +1 -0
- package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +16 -0
- package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
- package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +17 -0
- package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
- package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +17 -0
- package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
- package/dist/esm/wip/wcs-capabilities-loader.js +4 -4
- package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
- package/dist/esm/wip/wfs-capabilities-loader.js +2 -2
- package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
- package/dist/esm/wip/wms-feature-info-loader.js +1 -2
- package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/esm/wip/wms-layer-description-loader.js +1 -2
- package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/esm/wip/wmts-capabilities-loader.js +4 -2
- package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-capabilities-loader.js +3 -2
- package/dist/esm/wms-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-error-loader.js +2 -2
- package/dist/esm/wms-error-loader.js.map +1 -1
- package/dist/gml-loader.d.ts.map +1 -0
- package/dist/{wip/gml-loader.js → gml-loader.js} +2 -2
- package/dist/index.d.ts +25 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -14
- package/dist/lerc-loader.d.ts +1 -1
- package/dist/lerc-loader.d.ts.map +1 -1
- package/dist/lib/create-image-source.d.ts +17 -0
- package/dist/lib/create-image-source.d.ts.map +1 -0
- package/dist/lib/{data-sources/create-image-source.js → create-image-source.js} +5 -5
- package/dist/lib/{wmts/wmts-types.d.ts → parsers/csw/parse-csw-capabilities.d.ts} +9 -3
- package/dist/lib/parsers/csw/parse-csw-capabilities.d.ts.map +1 -0
- package/dist/lib/parsers/csw/parse-csw-capabilities.js +24 -0
- package/dist/lib/parsers/csw/parse-csw-domain.d.ts +17 -0
- package/dist/lib/parsers/csw/parse-csw-domain.d.ts.map +1 -0
- package/dist/lib/parsers/csw/parse-csw-domain.js +33 -0
- package/dist/lib/parsers/csw/parse-csw-records.d.ts +33 -0
- package/dist/lib/parsers/csw/parse-csw-records.d.ts.map +1 -0
- package/dist/lib/parsers/csw/parse-csw-records.js +58 -0
- package/dist/lib/parsers/csw/parse-exception-report.d.ts +6 -0
- package/dist/lib/parsers/csw/parse-exception-report.d.ts.map +1 -0
- package/dist/lib/parsers/csw/parse-exception-report.js +30 -0
- package/dist/lib/parsers/gml/deep-strict-equal.d.ts.map +1 -0
- package/dist/lib/parsers/gml/parse-gml.d.ts.map +1 -0
- package/dist/lib/parsers/lerc/lerc-types.d.ts.map +1 -0
- package/dist/lib/{wms/wms-types.d.ts → parsers/wms/parse-wms-capabilities.d.ts} +6 -19
- package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -0
- package/dist/lib/{wms/wms-types.js → parsers/wms/parse-wms-capabilities.js} +61 -1
- package/dist/lib/parsers/wms/parse-wms-error.d.ts +8 -0
- package/dist/lib/parsers/wms/parse-wms-error.d.ts.map +1 -0
- package/dist/lib/parsers/wms/parse-wms-error.js +22 -0
- package/dist/lib/parsers/wms/parse-wms-features.d.ts +20 -0
- package/dist/lib/parsers/wms/parse-wms-features.d.ts.map +1 -0
- package/dist/lib/parsers/wms/parse-wms-features.js +27 -0
- package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts +10 -0
- package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts.map +1 -0
- package/dist/lib/parsers/wms/parse-wms-layer-description.js +15 -0
- package/dist/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.d.ts +25 -13
- package/dist/lib/services/arcgis/arcgis-image-service.d.ts.map +1 -0
- package/dist/lib/{data-sources → services/arcgis}/arcgis-image-service.js +33 -23
- package/dist/lib/services/arcgis/arcgis-server.d.ts +15 -0
- package/dist/lib/services/arcgis/arcgis-server.d.ts.map +1 -0
- package/dist/lib/services/arcgis/arcgis-server.js +42 -0
- package/dist/lib/{data-sources/image-services → services/generic}/image-service.d.ts +3 -13
- package/dist/lib/services/generic/image-service.d.ts.map +1 -0
- package/dist/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +12 -10
- package/dist/lib/services/generic/tile-service.d.ts +1 -0
- package/dist/lib/services/generic/tile-service.d.ts.map +1 -0
- package/dist/lib/services/generic/tile-service.js +1 -0
- package/dist/lib/services/ogc/csw-service.d.ts +115 -0
- package/dist/lib/services/ogc/csw-service.d.ts.map +1 -0
- package/dist/lib/services/ogc/csw-service.js +170 -0
- package/dist/lib/{data-sources/image-services → services/ogc}/wms-service.d.ts +41 -22
- package/dist/lib/services/ogc/wms-service.d.ts.map +1 -0
- package/dist/lib/{data-sources/image-services → services/ogc}/wms-service.js +41 -28
- package/dist/lib/sources/data-source.d.ts +22 -0
- package/dist/lib/sources/data-source.d.ts.map +1 -0
- package/dist/lib/sources/data-source.js +34 -0
- package/dist/lib/{data-sources → sources}/image-source.d.ts +4 -1
- package/dist/lib/sources/image-source.d.ts.map +1 -0
- package/dist/lib/{data-sources → sources}/image-source.js +2 -1
- package/dist/lib/sources/tile-source.d.ts +54 -0
- package/dist/lib/sources/tile-source.d.ts.map +1 -0
- package/dist/lib/sources/tile-source.js +13 -0
- package/dist/lib/sources/utils/utils.d.ts +13 -0
- package/dist/lib/sources/utils/utils.d.ts.map +1 -0
- package/dist/lib/sources/utils/utils.js +38 -0
- package/dist/{lib/wfs/wfs-types.d.ts → wip/lib/wcs/parse-wcs-capabilities.d.ts} +8 -3
- package/dist/wip/lib/wcs/parse-wcs-capabilities.d.ts.map +1 -0
- package/dist/wip/lib/wcs/parse-wcs-capabilities.js +15 -0
- package/dist/{lib/wcs/wcs-types.d.ts → wip/lib/wfs/parse-wfs-capabilities.d.ts} +6 -1
- package/dist/wip/lib/wfs/parse-wfs-capabilities.d.ts.map +1 -0
- package/dist/wip/lib/wfs/parse-wfs-capabilities.js +19 -0
- package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts +87 -0
- package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts.map +1 -0
- package/dist/wip/lib/wmts/parse-wmts-capabilities.js +77 -0
- package/dist/wip/wcs-capabilities-loader.d.ts +4 -3
- package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -1
- package/dist/wip/wcs-capabilities-loader.js +3 -3
- package/dist/wip/wfs-capabilities-loader.d.ts +4 -3
- package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -1
- package/dist/wip/wfs-capabilities-loader.js +3 -3
- package/dist/wip/wms-feature-info-loader.d.ts +4 -2
- package/dist/wip/wms-feature-info-loader.d.ts.map +1 -1
- package/dist/wip/wms-feature-info-loader.js +3 -3
- package/dist/wip/wms-layer-description-loader.d.ts +5 -3
- package/dist/wip/wms-layer-description-loader.d.ts.map +1 -1
- package/dist/wip/wms-layer-description-loader.js +3 -3
- package/dist/wip/wmts-capabilities-loader.d.ts +4 -3
- package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
- package/dist/wip/wmts-capabilities-loader.js +3 -3
- package/dist/wms-capabilities-loader.d.ts +4 -3
- package/dist/wms-capabilities-loader.d.ts.map +1 -1
- package/dist/wms-capabilities-loader.js +3 -3
- package/dist/wms-error-loader.js +2 -2
- package/package.json +7 -7
- package/src/csw-capabilities-loader.ts +46 -0
- package/src/csw-domain-loader.ts +44 -0
- package/src/csw-records-loader.ts +42 -0
- package/src/{wip/gml-loader.ts → gml-loader.ts} +2 -2
- package/src/index.ts +48 -28
- package/src/lerc-loader.ts +1 -1
- package/src/lib/{data-sources/create-image-source.ts → create-image-source.ts} +12 -10
- package/src/lib/parsers/csw/parse-csw-capabilities.ts +103 -0
- package/src/lib/parsers/csw/parse-csw-domain.ts +45 -0
- package/src/lib/parsers/csw/parse-csw-records.ts +90 -0
- package/src/lib/parsers/csw/parse-exception-report.ts +31 -0
- package/src/lib/{wms/wms-types.ts → parsers/wms/parse-wms-capabilities.ts} +72 -53
- package/src/lib/parsers/wms/parse-wms-error.ts +22 -0
- package/src/lib/parsers/wms/parse-wms-features.ts +39 -0
- package/src/lib/parsers/wms/parse-wms-layer-description.ts +18 -0
- package/src/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.ts +44 -26
- package/src/lib/services/arcgis/arcgis-server.ts +59 -0
- package/src/lib/{data-sources/adhoc-image-service.ts → services/generic/image-service.ts} +18 -12
- package/src/lib/services/generic/tile-service.ts +0 -0
- package/src/lib/services/ogc/csw-service.ts +251 -0
- package/src/lib/{data-sources/image-services → services/ogc}/wms-service.ts +73 -34
- package/src/lib/services/ogc/wmts-service.ts.disabled +348 -0
- package/src/lib/sources/data-source.ts +46 -0
- package/src/lib/{data-sources → sources}/image-source.ts +5 -1
- package/src/lib/sources/tile-source.ts +59 -0
- package/src/lib/sources/utils/utils.ts +42 -0
- package/src/{lib/wmts/wmts-types.ts → wip/lib/wcs/parse-wcs-capabilities.ts} +15 -3
- package/src/{lib/wcs/wcs-types.ts → wip/lib/wfs/parse-wfs-capabilities.ts} +18 -1
- package/src/wip/lib/wmts/parse-wmts-capabilities.ts +170 -0
- package/src/wip/wcs-capabilities-loader.ts +6 -3
- package/src/wip/wfs-capabilities-loader.ts +4 -1
- package/src/wip/wms-feature-info-loader.ts +5 -1
- package/src/wip/wms-layer-description-loader.ts +7 -2
- package/src/wip/wmts-capabilities-loader.ts +4 -1
- package/src/wms-capabilities-loader.ts +5 -1
- package/src/wms-error-loader.ts +1 -1
- package/dist/es5/lib/data-sources/adhoc-image-service.js.map +0 -1
- package/dist/es5/lib/data-sources/arcgis-image-service.js +0 -180
- package/dist/es5/lib/data-sources/arcgis-image-service.js.map +0 -1
- package/dist/es5/lib/data-sources/create-image-source.js.map +0 -1
- package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
- package/dist/es5/lib/data-sources/image-services/image-service.js +0 -163
- package/dist/es5/lib/data-sources/image-services/image-service.js.map +0 -1
- package/dist/es5/lib/data-sources/image-services/wms-service.js.map +0 -1
- package/dist/es5/lib/data-sources/image-source.js +0 -14
- package/dist/es5/lib/data-sources/image-source.js.map +0 -1
- package/dist/es5/lib/gml/deep-strict-equal.js.map +0 -1
- package/dist/es5/lib/gml/parse-gml.js.map +0 -1
- package/dist/es5/lib/lerc/lerc-types.js.map +0 -1
- package/dist/es5/lib/wcs/parse-wcs.js.map +0 -1
- package/dist/es5/lib/wcs/wcs-types.js +0 -2
- package/dist/es5/lib/wcs/wcs-types.js.map +0 -1
- package/dist/es5/lib/wfs/parse-wfs.js.map +0 -1
- package/dist/es5/lib/wfs/wfs-types.js +0 -2
- package/dist/es5/lib/wfs/wfs-types.js.map +0 -1
- package/dist/es5/lib/wms/parse-wms.js.map +0 -1
- package/dist/es5/lib/wms/wms-types.js +0 -2
- package/dist/es5/lib/wms/wms-types.js.map +0 -1
- package/dist/es5/lib/wmts/parse-wmts.js.map +0 -1
- package/dist/es5/lib/wmts/wmts-types.js +0 -2
- package/dist/es5/lib/wmts/wmts-types.js.map +0 -1
- package/dist/es5/wip/gml-loader.js.map +0 -1
- package/dist/esm/lib/data-sources/adhoc-image-service.js.map +0 -1
- package/dist/esm/lib/data-sources/arcgis-image-service.js +0 -62
- package/dist/esm/lib/data-sources/arcgis-image-service.js.map +0 -1
- package/dist/esm/lib/data-sources/create-image-source.js.map +0 -1
- package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +0 -61
- package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
- package/dist/esm/lib/data-sources/image-services/image-service.js +0 -72
- package/dist/esm/lib/data-sources/image-services/image-service.js.map +0 -1
- package/dist/esm/lib/data-sources/image-services/wms-service.js.map +0 -1
- package/dist/esm/lib/data-sources/image-source.js +0 -4
- package/dist/esm/lib/data-sources/image-source.js.map +0 -1
- package/dist/esm/lib/gml/deep-strict-equal.js.map +0 -1
- package/dist/esm/lib/gml/parse-gml.js.map +0 -1
- package/dist/esm/lib/lerc/lerc-types.js.map +0 -1
- package/dist/esm/lib/wcs/parse-wcs.js +0 -32
- package/dist/esm/lib/wcs/parse-wcs.js.map +0 -1
- package/dist/esm/lib/wcs/wcs-types.js +0 -2
- package/dist/esm/lib/wcs/wcs-types.js.map +0 -1
- package/dist/esm/lib/wfs/parse-wfs.js +0 -32
- package/dist/esm/lib/wfs/parse-wfs.js.map +0 -1
- package/dist/esm/lib/wfs/wfs-types.js +0 -2
- package/dist/esm/lib/wfs/wfs-types.js.map +0 -1
- package/dist/esm/lib/wms/parse-wms.js.map +0 -1
- package/dist/esm/lib/wms/wms-types.js +0 -2
- package/dist/esm/lib/wms/wms-types.js.map +0 -1
- package/dist/esm/lib/wmts/parse-wmts.js +0 -32
- package/dist/esm/lib/wmts/parse-wmts.js.map +0 -1
- package/dist/esm/lib/wmts/wmts-types.js +0 -2
- package/dist/esm/lib/wmts/wmts-types.js.map +0 -1
- package/dist/esm/wip/gml-loader.js.map +0 -1
- package/dist/lib/data-sources/adhoc-image-service.d.ts +0 -24
- package/dist/lib/data-sources/adhoc-image-service.d.ts.map +0 -1
- package/dist/lib/data-sources/arcgis-image-service.d.ts +0 -79
- package/dist/lib/data-sources/arcgis-image-service.d.ts.map +0 -1
- package/dist/lib/data-sources/create-image-source.d.ts +0 -16
- package/dist/lib/data-sources/create-image-source.d.ts.map +0 -1
- package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +0 -1
- package/dist/lib/data-sources/image-services/arcgis-image-service.js +0 -85
- package/dist/lib/data-sources/image-services/image-service.d.ts.map +0 -1
- package/dist/lib/data-sources/image-services/image-service.js +0 -82
- package/dist/lib/data-sources/image-services/wms-service.d.ts.map +0 -1
- package/dist/lib/data-sources/image-source.d.ts.map +0 -1
- package/dist/lib/gml/deep-strict-equal.d.ts.map +0 -1
- package/dist/lib/gml/parse-gml.d.ts.map +0 -1
- package/dist/lib/lerc/lerc-types.d.ts.map +0 -1
- package/dist/lib/wcs/parse-wcs.d.ts +0 -7
- package/dist/lib/wcs/parse-wcs.d.ts.map +0 -1
- package/dist/lib/wcs/parse-wcs.js +0 -36
- package/dist/lib/wcs/wcs-types.d.ts.map +0 -1
- package/dist/lib/wcs/wcs-types.js +0 -3
- package/dist/lib/wfs/parse-wfs.d.ts +0 -7
- package/dist/lib/wfs/parse-wfs.d.ts.map +0 -1
- package/dist/lib/wfs/parse-wfs.js +0 -36
- package/dist/lib/wfs/wfs-types.d.ts.map +0 -1
- package/dist/lib/wfs/wfs-types.js +0 -3
- package/dist/lib/wms/parse-wms.d.ts +0 -24
- package/dist/lib/wms/parse-wms.d.ts.map +0 -1
- package/dist/lib/wms/parse-wms.js +0 -115
- package/dist/lib/wms/wms-types.d.ts.map +0 -1
- package/dist/lib/wmts/parse-wmts.d.ts +0 -7
- package/dist/lib/wmts/parse-wmts.d.ts.map +0 -1
- package/dist/lib/wmts/parse-wmts.js +0 -36
- package/dist/lib/wmts/wmts-types.d.ts.map +0 -1
- package/dist/lib/wmts/wmts-types.js +0 -3
- package/dist/wip/gml-loader.d.ts.map +0 -1
- package/src/lib/data-sources/arcgis-image-service.ts +0 -146
- package/src/lib/data-sources/image-services/image-service.ts +0 -105
- package/src/lib/wcs/parse-wcs.ts +0 -39
- package/src/lib/wfs/parse-wfs.ts +0 -39
- package/src/lib/wfs/wfs-types.ts +0 -78
- package/src/lib/wms/parse-wms.ts +0 -142
- package/src/lib/wmts/parse-wmts.ts +0 -39
- /package/dist/es5/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
- /package/dist/es5/lib/{gml → parsers/gml}/parse-gml.js +0 -0
- /package/dist/es5/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
- /package/dist/esm/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
- /package/dist/esm/lib/{gml → parsers/gml}/parse-gml.js +0 -0
- /package/dist/esm/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
- /package/dist/{wip/gml-loader.d.ts → gml-loader.d.ts} +0 -0
- /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.d.ts +0 -0
- /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
- /package/dist/lib/{gml → parsers/gml}/parse-gml.d.ts +0 -0
- /package/dist/lib/{gml → parsers/gml}/parse-gml.js +0 -0
- /package/dist/lib/{lerc → parsers/lerc}/lerc-types.d.ts +0 -0
- /package/dist/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
- /package/src/lib/{gml → parsers/gml}/deep-strict-equal.ts +0 -0
- /package/src/lib/{gml → parsers/gml}/parse-gml.ts +0 -0
- /package/src/lib/{lerc → parsers/lerc}/lerc-types.ts +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
// import type {XMLLoaderOptions} from '@loaders.gl/xml';
|
|
4
|
+
// import {XMLLoader} from '@loaders.gl/xml';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Parses a typed data structure from raw XML for `GetDomain` response
|
|
8
|
+
* @note Error handlings is fairly weak
|
|
9
|
+
*/
|
|
10
|
+
export function parseExceptionReport(parsedXML: any): void {
|
|
11
|
+
// const parsedXML = XMLLoader.parseTextSync(text, {
|
|
12
|
+
// ...options,
|
|
13
|
+
// xml: {
|
|
14
|
+
// ...options?.xml,
|
|
15
|
+
// removeNSPrefix: true,
|
|
16
|
+
// uncapitalizeKeys: true
|
|
17
|
+
// }
|
|
18
|
+
// });
|
|
19
|
+
|
|
20
|
+
const exceptionReport: any = parsedXML.exceptionReport;
|
|
21
|
+
if (!exceptionReport) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const errorMessage =
|
|
25
|
+
exceptionReport.exception?.exceptionText ||
|
|
26
|
+
exceptionReport.exception?.exceptionCode ||
|
|
27
|
+
exceptionReport.exception?.locator ||
|
|
28
|
+
'server error';
|
|
29
|
+
|
|
30
|
+
throw new Error(`Catalog Server: ${errorMessage}`);
|
|
31
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
// loaders.gl, MIT
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
2
4
|
|
|
3
5
|
/** All capabilities of a WMS service - response to a WMS `GetCapabilities` data structure extracted from XML */
|
|
4
6
|
export type WMSCapabilities = {
|
|
@@ -30,58 +32,6 @@ export type WMSRequest = {
|
|
|
30
32
|
mimeTypes: string[];
|
|
31
33
|
};
|
|
32
34
|
|
|
33
|
-
// GetFeatureInfo
|
|
34
|
-
|
|
35
|
-
/** WMS Feature info - response to a WMS `GetFeatureInfo` request */
|
|
36
|
-
export type WMSFeatureInfo = {
|
|
37
|
-
features: WMSFeature[];
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export type WMSFeature = {
|
|
41
|
-
attributes: Record<string, number | string>;
|
|
42
|
-
type: string;
|
|
43
|
-
bounds: {top: number; bottom: number; left: number; right: number};
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// DescribeLayer
|
|
47
|
-
|
|
48
|
-
/** Layer description - response to a WMS `DescribeLayer` request */
|
|
49
|
-
export type WMSLayerDescription = {
|
|
50
|
-
layers: {}[];
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// // WIP
|
|
54
|
-
|
|
55
|
-
// export type GetCapabilities = {
|
|
56
|
-
// request: 'GetCapabilities';
|
|
57
|
-
// format: string[];
|
|
58
|
-
// dcpType: unknown;
|
|
59
|
-
// };
|
|
60
|
-
|
|
61
|
-
// export type GetMap = {
|
|
62
|
-
// request: 'GetMap';
|
|
63
|
-
// format: string[];
|
|
64
|
-
// dcpType: unknown;
|
|
65
|
-
// };
|
|
66
|
-
|
|
67
|
-
// export type GetFeatureInfo = {
|
|
68
|
-
// request: 'GetFeatureInfo';
|
|
69
|
-
// format: string[];
|
|
70
|
-
// dcpType: unknown;
|
|
71
|
-
// };
|
|
72
|
-
|
|
73
|
-
// export type GetLegendGraphic = {
|
|
74
|
-
// request: 'GetLegendGraphic';
|
|
75
|
-
// format: string[];
|
|
76
|
-
// dcpType: unknown;
|
|
77
|
-
// };
|
|
78
|
-
|
|
79
|
-
// export type GetStyles = {
|
|
80
|
-
// request: 'GetStyles';
|
|
81
|
-
// format: string[];
|
|
82
|
-
// dcpType: unknown;
|
|
83
|
-
// };
|
|
84
|
-
|
|
85
35
|
/**
|
|
86
36
|
* <EX_GeographicBoundingBox>
|
|
87
37
|
* <westBoundLongitude>-180</westBoundLongitude>
|
|
@@ -2051,3 +2001,72 @@ export type WMSService = {
|
|
|
2051
2001
|
</Capability>
|
|
2052
2002
|
</WMS_Capabilities>
|
|
2053
2003
|
*/
|
|
2004
|
+
|
|
2005
|
+
/**
|
|
2006
|
+
* Parses a typed data structure from raw XML for `GetCapabilities` response
|
|
2007
|
+
* @note Error handlings is fairly weak
|
|
2008
|
+
*/
|
|
2009
|
+
export function parseWMSCapabilities(text: string, options): WMSCapabilities {
|
|
2010
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
2011
|
+
const xmlCapabilities: any =
|
|
2012
|
+
parsedXML.WMT_MS_Capabilities || parsedXML.WMS_Capabilities || parsedXML;
|
|
2013
|
+
return extractCapabilities(xmlCapabilities);
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
/** Extract typed capability data from XML */
|
|
2017
|
+
function extractCapabilities(xml: any): WMSCapabilities {
|
|
2018
|
+
const capabilities: WMSCapabilities = {
|
|
2019
|
+
name: xml.Service?.Name || 'unnamed',
|
|
2020
|
+
title: xml.Service?.Title,
|
|
2021
|
+
keywords: [],
|
|
2022
|
+
requests: {},
|
|
2023
|
+
layer: extractLayer(xml.Capability?.Layer),
|
|
2024
|
+
raw: xml
|
|
2025
|
+
};
|
|
2026
|
+
|
|
2027
|
+
for (const keyword of xml.Service?.KeywordList?.Keyword || []) {
|
|
2028
|
+
capabilities.keywords.push(keyword);
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
for (const [name, xmlRequest] of Object.entries(xml.Capability?.Request || {})) {
|
|
2032
|
+
capabilities.requests[name] = extractRequest(name, xmlRequest);
|
|
2033
|
+
}
|
|
2034
|
+
|
|
2035
|
+
return capabilities;
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
/** Extract typed request data from XML */
|
|
2039
|
+
function extractRequest(name: string, xmlRequest: any): WMSRequest {
|
|
2040
|
+
const format: string | string[] = xmlRequest?.Format;
|
|
2041
|
+
const mimeTypes: string[] = Array.isArray(format) ? format : [format];
|
|
2042
|
+
return {name, mimeTypes};
|
|
2043
|
+
}
|
|
2044
|
+
|
|
2045
|
+
/** Extract request data */
|
|
2046
|
+
function extractLayer(xmlLayer: any): WMSLayer {
|
|
2047
|
+
const layer: WMSLayer = {
|
|
2048
|
+
name: xmlLayer?.Name,
|
|
2049
|
+
title: xmlLayer?.Title,
|
|
2050
|
+
srs: xmlLayer?.SRS || [],
|
|
2051
|
+
layers: []
|
|
2052
|
+
};
|
|
2053
|
+
|
|
2054
|
+
// Single layer is not represented as array in XML
|
|
2055
|
+
const xmlLayers = getXMLArray(xmlLayer?.Layer);
|
|
2056
|
+
|
|
2057
|
+
for (const xmlSubLayer of xmlLayers) {
|
|
2058
|
+
layer.layers?.push(extractLayer(xmlSubLayer));
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
return layer;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
function getXMLArray(xmlValue: any) {
|
|
2065
|
+
if (Array.isArray(xmlValue)) {
|
|
2066
|
+
return xmlValue;
|
|
2067
|
+
}
|
|
2068
|
+
if (xmlValue) {
|
|
2069
|
+
return [xmlValue];
|
|
2070
|
+
}
|
|
2071
|
+
return [];
|
|
2072
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Extract an error message from WMS error response XML
|
|
7
|
+
* @param text
|
|
8
|
+
* @param options
|
|
9
|
+
* @returns a string with a human readable message
|
|
10
|
+
*/
|
|
11
|
+
export function parseWMSError(text: string, options): string {
|
|
12
|
+
const parsedXML = XMLLoader.parseTextSync?.(text, options);
|
|
13
|
+
const serviceExceptionXML =
|
|
14
|
+
parsedXML?.ServiceExceptionReport?.ServiceException ||
|
|
15
|
+
parsedXML?.['ogc:ServiceExceptionReport']?.['ogc:ServiceException'];
|
|
16
|
+
// Sigh, can be either a string or an object
|
|
17
|
+
const message =
|
|
18
|
+
typeof serviceExceptionXML === 'string'
|
|
19
|
+
? serviceExceptionXML
|
|
20
|
+
: serviceExceptionXML.value || serviceExceptionXML.code || 'Unknown error';
|
|
21
|
+
return message;
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
4
|
+
|
|
5
|
+
/** WMS Feature info - response to a WMS `GetFeatureInfo` request */
|
|
6
|
+
export type WMSFeatureInfo = {
|
|
7
|
+
features: WMSFeature[];
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type WMSFeature = {
|
|
11
|
+
attributes: Record<string, number | string>;
|
|
12
|
+
type: string;
|
|
13
|
+
bounds: {top: number; bottom: number; left: number; right: number};
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Parses a typed data structure from raw XML for `GetFeatureInfo` response
|
|
18
|
+
* @note Error handlings is fairly weak
|
|
19
|
+
*/
|
|
20
|
+
export function parseWMSFeatureInfo(text: string, options): WMSFeatureInfo {
|
|
21
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
22
|
+
const xmlFeatureInfo: any = parsedXML.FeatureInfoResponse?.FIELDS || [];
|
|
23
|
+
|
|
24
|
+
const xmlFeatures = Array.isArray(xmlFeatureInfo) ? xmlFeatureInfo : [xmlFeatureInfo];
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
features: xmlFeatures.map((xmlFeature) => extractFeature(xmlFeature))
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function extractFeature(xmlFeature: any) {
|
|
32
|
+
const xmlFields = xmlFeature || {};
|
|
33
|
+
// TODO - not correct
|
|
34
|
+
return {
|
|
35
|
+
attributes: xmlFields,
|
|
36
|
+
type: '',
|
|
37
|
+
bounds: {bottom: 0, top: 0, left: 0, right: 0}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {XMLLoader} from '@loaders.gl/xml';
|
|
4
|
+
|
|
5
|
+
/** Layer description - response to a WMS `DescribeLayer` request */
|
|
6
|
+
export type WMSLayerDescription = {
|
|
7
|
+
layers: {}[];
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Parses a typed data structure from raw XML for `GetFeatureInfo` response
|
|
12
|
+
* @note Error handlings is fairly weak
|
|
13
|
+
*/
|
|
14
|
+
export function parseWMSLayerDescription(text: string, options): WMSLayerDescription {
|
|
15
|
+
const parsedXML = XMLLoader.parseTextSync(text, options);
|
|
16
|
+
// TODO - implement parser
|
|
17
|
+
return parsedXML as unknown as WMSLayerDescription;
|
|
18
|
+
}
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
3
|
import {ImageType} from '@loaders.gl/images';
|
|
4
|
-
import type {ImageSourceMetadata, GetImageParameters} from '
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export
|
|
4
|
+
import type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';
|
|
5
|
+
import type {ImageSourceProps} from '../../sources/image-source';
|
|
6
|
+
import {ImageSource} from '../../sources/image-source';
|
|
7
|
+
|
|
8
|
+
export type ArcGISImageServerProps = ImageSourceProps & {
|
|
9
|
+
url: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ArcGIS ImageServer
|
|
14
|
+
* Note - exports a big API, that could be exposed here if there is a use case
|
|
15
|
+
* @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm
|
|
16
|
+
*/
|
|
17
|
+
export class ArcGISImageServer extends ImageSource {
|
|
9
18
|
static type: 'arcgis-image-server' = 'arcgis-image-server';
|
|
10
19
|
static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');
|
|
11
20
|
|
|
12
|
-
props:
|
|
13
|
-
fetch: (url: string, options?: RequestInit) => Promise<Response>;
|
|
21
|
+
props: ArcGISImageServerProps;
|
|
14
22
|
|
|
15
|
-
constructor(props:
|
|
16
|
-
super();
|
|
17
|
-
this.props =
|
|
18
|
-
this.fetch = getFetchFunction(this.props);
|
|
23
|
+
constructor(props: ArcGISImageServerProps) {
|
|
24
|
+
super(props);
|
|
25
|
+
this.props = props;
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
// ImageSource (normalized endpoints)
|
|
22
29
|
|
|
23
30
|
async getMetadata(): Promise<ImageSourceMetadata> {
|
|
24
|
-
return (await this.
|
|
31
|
+
return (await this.metadata()) as ImageSourceMetadata;
|
|
25
32
|
// TODO - normalize metadata
|
|
26
33
|
}
|
|
27
34
|
|
|
@@ -33,7 +40,7 @@ export class ArcGISImageService extends ImageSource {
|
|
|
33
40
|
|
|
34
41
|
// ImageServer endpoints
|
|
35
42
|
|
|
36
|
-
async
|
|
43
|
+
async metadata(): Promise<unknown> {
|
|
37
44
|
// We just need a JSON parsing...
|
|
38
45
|
// return this.getUrl({path: '', ...options});
|
|
39
46
|
throw new Error('not implemented');
|
|
@@ -68,18 +75,22 @@ export class ArcGISImageService extends ImageSource {
|
|
|
68
75
|
|
|
69
76
|
// URL creators
|
|
70
77
|
|
|
71
|
-
|
|
72
|
-
return this.props.url
|
|
73
|
-
// return this.getUrl({path: '', ...options});
|
|
78
|
+
metadataURL(options: {parameters?: Record<string, unknown>}): string {
|
|
79
|
+
return `${this.props.url}?f=pjson`;
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
/**
|
|
77
83
|
* Form a URL to an ESRI ImageServer
|
|
78
|
-
// https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?
|
|
84
|
+
// https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?
|
|
85
|
+
// bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&
|
|
86
|
+
// size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&
|
|
87
|
+
// noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&
|
|
88
|
+
// compressionQuality=&bandIds=&mosaicRule=&renderingRule=&
|
|
89
|
+
// f=image
|
|
79
90
|
*/
|
|
80
91
|
exportImageURL(options: {
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
bbox: [number, number, number, number];
|
|
93
|
+
boxSR?: string;
|
|
83
94
|
width: number;
|
|
84
95
|
height: number;
|
|
85
96
|
imageSR?: string;
|
|
@@ -96,11 +107,14 @@ export class ArcGISImageService extends ImageSource {
|
|
|
96
107
|
renderingRule?: never;
|
|
97
108
|
f?: 'image';
|
|
98
109
|
}): string {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
//
|
|
103
|
-
|
|
110
|
+
const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;
|
|
111
|
+
const size = `size=${options.width},${options.height}`;
|
|
112
|
+
const arcgisOptions = {...options, bbox, size};
|
|
113
|
+
// @ts-expect-error
|
|
114
|
+
delete arcgisOptions.width;
|
|
115
|
+
// @ts-expect-error
|
|
116
|
+
delete arcgisOptions.height;
|
|
117
|
+
return this.getUrl('exportImage', arcgisOptions);
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
// INTERNAL METHODS
|
|
@@ -109,8 +123,12 @@ export class ArcGISImageService extends ImageSource {
|
|
|
109
123
|
* @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?
|
|
110
124
|
* @note if override is common, maybe add a callback prop?
|
|
111
125
|
* */
|
|
112
|
-
protected getUrl(
|
|
113
|
-
|
|
126
|
+
protected getUrl(
|
|
127
|
+
path: string,
|
|
128
|
+
options: Record<string, unknown>,
|
|
129
|
+
extra?: Record<string, unknown>
|
|
130
|
+
): string {
|
|
131
|
+
let url = `${this.props.url}/${path}`;
|
|
114
132
|
let first = true;
|
|
115
133
|
for (const [key, value] of Object.entries(options)) {
|
|
116
134
|
url += first ? '?' : '&';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
export type Service = {name: string; type: string; url: string};
|
|
4
|
+
|
|
5
|
+
type FetchLike = typeof fetch;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* (Recursively) load the service directory from an ArcGIS Server URL
|
|
9
|
+
* @param url
|
|
10
|
+
* @param fetchFile= Optional fetch function override
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export async function getArcGISServices(
|
|
14
|
+
url: string,
|
|
15
|
+
fetchFile: FetchLike = fetch
|
|
16
|
+
): Promise<Service[] | null> {
|
|
17
|
+
if (url.includes('rest/services')) {
|
|
18
|
+
const serverUrl = url.replace(/rest\/services.*$/i, 'rest/services');
|
|
19
|
+
return loadServiceDirectory(serverUrl, fetchFile, []);
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async function loadServiceDirectory(
|
|
25
|
+
serverUrl: string,
|
|
26
|
+
fetch: FetchLike,
|
|
27
|
+
path: string[]
|
|
28
|
+
): Promise<Service[]> {
|
|
29
|
+
const serviceUrl = `${serverUrl}/${path.join('/')}`;
|
|
30
|
+
|
|
31
|
+
const response = await fetch(`${serviceUrl}?f=pjson`);
|
|
32
|
+
const directory = await response.json();
|
|
33
|
+
|
|
34
|
+
const services = extractServices(directory, serviceUrl);
|
|
35
|
+
|
|
36
|
+
const folders = (directory.folders || []) as string[];
|
|
37
|
+
const promises = folders.map((folder) =>
|
|
38
|
+
loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder])
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
for (const folderServices of await Promise.all(promises)) {
|
|
42
|
+
services.push(...folderServices);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return services;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function extractServices(directory: unknown, url: string): Service[] {
|
|
49
|
+
const arcgisServices = ((directory as any).services || []) as {name: string; type: string}[];
|
|
50
|
+
const services: Service[] = [];
|
|
51
|
+
for (const service of arcgisServices) {
|
|
52
|
+
services.push({
|
|
53
|
+
name: service.name,
|
|
54
|
+
type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,
|
|
55
|
+
url: `${url}${service.name}/${service.type}`
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return services;
|
|
59
|
+
}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
|
+
import {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
3
4
|
import type {ImageType} from '@loaders.gl/images';
|
|
4
5
|
import {ImageLoader} from '@loaders.gl/images';
|
|
5
6
|
|
|
6
|
-
import type {ImageSourceMetadata, GetImageParameters} from '
|
|
7
|
-
import {ImageSource} from '
|
|
7
|
+
import type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';
|
|
8
|
+
import {ImageSource} from '../../sources/image-source';
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/** Template URL string should contain `${width}` etc which will be substituted. */
|
|
11
|
+
export type ImageServiceProps = {
|
|
12
|
+
/** Base URL to the service */
|
|
13
|
+
url: string;
|
|
14
|
+
/** Any load options to the loaders.gl Loaders used by the WMSService methods */
|
|
15
|
+
loadOptions?: LoaderOptions;
|
|
12
16
|
};
|
|
13
17
|
|
|
14
18
|
/**
|
|
@@ -16,15 +20,15 @@ export type AdHocImageServiceProps = {
|
|
|
16
20
|
* ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources
|
|
17
21
|
* Accepts a template url string and builds requests URLs
|
|
18
22
|
*/
|
|
19
|
-
export class
|
|
23
|
+
export class ImageService extends ImageSource {
|
|
20
24
|
static type: 'template' = 'template';
|
|
21
25
|
static testURL = (url: string): boolean => url.toLowerCase().includes('{');
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
props: ImageServiceProps;
|
|
24
28
|
|
|
25
|
-
constructor(props:
|
|
26
|
-
super();
|
|
27
|
-
this.
|
|
29
|
+
constructor(props: ImageServiceProps) {
|
|
30
|
+
super(props);
|
|
31
|
+
this.props = props;
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
// IMAGE SOURCE API
|
|
@@ -36,7 +40,7 @@ export class AdHocImageService extends ImageSource {
|
|
|
36
40
|
async getImage(parameters: GetImageParameters): Promise<ImageType> {
|
|
37
41
|
const granularParameters = this.getGranularParameters(parameters);
|
|
38
42
|
const url = this.getURLFromTemplate(granularParameters);
|
|
39
|
-
const response = await fetch(url);
|
|
43
|
+
const response = await this.fetch(url);
|
|
40
44
|
const arrayBuffer = await response.arrayBuffer();
|
|
41
45
|
return await ImageLoader.parse(arrayBuffer);
|
|
42
46
|
}
|
|
@@ -49,12 +53,14 @@ export class AdHocImageService extends ImageSource {
|
|
|
49
53
|
return {...parameters, east, north, south, west};
|
|
50
54
|
}
|
|
51
55
|
|
|
56
|
+
/** Supports both ${} and {} notations */
|
|
52
57
|
protected getURLFromTemplate(parameters: Record<string, unknown>): string {
|
|
53
|
-
let url = this.
|
|
58
|
+
let url = this.props.url;
|
|
54
59
|
for (const [key, value] of Object.entries(parameters)) {
|
|
55
60
|
// TODO - parameter could be repeated
|
|
56
61
|
// const regex = new RegExp(`\${${key}}`, 'g');
|
|
57
62
|
url = url.replace(`\${${key}}`, String(value));
|
|
63
|
+
url = url.replace(`{${key}}`, String(value));
|
|
58
64
|
}
|
|
59
65
|
return url;
|
|
60
66
|
}
|
|
File without changes
|