@loaders.gl/i3s 4.1.0-alpha.9 → 4.2.0-alpha.1
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/arcgis-webscene-loader.js +1 -1
- package/dist/dist.dev.js +117 -12
- package/dist/i3s-attribute-loader.js +1 -1
- package/dist/i3s-building-scene-layer-loader.js +1 -1
- package/dist/i3s-content-loader.js +1 -1
- package/dist/i3s-content-worker-node.js +33 -33
- package/dist/i3s-content-worker-node.js.map +3 -3
- package/dist/i3s-content-worker.js +9 -6
- package/dist/i3s-loader.js +1 -1
- package/dist/i3s-node-page-loader.js +1 -1
- package/dist/i3s-slpk-loader.js +1 -1
- package/dist/index.cjs +9 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts +10 -0
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -1
- package/dist/lib/parsers/parse-arcgis-webscene.js +8 -1
- package/dist/lib/parsers/parse-arcgis-webscene.js.map +1 -1
- package/package.json +12 -12
- package/src/index.ts +1 -0
- package/src/lib/parsers/parse-arcgis-webscene.ts +17 -1
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
);
|
|
107
107
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
108
108
|
} else {
|
|
109
|
-
globalThis._loadersgl_.version = "4.
|
|
109
|
+
globalThis._loadersgl_.version = "4.2.0-alpha.1";
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
return globalThis._loadersgl_.version;
|
|
@@ -956,6 +956,9 @@
|
|
|
956
956
|
return true;
|
|
957
957
|
}
|
|
958
958
|
function concatenateArrayBuffers(...sources) {
|
|
959
|
+
return concatenateArrayBuffersFromArray(sources);
|
|
960
|
+
}
|
|
961
|
+
function concatenateArrayBuffersFromArray(sources) {
|
|
959
962
|
const sourceArrays = sources.map(
|
|
960
963
|
(source2) => source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2
|
|
961
964
|
);
|
|
@@ -1439,7 +1442,7 @@
|
|
|
1439
1442
|
var navigator_ = globalThis.navigator || {};
|
|
1440
1443
|
|
|
1441
1444
|
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
|
|
1442
|
-
var VERSION2 = true ? "4.
|
|
1445
|
+
var VERSION2 = true ? "4.2.0-alpha.1" : "untranspiled source";
|
|
1443
1446
|
var isBrowser4 = isBrowser3();
|
|
1444
1447
|
|
|
1445
1448
|
// ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
|
|
@@ -5307,7 +5310,7 @@
|
|
|
5307
5310
|
_defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
|
|
5308
5311
|
|
|
5309
5312
|
// ../images/src/lib/utils/version.ts
|
|
5310
|
-
var VERSION3 = true ? "4.
|
|
5313
|
+
var VERSION3 = true ? "4.2.0-alpha.1" : "latest";
|
|
5311
5314
|
|
|
5312
5315
|
// ../images/src/lib/category-api/image-type.ts
|
|
5313
5316
|
var parseImageNode = globalThis.loaders?.parseImageNode;
|
|
@@ -5713,7 +5716,7 @@
|
|
|
5713
5716
|
};
|
|
5714
5717
|
|
|
5715
5718
|
// ../draco/src/lib/utils/version.ts
|
|
5716
|
-
var VERSION4 = true ? "4.
|
|
5719
|
+
var VERSION4 = true ? "4.2.0-alpha.1" : "latest";
|
|
5717
5720
|
|
|
5718
5721
|
// ../draco/src/draco-loader.ts
|
|
5719
5722
|
var DracoLoader = {
|
|
@@ -6316,7 +6319,7 @@
|
|
|
6316
6319
|
}
|
|
6317
6320
|
|
|
6318
6321
|
// ../textures/src/lib/utils/version.ts
|
|
6319
|
-
var VERSION5 = true ? "4.
|
|
6322
|
+
var VERSION5 = true ? "4.2.0-alpha.1" : "latest";
|
|
6320
6323
|
|
|
6321
6324
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
6322
6325
|
var BASIS_EXTERNAL_LIBRARIES = {
|
|
@@ -7844,7 +7847,7 @@
|
|
|
7844
7847
|
}
|
|
7845
7848
|
|
|
7846
7849
|
// src/i3s-content-loader.ts
|
|
7847
|
-
var VERSION6 = true ? "4.
|
|
7850
|
+
var VERSION6 = true ? "4.2.0-alpha.1" : "latest";
|
|
7848
7851
|
var I3SContentLoader = {
|
|
7849
7852
|
name: "I3S Content (Indexed Scene Layers)",
|
|
7850
7853
|
id: "i3s-content",
|
package/dist/i3s-loader.js
CHANGED
|
@@ -3,7 +3,7 @@ import { I3SContentLoader } from "./i3s-content-loader.js";
|
|
|
3
3
|
import { normalizeTileData, normalizeTilesetData } from "./lib/parsers/parse-i3s.js";
|
|
4
4
|
import { COORDINATE_SYSTEM } from "./lib/parsers/constants.js";
|
|
5
5
|
import { getUrlWithoutParams } from "./lib/utils/url-utils.js";
|
|
6
|
-
const VERSION = typeof "4.
|
|
6
|
+
const VERSION = typeof "4.2.0-alpha.1" !== 'undefined' ? "4.2.0-alpha.1" : 'latest';
|
|
7
7
|
const TILESET_REGEX = /layers\/[0-9]+$/;
|
|
8
8
|
const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
9
9
|
const SLPK_HEX = '504b0304';
|
package/dist/i3s-slpk-loader.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataViewFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
import { parseSLPKArchive } from "./lib/parsers/parse-slpk/parse-slpk.js";
|
|
3
|
-
const VERSION = typeof "4.
|
|
3
|
+
const VERSION = typeof "4.2.0-alpha.1" !== 'undefined' ? "4.2.0-alpha.1" : 'latest';
|
|
4
4
|
export const SLPKLoader = {
|
|
5
5
|
name: 'I3S SLPK (Scene Layer Package)',
|
|
6
6
|
id: 'slpk',
|
package/dist/index.cjs
CHANGED
|
@@ -27,6 +27,7 @@ __export(src_exports, {
|
|
|
27
27
|
I3SContentLoader: () => I3SContentLoader,
|
|
28
28
|
I3SLoader: () => I3SLoader,
|
|
29
29
|
I3SNodePageLoader: () => I3SNodePageLoader,
|
|
30
|
+
LayerError: () => LayerError,
|
|
30
31
|
SLPKLoader: () => SLPKLoader,
|
|
31
32
|
customizeColors: () => customizeColors,
|
|
32
33
|
loadFeatureAttributes: () => loadFeatureAttributes,
|
|
@@ -1420,12 +1421,19 @@ var SUPPORTED_LAYERS_TYPES = [
|
|
|
1420
1421
|
];
|
|
1421
1422
|
var NO_AVAILABLE_SUPPORTED_LAYERS_ERROR = "NO_AVAILABLE_SUPPORTED_LAYERS_ERROR";
|
|
1422
1423
|
var NOT_SUPPORTED_CRS_ERROR = "NOT_SUPPORTED_CRS_ERROR";
|
|
1424
|
+
var LayerError = class extends Error {
|
|
1425
|
+
constructor(message, details) {
|
|
1426
|
+
super(message);
|
|
1427
|
+
this.details = details;
|
|
1428
|
+
this.name = "LayerError";
|
|
1429
|
+
}
|
|
1430
|
+
};
|
|
1423
1431
|
async function parseWebscene(data) {
|
|
1424
1432
|
const layer0 = JSON.parse(new TextDecoder().decode(data));
|
|
1425
1433
|
const { operationalLayers } = layer0;
|
|
1426
1434
|
const { layers, unsupportedLayers } = await parseOperationalLayers(operationalLayers, true);
|
|
1427
1435
|
if (!layers.length) {
|
|
1428
|
-
throw new
|
|
1436
|
+
throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
1429
1437
|
}
|
|
1430
1438
|
return {
|
|
1431
1439
|
header: layer0,
|
package/dist/index.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export { I3SNodePageLoader } from './i3s-node-page-loader';
|
|
|
10
10
|
export { ArcGISWebSceneLoader } from './arcgis-webscene-loader';
|
|
11
11
|
export type { SLPKArchive } from './lib/parsers/parse-slpk/slpk-archieve';
|
|
12
12
|
export { parseSLPKArchive } from './lib/parsers/parse-slpk/parse-slpk';
|
|
13
|
+
export { LayerError } from './lib/parsers/parse-arcgis-webscene';
|
|
13
14
|
export { customizeColors } from './lib/utils/customize-colors';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D,YAAY,EAAC,WAAW,EAAC,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D,YAAY,EAAC,WAAW,EAAC,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,5 +7,6 @@ export { I3SBuildingSceneLayerLoader } from "./i3s-building-scene-layer-loader.j
|
|
|
7
7
|
export { I3SNodePageLoader } from "./i3s-node-page-loader.js";
|
|
8
8
|
export { ArcGISWebSceneLoader } from "./arcgis-webscene-loader.js";
|
|
9
9
|
export { parseSLPKArchive } from "./lib/parsers/parse-slpk/parse-slpk.js";
|
|
10
|
+
export { LayerError } from "./lib/parsers/parse-arcgis-webscene.js";
|
|
10
11
|
export { customizeColors } from "./lib/utils/customize-colors.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["COORDINATE_SYSTEM","I3SLoader","SLPKLoader","I3SContentLoader","I3SAttributeLoader","loadFeatureAttributes","I3SBuildingSceneLayerLoader","I3SNodePageLoader","ArcGISWebSceneLoader","parseSLPKArchive","customizeColors"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n I3STilesetHeader,\n I3STileContent,\n I3STileHeader,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\nexport type {I3SLoaderOptions} from './i3s-loader';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGISWebSceneLoader} from './arcgis-webscene-loader';\n\nexport type {SLPKArchive} from './lib/parsers/parse-slpk/slpk-archieve';\nexport {parseSLPKArchive} from './lib/parsers/parse-slpk/parse-slpk';\nexport {customizeColors} from './lib/utils/customize-colors';\n"],"mappings":"SAyCQA,iBAAiB;AAAA,SAEjBC,SAAS;AAAA,SACTC,UAAU;AAAA,SACVC,gBAAgB;AAAA,SAChBC,kBAAkB,EAAEC,qBAAqB;AAAA,SACzCC,2BAA2B;AAAA,SAC3BC,iBAAiB;AAAA,SACjBC,oBAAoB;AAAA,SAGpBC,gBAAgB;AAAA,SAChBC,eAAe"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["COORDINATE_SYSTEM","I3SLoader","SLPKLoader","I3SContentLoader","I3SAttributeLoader","loadFeatureAttributes","I3SBuildingSceneLayerLoader","I3SNodePageLoader","ArcGISWebSceneLoader","parseSLPKArchive","LayerError","customizeColors"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n I3STilesetHeader,\n I3STileContent,\n I3STileHeader,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\nexport type {I3SLoaderOptions} from './i3s-loader';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGISWebSceneLoader} from './arcgis-webscene-loader';\n\nexport type {SLPKArchive} from './lib/parsers/parse-slpk/slpk-archieve';\nexport {parseSLPKArchive} from './lib/parsers/parse-slpk/parse-slpk';\nexport {LayerError} from './lib/parsers/parse-arcgis-webscene';\nexport {customizeColors} from './lib/utils/customize-colors';\n"],"mappings":"SAyCQA,iBAAiB;AAAA,SAEjBC,SAAS;AAAA,SACTC,UAAU;AAAA,SACVC,gBAAgB;AAAA,SAChBC,kBAAkB,EAAEC,qBAAqB;AAAA,SACzCC,2BAA2B;AAAA,SAC3BC,iBAAiB;AAAA,SACjBC,oBAAoB;AAAA,SAGpBC,gBAAgB;AAAA,SAChBC,UAAU;AAAA,SACVC,eAAe"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { ArcGISWebSceneData } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Provides additional information in the exception Error object, e.g. unsupported layer types.
|
|
4
|
+
* @param message - message used in the Error object
|
|
5
|
+
* @param details - additional information that can be used to handle the exception.
|
|
6
|
+
* @example throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
7
|
+
*/
|
|
8
|
+
export declare class LayerError extends Error {
|
|
9
|
+
details: unknown;
|
|
10
|
+
constructor(message: string, details: unknown);
|
|
11
|
+
}
|
|
2
12
|
/**
|
|
3
13
|
* Parses ArcGIS WebScene
|
|
4
14
|
* @param data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-arcgis-webscene.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-arcgis-webscene.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AA2BtE;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAclF"}
|
|
1
|
+
{"version":3,"file":"parse-arcgis-webscene.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-arcgis-webscene.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AA2BtE;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAG1B,OAAO,EAAE,OAAO;gBADvB,OAAO,EAAE,MAAM,EACR,OAAO,EAAE,OAAO;CAK1B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAclF"}
|
|
@@ -7,6 +7,13 @@ const GROUP_LAYER = 'GroupLayer';
|
|
|
7
7
|
const SUPPORTED_LAYERS_TYPES = [ARCGIS_SCENE_SERVER_LAYER_TYPE, INTEGRATED_MESH_LAYER, BUILDING_SCENE_LAYER, GROUP_LAYER];
|
|
8
8
|
const NO_AVAILABLE_SUPPORTED_LAYERS_ERROR = 'NO_AVAILABLE_SUPPORTED_LAYERS_ERROR';
|
|
9
9
|
const NOT_SUPPORTED_CRS_ERROR = 'NOT_SUPPORTED_CRS_ERROR';
|
|
10
|
+
export class LayerError extends Error {
|
|
11
|
+
constructor(message, details) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.details = details;
|
|
14
|
+
this.name = 'LayerError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
10
17
|
export async function parseWebscene(data) {
|
|
11
18
|
const layer0 = JSON.parse(new TextDecoder().decode(data));
|
|
12
19
|
const {
|
|
@@ -17,7 +24,7 @@ export async function parseWebscene(data) {
|
|
|
17
24
|
unsupportedLayers
|
|
18
25
|
} = await parseOperationalLayers(operationalLayers, true);
|
|
19
26
|
if (!layers.length) {
|
|
20
|
-
throw new
|
|
27
|
+
throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
21
28
|
}
|
|
22
29
|
return {
|
|
23
30
|
header: layer0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-arcgis-webscene.js","names":["JSONLoader","load","SUPPORTED_WKID","ARCGIS_SCENE_SERVER_LAYER_TYPE","BUILDING_SCENE_LAYER","INTEGRATED_MESH_LAYER","GROUP_LAYER","SUPPORTED_LAYERS_TYPES","NO_AVAILABLE_SUPPORTED_LAYERS_ERROR","NOT_SUPPORTED_CRS_ERROR","parseWebscene","data","layer0","JSON","parse","TextDecoder","decode","operationalLayers","layers","unsupportedLayers","parseOperationalLayers","length","
|
|
1
|
+
{"version":3,"file":"parse-arcgis-webscene.js","names":["JSONLoader","load","SUPPORTED_WKID","ARCGIS_SCENE_SERVER_LAYER_TYPE","BUILDING_SCENE_LAYER","INTEGRATED_MESH_LAYER","GROUP_LAYER","SUPPORTED_LAYERS_TYPES","NO_AVAILABLE_SUPPORTED_LAYERS_ERROR","NOT_SUPPORTED_CRS_ERROR","LayerError","Error","constructor","message","details","name","parseWebscene","data","layer0","JSON","parse","TextDecoder","decode","operationalLayers","layers","unsupportedLayers","parseOperationalLayers","length","header","layersList","needToCheckCRS","index","_layer$layers","layer","isLayerSupported","includes","layerType","checkSupportedIndexCRS","push","childLayers","childUnsupportedLayers","_layerJson$spatialRef","layerJson","url","wkid","spatialReference","error"],"sources":["../../../src/lib/parsers/parse-arcgis-webscene.ts"],"sourcesContent":["import {JSONLoader, load} from '@loaders.gl/core';\nimport type {ArcGISWebSceneData, OperationalLayer} from '../../types';\n\n/**\n * WKID, or Well-Known ID, of the CRS. Specify either WKID or WKT of the CRS.\n * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/spatialReference.cmn.md\n */\nconst SUPPORTED_WKID = 4326;\n\nconst ARCGIS_SCENE_SERVER_LAYER_TYPE = 'ArcGISSceneServiceLayer';\nconst BUILDING_SCENE_LAYER = 'BuildingSceneLayer';\nconst INTEGRATED_MESH_LAYER = 'IntegratedMeshLayer';\nconst GROUP_LAYER = 'GroupLayer';\n\n/**\n * Supported layers list\n * Possible operational layers in WebScene: https://developers.arcgis.com/web-scene-specification/objects/operationalLayers/\n */\nconst SUPPORTED_LAYERS_TYPES = [\n ARCGIS_SCENE_SERVER_LAYER_TYPE,\n INTEGRATED_MESH_LAYER,\n BUILDING_SCENE_LAYER,\n GROUP_LAYER\n];\n\nconst NO_AVAILABLE_SUPPORTED_LAYERS_ERROR = 'NO_AVAILABLE_SUPPORTED_LAYERS_ERROR';\nconst NOT_SUPPORTED_CRS_ERROR = 'NOT_SUPPORTED_CRS_ERROR';\n\n/**\n * Provides additional information in the exception Error object, e.g. unsupported layer types.\n * @param message - message used in the Error object\n * @param details - additional information that can be used to handle the exception.\n * @example throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);\n */\nexport class LayerError extends Error {\n constructor(\n message: string,\n public details: unknown\n ) {\n super(message);\n this.name = 'LayerError';\n }\n}\n\n/**\n * Parses ArcGIS WebScene\n * @param data\n */\nexport async function parseWebscene(data: ArrayBuffer): Promise<ArcGISWebSceneData> {\n const layer0 = JSON.parse(new TextDecoder().decode(data));\n const {operationalLayers} = layer0;\n const {layers, unsupportedLayers} = await parseOperationalLayers(operationalLayers, true);\n\n if (!layers.length) {\n throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);\n }\n\n return {\n header: layer0,\n layers,\n unsupportedLayers\n };\n}\n\n/**\n * Recursively parses WebScene operational layers.\n * @param layersList\n */\nasync function parseOperationalLayers(\n layersList: OperationalLayer[],\n needToCheckCRS: boolean\n): Promise<{layers: OperationalLayer[]; unsupportedLayers: OperationalLayer[]}> {\n const layers: OperationalLayer[] = [];\n let unsupportedLayers: OperationalLayer[] = [];\n\n for (let index = 0; index < layersList.length; index++) {\n const layer = layersList[index];\n const isLayerSupported = SUPPORTED_LAYERS_TYPES.includes(layer.layerType);\n\n if (isLayerSupported) {\n if (needToCheckCRS && layer.layerType !== GROUP_LAYER) {\n await checkSupportedIndexCRS(layer);\n needToCheckCRS = false;\n }\n\n layers.push(layer);\n } else {\n unsupportedLayers.push(layer);\n }\n\n if (layer.layers?.length) {\n const {layers: childLayers, unsupportedLayers: childUnsupportedLayers} =\n await parseOperationalLayers(layer.layers, needToCheckCRS);\n layer.layers = childLayers;\n unsupportedLayers = [...unsupportedLayers, ...childUnsupportedLayers];\n }\n }\n\n return {layers, unsupportedLayers};\n}\n\n/**\n * Check if layer has supported CRS\n * @param layer\n */\nasync function checkSupportedIndexCRS(layer: OperationalLayer) {\n try {\n const layerJson = await load(layer.url, JSONLoader);\n // @ts-expect-error\n const wkid = layerJson?.spatialReference?.wkid;\n\n if (wkid !== SUPPORTED_WKID) {\n throw new Error(NOT_SUPPORTED_CRS_ERROR);\n }\n } catch (error) {\n throw error;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/i3s",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0-alpha.1",
|
|
4
4
|
"description": "i3s .",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"module": "dist/index.js",
|
|
24
24
|
"exports": {
|
|
25
25
|
".": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
26
27
|
"import": "./dist/index.js",
|
|
27
|
-
"require": "./dist/index.cjs"
|
|
28
|
-
"types": "./dist/index.d.ts"
|
|
28
|
+
"require": "./dist/index.cjs"
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"sideEffects": false,
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
"build-worker-node": "esbuild src/workers/i3s-content-worker-node.ts --outfile=dist/i3s-content-worker-node.js --platform=node --target=node16 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@loaders.gl/compression": "4.
|
|
45
|
-
"@loaders.gl/crypto": "4.
|
|
46
|
-
"@loaders.gl/draco": "4.
|
|
47
|
-
"@loaders.gl/images": "4.
|
|
48
|
-
"@loaders.gl/loader-utils": "4.
|
|
49
|
-
"@loaders.gl/schema": "4.
|
|
50
|
-
"@loaders.gl/textures": "4.
|
|
51
|
-
"@loaders.gl/tiles": "4.
|
|
44
|
+
"@loaders.gl/compression": "4.2.0-alpha.1",
|
|
45
|
+
"@loaders.gl/crypto": "4.2.0-alpha.1",
|
|
46
|
+
"@loaders.gl/draco": "4.2.0-alpha.1",
|
|
47
|
+
"@loaders.gl/images": "4.2.0-alpha.1",
|
|
48
|
+
"@loaders.gl/loader-utils": "4.2.0-alpha.1",
|
|
49
|
+
"@loaders.gl/schema": "4.2.0-alpha.1",
|
|
50
|
+
"@loaders.gl/textures": "4.2.0-alpha.1",
|
|
51
|
+
"@loaders.gl/tiles": "4.2.0-alpha.1",
|
|
52
52
|
"@math.gl/core": "^4.0.0",
|
|
53
53
|
"@math.gl/culling": "^4.0.0",
|
|
54
54
|
"@math.gl/geospatial": "^4.0.0"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@loaders.gl/core": "^4.0.0"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "d4da81f4d8fb2a3b43b0e025109cf7ccfb317d4c"
|
|
60
60
|
}
|
package/src/index.ts
CHANGED
|
@@ -51,4 +51,5 @@ export {ArcGISWebSceneLoader} from './arcgis-webscene-loader';
|
|
|
51
51
|
|
|
52
52
|
export type {SLPKArchive} from './lib/parsers/parse-slpk/slpk-archieve';
|
|
53
53
|
export {parseSLPKArchive} from './lib/parsers/parse-slpk/parse-slpk';
|
|
54
|
+
export {LayerError} from './lib/parsers/parse-arcgis-webscene';
|
|
54
55
|
export {customizeColors} from './lib/utils/customize-colors';
|
|
@@ -26,6 +26,22 @@ const SUPPORTED_LAYERS_TYPES = [
|
|
|
26
26
|
const NO_AVAILABLE_SUPPORTED_LAYERS_ERROR = 'NO_AVAILABLE_SUPPORTED_LAYERS_ERROR';
|
|
27
27
|
const NOT_SUPPORTED_CRS_ERROR = 'NOT_SUPPORTED_CRS_ERROR';
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Provides additional information in the exception Error object, e.g. unsupported layer types.
|
|
31
|
+
* @param message - message used in the Error object
|
|
32
|
+
* @param details - additional information that can be used to handle the exception.
|
|
33
|
+
* @example throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
34
|
+
*/
|
|
35
|
+
export class LayerError extends Error {
|
|
36
|
+
constructor(
|
|
37
|
+
message: string,
|
|
38
|
+
public details: unknown
|
|
39
|
+
) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.name = 'LayerError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
29
45
|
/**
|
|
30
46
|
* Parses ArcGIS WebScene
|
|
31
47
|
* @param data
|
|
@@ -36,7 +52,7 @@ export async function parseWebscene(data: ArrayBuffer): Promise<ArcGISWebSceneDa
|
|
|
36
52
|
const {layers, unsupportedLayers} = await parseOperationalLayers(operationalLayers, true);
|
|
37
53
|
|
|
38
54
|
if (!layers.length) {
|
|
39
|
-
throw new
|
|
55
|
+
throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
40
56
|
}
|
|
41
57
|
|
|
42
58
|
return {
|