@deck.gl/geo-layers 8.9.7 → 8.9.9

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 (42) hide show
  1. package/dist/dist.dev.js +117 -16
  2. package/dist/es5/tileset-2d/tile-2d-header.js +17 -1
  3. package/dist/es5/tileset-2d/tile-2d-header.js.map +1 -1
  4. package/dist/esm/tileset-2d/tile-2d-header.js +19 -2
  5. package/dist/esm/tileset-2d/tile-2d-header.js.map +1 -1
  6. package/dist.min.js +56 -56
  7. package/package.json +10 -10
  8. package/src/tileset-2d/tile-2d-header.ts +26 -1
  9. package/typed/tile-3d-layer/utils.d.ts +3 -0
  10. package/typed/tile-3d-layer/utils.d.ts.map +1 -0
  11. package/typed/tile-layer/tileset-2d.d.ts.map +1 -1
  12. package/typed/tile-layer/utils.d.ts +1 -1
  13. package/typed/tile-layer/utils.d.ts.map +1 -1
  14. package/typed/tileset-2d/tile-2d-header.d.ts +5 -1
  15. package/typed/tileset-2d/tile-2d-header.d.ts.map +1 -1
  16. package/typed/geo-cell-layer/GeoCellLayer.js +0 -49
  17. package/typed/great-circle-layer/great-circle-layer.js +0 -29
  18. package/typed/h3-layers/h3-cluster-layer.js +0 -33
  19. package/typed/h3-layers/h3-hexagon-layer.js +0 -251
  20. package/typed/imagery-layer/imagery-layer.d.ts +0 -53
  21. package/typed/imagery-layer/imagery-layer.d.ts.map +0 -1
  22. package/typed/index.js +0 -33
  23. package/typed/mesh-layer/mesh-layer-fragment.glsl.js +0 -55
  24. package/typed/mesh-layer/mesh-layer-vertex.glsl.js +0 -80
  25. package/typed/mesh-layer/mesh-layer.js +0 -110
  26. package/typed/mvt-layer/coordinate-transform.js +0 -41
  27. package/typed/mvt-layer/find-index-binary.js +0 -96
  28. package/typed/mvt-layer/mvt-layer.js +0 -297
  29. package/typed/quadkey-layer/quadkey-layer.js +0 -18
  30. package/typed/quadkey-layer/quadkey-utils.js +0 -26
  31. package/typed/s2-layer/s2-geometry.js +0 -123
  32. package/typed/s2-layer/s2-layer.js +0 -37
  33. package/typed/s2-layer/s2-utils.js +0 -88
  34. package/typed/terrain-layer/terrain-layer.js +0 -226
  35. package/typed/tile-3d-layer/tile-3d-layer.js +0 -294
  36. package/typed/tile-layer/tile-2d-header.js +0 -113
  37. package/typed/tile-layer/tile-2d-traversal.js +0 -181
  38. package/typed/tile-layer/tile-layer.js +0 -192
  39. package/typed/tile-layer/tileset-2d.js +0 -399
  40. package/typed/tile-layer/types.js +0 -1
  41. package/typed/tile-layer/utils.js +0 -197
  42. package/typed/trips-layer/trips-layer.js +0 -92
package/dist/dist.dev.js CHANGED
@@ -3060,7 +3060,7 @@ var __exports__ = (() => {
3060
3060
  }
3061
3061
 
3062
3062
  // ../../node_modules/@loaders.gl/xml/dist/esm/xml-loader.js
3063
- var VERSION = true ? "3.3.1" : "latest";
3063
+ var VERSION = true ? "3.3.3" : "latest";
3064
3064
  var XMLLoader = {
3065
3065
  name: "XML",
3066
3066
  id: "xml",
@@ -3172,7 +3172,7 @@ var __exports__ = (() => {
3172
3172
  }
3173
3173
 
3174
3174
  // ../../node_modules/@loaders.gl/wms/dist/esm/wms-error-loader.js
3175
- var VERSION2 = true ? "3.3.1" : "latest";
3175
+ var VERSION2 = true ? "3.3.3" : "latest";
3176
3176
  var WMSErrorLoader = {
3177
3177
  id: "wms-error",
3178
3178
  name: "WMS Error",
@@ -3208,7 +3208,7 @@ var __exports__ = (() => {
3208
3208
  }
3209
3209
 
3210
3210
  // ../../node_modules/@loaders.gl/wms/dist/esm/wms-capabilities-loader.js
3211
- var VERSION3 = true ? "3.3.1" : "latest";
3211
+ var VERSION3 = true ? "3.3.3" : "latest";
3212
3212
  var WMSCapabilitiesLoader = {
3213
3213
  id: "wms-capabilities",
3214
3214
  name: "WMS Capabilities",
@@ -3233,7 +3233,7 @@ var __exports__ = (() => {
3233
3233
  };
3234
3234
 
3235
3235
  // ../../node_modules/@loaders.gl/images/dist/esm/lib/utils/version.js
3236
- var VERSION4 = true ? "3.3.1" : "latest";
3236
+ var VERSION4 = true ? "3.3.3" : "latest";
3237
3237
 
3238
3238
  // ../../node_modules/@loaders.gl/loader-utils/dist/esm/lib/env-utils/assert.js
3239
3239
  function assert2(condition, message) {
@@ -3283,7 +3283,7 @@ var __exports__ = (() => {
3283
3283
 
3284
3284
  // ../../node_modules/@loaders.gl/worker-utils/dist/esm/lib/library-utils/library-utils.js
3285
3285
  var node = __toESM(require_require_utils());
3286
- var VERSION5 = true ? "3.3.1" : LATEST;
3286
+ var VERSION5 = true ? "3.3.3" : LATEST;
3287
3287
  var loadLibraryPromises = {};
3288
3288
  async function loadLibrary(libraryUrl) {
3289
3289
  let moduleName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
@@ -7892,6 +7892,19 @@ var __exports__ = (() => {
7892
7892
  this._isCancelled = false;
7893
7893
  this._needsReload = false;
7894
7894
  }
7895
+ get bbox() {
7896
+ return this._bbox;
7897
+ }
7898
+ set bbox(value) {
7899
+ if (this._bbox)
7900
+ return;
7901
+ this._bbox = value;
7902
+ if ("west" in value) {
7903
+ this.boundingBox = [[value.west, value.south], [value.east, value.north]];
7904
+ } else {
7905
+ this.boundingBox = [[value.left, value.top], [value.right, value.bottom]];
7906
+ }
7907
+ }
7895
7908
  get data() {
7896
7909
  return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;
7897
7910
  }
@@ -8139,8 +8152,8 @@ var __exports__ = (() => {
8139
8152
  return this;
8140
8153
  }
8141
8154
  expand(point) {
8142
- const scratchPoint = scratchVector2.from(point);
8143
- const radius = scratchPoint.subtract(this.center).magnitude();
8155
+ const scratchPoint2 = scratchVector2.from(point);
8156
+ const radius = scratchPoint2.subtract(this.center).magnitude();
8144
8157
  if (radius > this.radius) {
8145
8158
  this.radius = radius;
8146
8159
  }
@@ -8157,8 +8170,8 @@ var __exports__ = (() => {
8157
8170
  return d * d;
8158
8171
  }
8159
8172
  distanceTo(point) {
8160
- const scratchPoint = scratchVector2.from(point);
8161
- const delta = scratchPoint.subtract(this.center);
8173
+ const scratchPoint2 = scratchVector2.from(point);
8174
+ const delta = scratchPoint2.subtract(this.center);
8162
8175
  return Math.max(0, delta.len() - this.radius);
8163
8176
  }
8164
8177
  intersectPlane(plane) {
@@ -16434,6 +16447,7 @@ void main(void) {
16434
16447
  function defined2(x2) {
16435
16448
  return x2 !== void 0 && x2 !== null;
16436
16449
  }
16450
+ var scratchPoint = new Vector3();
16437
16451
  var scratchScale = new Vector3();
16438
16452
  var scratchNorthWest = new Vector3();
16439
16453
  var scratchSouthEast = new Vector3();
@@ -16455,6 +16469,19 @@ void main(void) {
16455
16469
  }
16456
16470
  throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box");
16457
16471
  }
16472
+ function getCartographicBounds(boundingVolumeHeader, boundingVolume) {
16473
+ if (boundingVolumeHeader.box) {
16474
+ return orientedBoundingBoxToCartographicBounds(boundingVolume);
16475
+ }
16476
+ if (boundingVolumeHeader.region) {
16477
+ const [west, south, east, north, minHeight, maxHeight] = boundingVolumeHeader.region;
16478
+ return [[degrees(west), degrees(south), minHeight], [degrees(east), degrees(north), maxHeight]];
16479
+ }
16480
+ if (boundingVolumeHeader.sphere) {
16481
+ return boundingSphereToCartographicBounds(boundingVolume);
16482
+ }
16483
+ throw new Error("Unkown boundingVolume type");
16484
+ }
16458
16485
  function createBox(box, transform2, result) {
16459
16486
  const center = new Vector3(box[0], box[1], box[2]);
16460
16487
  transform2.transform(center, center);
@@ -16500,6 +16527,73 @@ void main(void) {
16500
16527
  }
16501
16528
  return new BoundingSphere(center, radius);
16502
16529
  }
16530
+ function orientedBoundingBoxToCartographicBounds(boundingVolume) {
16531
+ const result = emptyCartographicBounds();
16532
+ const {
16533
+ halfAxes
16534
+ } = boundingVolume;
16535
+ const xAxis = new Vector3(halfAxes.getColumn(0));
16536
+ const yAxis = new Vector3(halfAxes.getColumn(1));
16537
+ const zAxis = new Vector3(halfAxes.getColumn(2));
16538
+ for (let x2 = 0; x2 < 2; x2++) {
16539
+ for (let y2 = 0; y2 < 2; y2++) {
16540
+ for (let z = 0; z < 2; z++) {
16541
+ scratchPoint.copy(boundingVolume.center);
16542
+ scratchPoint.add(xAxis);
16543
+ scratchPoint.add(yAxis);
16544
+ scratchPoint.add(zAxis);
16545
+ addToCartographicBounds(result, scratchPoint);
16546
+ zAxis.negate();
16547
+ }
16548
+ yAxis.negate();
16549
+ }
16550
+ xAxis.negate();
16551
+ }
16552
+ return result;
16553
+ }
16554
+ function boundingSphereToCartographicBounds(boundingVolume) {
16555
+ const result = emptyCartographicBounds();
16556
+ const {
16557
+ center,
16558
+ radius
16559
+ } = boundingVolume;
16560
+ const point = Ellipsoid.WGS84.scaleToGeodeticSurface(center, scratchPoint);
16561
+ let zAxis;
16562
+ if (point) {
16563
+ zAxis = Ellipsoid.WGS84.geodeticSurfaceNormal(point);
16564
+ } else {
16565
+ zAxis = new Vector3(0, 0, 1);
16566
+ }
16567
+ let xAxis = new Vector3(zAxis[2], -zAxis[1], 0);
16568
+ if (xAxis.len() > 0) {
16569
+ xAxis.normalize();
16570
+ } else {
16571
+ xAxis = new Vector3(0, 1, 0);
16572
+ }
16573
+ const yAxis = xAxis.clone().cross(zAxis);
16574
+ for (const axis of [xAxis, yAxis, zAxis]) {
16575
+ scratchScale.copy(axis).scale(radius);
16576
+ for (let dir = 0; dir < 2; dir++) {
16577
+ scratchPoint.copy(center);
16578
+ scratchPoint.add(scratchScale);
16579
+ addToCartographicBounds(result, scratchPoint);
16580
+ scratchScale.negate();
16581
+ }
16582
+ }
16583
+ return result;
16584
+ }
16585
+ function emptyCartographicBounds() {
16586
+ return [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];
16587
+ }
16588
+ function addToCartographicBounds(target, cartesian) {
16589
+ Ellipsoid.WGS84.cartesianToCartographic(cartesian, scratchPoint);
16590
+ target[0][0] = Math.min(target[0][0], scratchPoint[0]);
16591
+ target[0][1] = Math.min(target[0][1], scratchPoint[1]);
16592
+ target[0][2] = Math.min(target[0][2], scratchPoint[2]);
16593
+ target[1][0] = Math.max(target[1][0], scratchPoint[0]);
16594
+ target[1][1] = Math.max(target[1][1], scratchPoint[1]);
16595
+ target[1][2] = Math.max(target[1][2], scratchPoint[2]);
16596
+ }
16503
16597
 
16504
16598
  // ../../node_modules/@loaders.gl/tiles/dist/esm/tileset/helpers/tiles-3d-lod.js
16505
16599
  var scratchPositionNormal = new Vector3();
@@ -16968,6 +17062,7 @@ void main(void) {
16968
17062
  _defineProperty(this, "_expireDate", void 0);
16969
17063
  _defineProperty(this, "_expiredContent", void 0);
16970
17064
  _defineProperty(this, "_shouldRefine", void 0);
17065
+ _defineProperty(this, "_boundingBox", void 0);
16971
17066
  _defineProperty(this, "_distanceToCamera", void 0);
16972
17067
  _defineProperty(this, "_centerZDepth", void 0);
16973
17068
  _defineProperty(this, "_screenSpaceError", void 0);
@@ -17080,6 +17175,12 @@ void main(void) {
17080
17175
  get screenSpaceError() {
17081
17176
  return this._screenSpaceError;
17082
17177
  }
17178
+ get boundingBox() {
17179
+ if (!this._boundingBox) {
17180
+ this._boundingBox = getCartographicBounds(this.header.boundingVolume, this.boundingVolume);
17181
+ }
17182
+ return this._boundingBox;
17183
+ }
17083
17184
  getScreenSpaceError(frameState, useParentLodMetric) {
17084
17185
  switch (this.tileset.type) {
17085
17186
  case TILESET_TYPE.I3S:
@@ -18197,7 +18298,7 @@ void main(void) {
18197
18298
  }
18198
18299
 
18199
18300
  // ../../node_modules/@loaders.gl/3d-tiles/dist/esm/lib/utils/version.js
18200
- var VERSION8 = true ? "3.3.1" : "latest";
18301
+ var VERSION8 = true ? "3.3.3" : "latest";
18201
18302
 
18202
18303
  // ../../node_modules/@loaders.gl/3d-tiles/dist/esm/lib/constants.js
18203
18304
  var TILE3D_TYPE = {
@@ -18226,7 +18327,7 @@ void main(void) {
18226
18327
  }
18227
18328
 
18228
18329
  // ../../node_modules/@loaders.gl/draco/dist/esm/lib/utils/version.js
18229
- var VERSION9 = true ? "3.3.1" : "latest";
18330
+ var VERSION9 = true ? "3.3.3" : "latest";
18230
18331
 
18231
18332
  // ../../node_modules/@loaders.gl/draco/dist/esm/draco-loader.js
18232
18333
  var DEFAULT_DRACO_OPTIONS = {
@@ -20392,13 +20493,13 @@ void main(void) {
20392
20493
  }
20393
20494
 
20394
20495
  // ../../node_modules/@loaders.gl/gltf/dist/esm/lib/utils/version.js
20395
- var VERSION10 = true ? "3.3.1" : "latest";
20496
+ var VERSION10 = true ? "3.3.3" : "latest";
20396
20497
 
20397
20498
  // ../../node_modules/@loaders.gl/textures/dist/esm/lib/utils/version.js
20398
- var VERSION11 = true ? "3.3.1" : "beta";
20499
+ var VERSION11 = true ? "3.3.3" : "beta";
20399
20500
 
20400
20501
  // ../../node_modules/@loaders.gl/textures/dist/esm/lib/parsers/basis-module-loader.js
20401
- var VERSION12 = true ? "3.3.1" : "beta";
20502
+ var VERSION12 = true ? "3.3.3" : "beta";
20402
20503
  var BASIS_CDN_ENCODER_WASM = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION12, "/dist/libs/basis_encoder.wasm");
20403
20504
  var BASIS_CDN_ENCODER_JS = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION12, "/dist/libs/basis_encoder.js");
20404
20505
  var loadBasisTranscoderPromise;
@@ -25311,7 +25412,7 @@ void main(void) {
25311
25412
  }
25312
25413
 
25313
25414
  // ../../node_modules/@loaders.gl/terrain/dist/esm/lib/utils/version.js
25314
- var VERSION13 = true ? "3.3.1" : "latest";
25415
+ var VERSION13 = true ? "3.3.3" : "latest";
25315
25416
 
25316
25417
  // ../../node_modules/@loaders.gl/terrain/dist/esm/terrain-loader.js
25317
25418
  var TerrainLoader = {
@@ -27359,7 +27460,7 @@ void main(void) {
27359
27460
  }
27360
27461
 
27361
27462
  // ../../node_modules/@loaders.gl/mvt/dist/esm/mvt-loader.js
27362
- var VERSION14 = true ? "3.3.1" : "latest";
27463
+ var VERSION14 = true ? "3.3.3" : "latest";
27363
27464
  var DEFAULT_MVT_LOADER_OPTIONS = {
27364
27465
  mvt: {
27365
27466
  shape: "geojson",
@@ -29,15 +29,16 @@ var Tile2DHeader = function () {
29
29
  (0, _defineProperty2.default)(this, "state", void 0);
30
30
  (0, _defineProperty2.default)(this, "layers", void 0);
31
31
  (0, _defineProperty2.default)(this, "id", void 0);
32
- (0, _defineProperty2.default)(this, "bbox", void 0);
33
32
  (0, _defineProperty2.default)(this, "zoom", void 0);
34
33
  (0, _defineProperty2.default)(this, "userData", void 0);
34
+ (0, _defineProperty2.default)(this, "boundingBox", void 0);
35
35
  (0, _defineProperty2.default)(this, "_abortController", void 0);
36
36
  (0, _defineProperty2.default)(this, "_loader", void 0);
37
37
  (0, _defineProperty2.default)(this, "_loaderId", void 0);
38
38
  (0, _defineProperty2.default)(this, "_isLoaded", void 0);
39
39
  (0, _defineProperty2.default)(this, "_isCancelled", void 0);
40
40
  (0, _defineProperty2.default)(this, "_needsReload", void 0);
41
+ (0, _defineProperty2.default)(this, "_bbox", void 0);
41
42
  this.index = index;
42
43
  this.isVisible = false;
43
44
  this.isSelected = false;
@@ -53,6 +54,21 @@ var Tile2DHeader = function () {
53
54
  }
54
55
 
55
56
  (0, _createClass2.default)(Tile2DHeader, [{
57
+ key: "bbox",
58
+ get: function get() {
59
+ return this._bbox;
60
+ },
61
+ set: function set(value) {
62
+ if (this._bbox) return;
63
+ this._bbox = value;
64
+
65
+ if ('west' in value) {
66
+ this.boundingBox = [[value.west, value.south], [value.east, value.north]];
67
+ } else {
68
+ this.boundingBox = [[value.left, value.top], [value.right, value.bottom]];
69
+ }
70
+ }
71
+ }, {
56
72
  key: "data",
57
73
  get: function get() {
58
74
  var _this = this;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","index","isVisible","isSelected","parent","children","content","_loader","undefined","_abortController","_loaderId","_isLoaded","_isCancelled","_needsReload","isLoading","then","data","Boolean","result","byteLength","Number","isFinite","console","error","getData","requestScheduler","onLoad","onError","id","bbox","userData","zoom","loaderId","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","opts","_loadData","abort","isLoaded"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n bbox!: TileBoundingBox; // assigned _always_ with result of `getTileMetadata`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}
1
+ {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","index","isVisible","isSelected","parent","children","content","_loader","undefined","_abortController","_loaderId","_isLoaded","_isCancelled","_needsReload","_bbox","value","boundingBox","west","south","east","north","left","top","right","bottom","isLoading","then","data","Boolean","result","byteLength","Number","isFinite","console","error","getData","requestScheduler","onLoad","onError","id","bbox","userData","zoom","loaderId","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","opts","_loadData","abort","isLoaded"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n boundingBox!: [min: number[], max: number[]]; // assigned _always_ with bbox from `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n private _bbox!: TileBoundingBox;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n /** @deprecated use `boundingBox` instead */\n get bbox(): TileBoundingBox {\n return this._bbox;\n }\n\n // TODO - remove in v9\n set bbox(value: TileBoundingBox) {\n // Only set once from `Tileset2D.getTileMetadata`\n if (this._bbox) return;\n\n this._bbox = value;\n if ('west' in value) {\n this.boundingBox = [\n [value.west, value.south],\n [value.east, value.north]\n ];\n } else {\n this.boundingBox = [\n [value.left, value.top],\n [value.right, value.bottom]\n ];\n }\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}
@@ -19,12 +19,12 @@ export class Tile2DHeader {
19
19
 
20
20
  _defineProperty(this, "id", void 0);
21
21
 
22
- _defineProperty(this, "bbox", void 0);
23
-
24
22
  _defineProperty(this, "zoom", void 0);
25
23
 
26
24
  _defineProperty(this, "userData", void 0);
27
25
 
26
+ _defineProperty(this, "boundingBox", void 0);
27
+
28
28
  _defineProperty(this, "_abortController", void 0);
29
29
 
30
30
  _defineProperty(this, "_loader", void 0);
@@ -37,6 +37,8 @@ export class Tile2DHeader {
37
37
 
38
38
  _defineProperty(this, "_needsReload", void 0);
39
39
 
40
+ _defineProperty(this, "_bbox", void 0);
41
+
40
42
  this.index = index;
41
43
  this.isVisible = false;
42
44
  this.isSelected = false;
@@ -51,6 +53,21 @@ export class Tile2DHeader {
51
53
  this._needsReload = false;
52
54
  }
53
55
 
56
+ get bbox() {
57
+ return this._bbox;
58
+ }
59
+
60
+ set bbox(value) {
61
+ if (this._bbox) return;
62
+ this._bbox = value;
63
+
64
+ if ('west' in value) {
65
+ this.boundingBox = [[value.west, value.south], [value.east, value.north]];
66
+ } else {
67
+ this.boundingBox = [[value.left, value.top], [value.right, value.bottom]];
68
+ }
69
+ }
70
+
54
71
  get data() {
55
72
  return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;
56
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","constructor","index","isVisible","isSelected","parent","children","content","_loader","undefined","_abortController","_loaderId","_isLoaded","_isCancelled","_needsReload","data","isLoading","then","isLoaded","Boolean","needsReload","byteLength","result","Number","isFinite","console","error","_loadData","getData","requestScheduler","onLoad","onError","id","bbox","userData","zoom","loaderId","AbortController","signal","requestToken","scheduleRequest","tile","done","tileData","err","loadData","opts","setNeedsReload","abort"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n bbox!: TileBoundingBox; // assigned _always_ with result of `getTileMetadata`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}
1
+ {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","constructor","index","isVisible","isSelected","parent","children","content","_loader","undefined","_abortController","_loaderId","_isLoaded","_isCancelled","_needsReload","bbox","_bbox","value","boundingBox","west","south","east","north","left","top","right","bottom","data","isLoading","then","isLoaded","Boolean","needsReload","byteLength","result","Number","isFinite","console","error","_loadData","getData","requestScheduler","onLoad","onError","id","userData","zoom","loaderId","AbortController","signal","requestToken","scheduleRequest","tile","done","tileData","err","loadData","opts","setNeedsReload","abort"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n boundingBox!: [min: number[], max: number[]]; // assigned _always_ with bbox from `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n private _bbox!: TileBoundingBox;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n /** @deprecated use `boundingBox` instead */\n get bbox(): TileBoundingBox {\n return this._bbox;\n }\n\n // TODO - remove in v9\n set bbox(value: TileBoundingBox) {\n // Only set once from `Tileset2D.getTileMetadata`\n if (this._bbox) return;\n\n this._bbox = value;\n if ('west' in value) {\n this.boundingBox = [\n [value.west, value.south],\n [value.east, value.north]\n ];\n } else {\n this.boundingBox = [\n [value.left, value.top],\n [value.right, value.bottom]\n ];\n }\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}