@loaders.gl/tiles 4.4.5 → 5.0.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.
Files changed (227) hide show
  1. package/LICENSE +14 -3
  2. package/README.md +110 -1
  3. package/dist/dist.dev.js +6588 -2057
  4. package/dist/dist.min.js +1 -1
  5. package/dist/image-set.d.ts +94 -0
  6. package/dist/image-set.d.ts.map +1 -0
  7. package/dist/image-set.js +243 -0
  8. package/dist/image-set.js.map +1 -0
  9. package/dist/index.cjs +6872 -2160
  10. package/dist/index.cjs.map +3 -4
  11. package/dist/index.d.ts +33 -9
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +18 -8
  14. package/dist/index.js.map +1 -1
  15. package/dist/point-cloud/point-cloud-tile.d.ts +47 -0
  16. package/dist/point-cloud/point-cloud-tile.d.ts.map +1 -0
  17. package/dist/point-cloud/point-cloud-tile.js +70 -0
  18. package/dist/point-cloud/point-cloud-tile.js.map +1 -0
  19. package/dist/point-cloud/point-cloud-tileset.d.ts +131 -0
  20. package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -0
  21. package/dist/point-cloud/point-cloud-tileset.js +510 -0
  22. package/dist/point-cloud/point-cloud-tileset.js.map +1 -0
  23. package/dist/point-cloud/types.d.ts +64 -0
  24. package/dist/point-cloud/types.d.ts.map +1 -0
  25. package/dist/point-cloud/types.js +5 -0
  26. package/dist/point-cloud/types.js.map +1 -0
  27. package/dist/raster-set.d.ts +113 -0
  28. package/dist/raster-set.d.ts.map +1 -0
  29. package/dist/raster-set.js +274 -0
  30. package/dist/raster-set.js.map +1 -0
  31. package/dist/tileset-2d/adapter.d.ts +38 -0
  32. package/dist/tileset-2d/adapter.d.ts.map +1 -0
  33. package/dist/tileset-2d/adapter.js +5 -0
  34. package/dist/tileset-2d/adapter.js.map +1 -0
  35. package/dist/tileset-2d/index.d.ts +7 -0
  36. package/dist/tileset-2d/index.d.ts.map +1 -0
  37. package/dist/tileset-2d/index.js +6 -0
  38. package/dist/tileset-2d/index.js.map +1 -0
  39. package/dist/tileset-2d/tile-2d-header.d.ts +68 -0
  40. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
  41. package/dist/tileset-2d/tile-2d-header.js +181 -0
  42. package/dist/tileset-2d/tile-2d-header.js.map +1 -0
  43. package/dist/tileset-2d/tileset-2d.d.ts +201 -0
  44. package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
  45. package/dist/tileset-2d/tileset-2d.js +532 -0
  46. package/dist/tileset-2d/tileset-2d.js.map +1 -0
  47. package/dist/tileset-2d/types.d.ts +44 -0
  48. package/dist/tileset-2d/types.d.ts.map +1 -0
  49. package/dist/tileset-2d/types.js +5 -0
  50. package/dist/tileset-2d/types.js.map +1 -0
  51. package/dist/tileset-2d.d.ts +2 -0
  52. package/dist/tileset-2d.d.ts.map +1 -0
  53. package/dist/tileset-2d.js +5 -0
  54. package/dist/tileset-2d.js.map +1 -0
  55. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts +60 -0
  56. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts.map +1 -0
  57. package/dist/tileset-3d/common/indexed-archive-tileset-source.js +125 -0
  58. package/dist/tileset-3d/common/indexed-archive-tileset-source.js.map +1 -0
  59. package/dist/{tileset → tileset-3d/common}/tile-3d.d.ts +133 -29
  60. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -0
  61. package/dist/{tileset → tileset-3d/common}/tile-3d.js +282 -77
  62. package/dist/tileset-3d/common/tile-3d.js.map +1 -0
  63. package/dist/tileset-3d/common/tileset-3d.d.ts +317 -0
  64. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -0
  65. package/dist/tileset-3d/common/tileset-3d.js +807 -0
  66. package/dist/tileset-3d/common/tileset-3d.js.map +1 -0
  67. package/dist/tileset-3d/common/tileset-cache.d.ts +29 -0
  68. package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -0
  69. package/dist/{tileset → tileset-3d/common}/tileset-cache.js +12 -4
  70. package/dist/tileset-3d/common/tileset-cache.js.map +1 -0
  71. package/dist/tileset-3d/common/tileset-source.d.ts +204 -0
  72. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -0
  73. package/dist/tileset-3d/common/tileset-source.js +17 -0
  74. package/dist/tileset-3d/common/tileset-source.js.map +1 -0
  75. package/dist/{tileset → tileset-3d/common}/tileset-traverser.d.ts +15 -2
  76. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -0
  77. package/dist/{tileset → tileset-3d/common}/tileset-traverser.js +30 -3
  78. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -0
  79. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +111 -0
  80. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -0
  81. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +340 -0
  82. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -0
  83. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +189 -0
  84. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -0
  85. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +510 -0
  86. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -0
  87. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +43 -0
  88. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -0
  89. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +119 -0
  90. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
  91. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -0
  92. package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.js +3 -0
  93. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -0
  94. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +99 -0
  95. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -0
  96. package/dist/tileset-3d/format-i3s/i3s-source.js +299 -0
  97. package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -0
  98. package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -0
  99. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.js +5 -2
  100. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -0
  101. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.d.ts +2 -2
  102. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -0
  103. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.js +17 -23
  104. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -0
  105. package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.d.ts +1 -1
  106. package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -0
  107. package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.js +3 -0
  108. package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -0
  109. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -0
  110. package/dist/{tileset → tileset-3d}/helpers/bounding-volume.js +1 -0
  111. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -0
  112. package/dist/tileset-3d/helpers/frame-state.d.ts +86 -0
  113. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -0
  114. package/dist/{tileset → tileset-3d}/helpers/frame-state.js +84 -9
  115. package/dist/tileset-3d/helpers/frame-state.js.map +1 -0
  116. package/dist/{tileset → tileset-3d}/helpers/i3s-lod.d.ts +1 -1
  117. package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -0
  118. package/dist/{tileset → tileset-3d}/helpers/i3s-lod.js +1 -1
  119. package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -0
  120. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +72 -0
  121. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -0
  122. package/dist/tileset-3d/helpers/tiles-3d-lod.js +257 -0
  123. package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -0
  124. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +134 -0
  125. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +1 -0
  126. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +179 -0
  127. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +1 -0
  128. package/dist/{tileset → tileset-3d}/helpers/transform-utils.d.ts +1 -1
  129. package/dist/tileset-3d/helpers/transform-utils.d.ts.map +1 -0
  130. package/dist/tileset-3d/helpers/transform-utils.js.map +1 -0
  131. package/dist/tileset-3d/helpers/zoom.d.ts.map +1 -0
  132. package/dist/tileset-3d/helpers/zoom.js.map +1 -0
  133. package/dist/types.d.ts +9 -0
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +3 -0
  136. package/dist/types.js.map +1 -1
  137. package/dist/utils/doubly-linked-list.d.ts.map +1 -1
  138. package/dist/utils/doubly-linked-list.js +1 -0
  139. package/dist/utils/doubly-linked-list.js.map +1 -1
  140. package/dist/utils/managed-array.d.ts.map +1 -1
  141. package/dist/utils/managed-array.js +1 -0
  142. package/dist/utils/managed-array.js.map +1 -1
  143. package/package.json +7 -6
  144. package/src/image-set.ts +328 -0
  145. package/src/index.ts +99 -9
  146. package/src/point-cloud/point-cloud-tile.ts +80 -0
  147. package/src/point-cloud/point-cloud-tileset.ts +713 -0
  148. package/src/point-cloud/types.ts +82 -0
  149. package/src/raster-set.ts +412 -0
  150. package/src/tileset-2d/adapter.ts +47 -0
  151. package/src/tileset-2d/index.ts +33 -0
  152. package/src/tileset-2d/tile-2d-header.ts +224 -0
  153. package/src/tileset-2d/tileset-2d.ts +716 -0
  154. package/src/tileset-2d/types.ts +39 -0
  155. package/src/tileset-2d.ts +5 -0
  156. package/src/tileset-3d/common/indexed-archive-tileset-source.ts +205 -0
  157. package/src/{tileset → tileset-3d/common}/tile-3d.ts +348 -93
  158. package/src/tileset-3d/common/tileset-3d.ts +1087 -0
  159. package/src/{tileset → tileset-3d/common}/tileset-cache.ts +16 -8
  160. package/src/tileset-3d/common/tileset-source.ts +255 -0
  161. package/src/{tileset → tileset-3d/common}/tileset-traverser.ts +32 -4
  162. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +534 -0
  163. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +632 -0
  164. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +140 -0
  165. package/src/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.ts +4 -0
  166. package/src/tileset-3d/format-i3s/i3s-source.ts +366 -0
  167. package/src/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.ts +6 -2
  168. package/src/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.ts +19 -24
  169. package/src/{tileset → tileset-3d}/helpers/3d-tiles-options.ts +5 -1
  170. package/src/{tileset → tileset-3d}/helpers/bounding-volume.ts +2 -0
  171. package/src/tileset-3d/helpers/frame-state.ts +311 -0
  172. package/src/{tileset → tileset-3d}/helpers/i3s-lod.ts +2 -2
  173. package/src/tileset-3d/helpers/tiles-3d-lod.ts +370 -0
  174. package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
  175. package/src/{tileset → tileset-3d}/helpers/transform-utils.ts +1 -1
  176. package/src/types.ts +13 -0
  177. package/src/utils/doubly-linked-list.ts +2 -0
  178. package/src/utils/managed-array.ts +2 -0
  179. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +0 -7
  180. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +0 -1
  181. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -53
  182. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  183. package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts.map +0 -1
  184. package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  185. package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +0 -1
  186. package/dist/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
  187. package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +0 -1
  188. package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
  189. package/dist/tileset/helpers/3d-tiles-options.d.ts.map +0 -1
  190. package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
  191. package/dist/tileset/helpers/bounding-volume.d.ts.map +0 -1
  192. package/dist/tileset/helpers/bounding-volume.js.map +0 -1
  193. package/dist/tileset/helpers/frame-state.d.ts +0 -28
  194. package/dist/tileset/helpers/frame-state.d.ts.map +0 -1
  195. package/dist/tileset/helpers/frame-state.js.map +0 -1
  196. package/dist/tileset/helpers/i3s-lod.d.ts.map +0 -1
  197. package/dist/tileset/helpers/i3s-lod.js.map +0 -1
  198. package/dist/tileset/helpers/tiles-3d-lod.d.ts +0 -8
  199. package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +0 -1
  200. package/dist/tileset/helpers/tiles-3d-lod.js +0 -113
  201. package/dist/tileset/helpers/tiles-3d-lod.js.map +0 -1
  202. package/dist/tileset/helpers/transform-utils.d.ts.map +0 -1
  203. package/dist/tileset/helpers/transform-utils.js.map +0 -1
  204. package/dist/tileset/helpers/zoom.d.ts.map +0 -1
  205. package/dist/tileset/helpers/zoom.js.map +0 -1
  206. package/dist/tileset/tile-3d.d.ts.map +0 -1
  207. package/dist/tileset/tile-3d.js.map +0 -1
  208. package/dist/tileset/tileset-3d.d.ts +0 -284
  209. package/dist/tileset/tileset-3d.d.ts.map +0 -1
  210. package/dist/tileset/tileset-3d.js +0 -814
  211. package/dist/tileset/tileset-3d.js.map +0 -1
  212. package/dist/tileset/tileset-cache.d.ts +0 -19
  213. package/dist/tileset/tileset-cache.d.ts.map +0 -1
  214. package/dist/tileset/tileset-cache.js.map +0 -1
  215. package/dist/tileset/tileset-traverser.d.ts.map +0 -1
  216. package/dist/tileset/tileset-traverser.js.map +0 -1
  217. package/src/tileset/format-3d-tiles/tileset-3d-traverser.ts +0 -63
  218. package/src/tileset/helpers/frame-state.ts +0 -183
  219. package/src/tileset/helpers/tiles-3d-lod.ts +0 -149
  220. package/src/tileset/tileset-3d.ts +0 -1037
  221. /package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.d.ts +0 -0
  222. /package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.d.ts +0 -0
  223. /package/dist/{tileset → tileset-3d}/helpers/bounding-volume.d.ts +0 -0
  224. /package/dist/{tileset → tileset-3d}/helpers/transform-utils.js +0 -0
  225. /package/dist/{tileset → tileset-3d}/helpers/zoom.d.ts +0 -0
  226. /package/dist/{tileset → tileset-3d}/helpers/zoom.js +0 -0
  227. /package/src/{tileset → tileset-3d}/helpers/zoom.ts +0 -0
@@ -0,0 +1,532 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { RequestScheduler } from '@loaders.gl/loader-utils';
5
+ import { Stats } from '@probe.gl/stats';
6
+ import { SharedTile2DHeader } from "./tile-2d-header.js";
7
+ /** Never show ancestor or descendant placeholder tiles. */
8
+ export const STRATEGY_NEVER = 'never';
9
+ /** Prefer non-overlapping loaded tiles while replacements stream in. */
10
+ export const STRATEGY_REPLACE = 'no-overlap';
11
+ /** Prefer the best currently available loaded ancestor or descendant tiles. */
12
+ export const STRATEGY_DEFAULT = 'best-available';
13
+ const DEFAULT_TILESET2D_PROPS = {
14
+ adapter: null,
15
+ extent: null,
16
+ tileSize: 512,
17
+ maxZoom: null,
18
+ minZoom: null,
19
+ maxCacheSize: 100,
20
+ maxCacheByteSize: null,
21
+ refinementStrategy: STRATEGY_DEFAULT,
22
+ zRange: null,
23
+ maxRequests: 6,
24
+ debounceTime: 0,
25
+ zoomOffset: 0,
26
+ onTileLoad: () => { },
27
+ onTileUnload: () => { },
28
+ onTileError: () => { },
29
+ tileSource: null
30
+ };
31
+ /** Shared tile cache and loading engine for one or more consumers. */
32
+ export class Tileset2D {
33
+ /** Live counters describing shared tileset state. */
34
+ stats;
35
+ /** Cached metadata returned by the backing TileSource, if any. */
36
+ sourceMetadata = null;
37
+ opts;
38
+ _requestScheduler;
39
+ _cache;
40
+ _dirty;
41
+ _tiles;
42
+ _cacheByteSize;
43
+ _unloadedTileCount;
44
+ _listeners = new Set();
45
+ _consumers = new Map();
46
+ _explicitOptionKeys = new Set();
47
+ _baseOpts = {};
48
+ _sourceMetadataOverrides = {};
49
+ _maxZoom;
50
+ _minZoom;
51
+ _lastTileContext = null;
52
+ /** Creates a tileset from either `getTileData` or a loaders.gl `TileSource`. */
53
+ constructor(opts) {
54
+ this.stats = new Stats({
55
+ id: 'Tileset2D',
56
+ stats: [
57
+ { name: 'Tiles In Cache' },
58
+ { name: 'Cache Size' },
59
+ { name: 'Visible Tiles' },
60
+ { name: 'Selected Tiles' },
61
+ { name: 'Loading Tiles' },
62
+ { name: 'Unloaded Tiles' },
63
+ { name: 'Consumers' }
64
+ ]
65
+ });
66
+ this.opts = {
67
+ ...DEFAULT_TILESET2D_PROPS,
68
+ ...opts,
69
+ getTileData: opts.getTileData || (() => null),
70
+ tileSource: opts.tileSource
71
+ };
72
+ this._requestScheduler = new RequestScheduler({
73
+ throttleRequests: this.opts.maxRequests > 0 || this.opts.debounceTime > 0,
74
+ maxRequests: this.opts.maxRequests,
75
+ debounceTime: this.opts.debounceTime
76
+ });
77
+ this._cache = new Map();
78
+ this._tiles = [];
79
+ this._dirty = false;
80
+ this._cacheByteSize = 0;
81
+ this._unloadedTileCount = 0;
82
+ if (!this.opts.tileSource && !opts.getTileData) {
83
+ throw new Error('Tileset2D requires either `getTileData` or `tileSource`.');
84
+ }
85
+ this.setOptions(opts);
86
+ this._updateStats();
87
+ if (this.opts.tileSource) {
88
+ this._initializeTileSource(this.opts.tileSource).catch(() => { });
89
+ }
90
+ }
91
+ /** Convenience factory for wrapping a loaders.gl `TileSource`. */
92
+ static fromTileSource(tileSource, opts = {}) {
93
+ return new Tileset2D({ ...opts, tileSource });
94
+ }
95
+ /** All tiles currently present in the shared cache. */
96
+ get tiles() {
97
+ return this._tiles;
98
+ }
99
+ /** Estimated byte size of all tile content currently retained in cache. */
100
+ get cacheByteSize() {
101
+ return this._cacheByteSize;
102
+ }
103
+ /** Union of tiles selected by all attached consumers. */
104
+ get selectedTiles() {
105
+ return Array.from(this._getSelectedTilesUnion());
106
+ }
107
+ /** Union of tiles contributing to the visible result across all consumers and views. */
108
+ get visibleTiles() {
109
+ const union = this._getVisibleTilesUnion();
110
+ for (const tile of this._getSelectedTilesUnion()) {
111
+ union.add(tile);
112
+ }
113
+ return Array.from(union);
114
+ }
115
+ /** Tiles currently loading anywhere in the shared cache. */
116
+ get loadingTiles() {
117
+ return Array.from(this._cache.values()).filter(tile => tile.isLoading);
118
+ }
119
+ /** Tiles retained in cache that do not currently have loaded content. */
120
+ get unloadedTiles() {
121
+ return Array.from(this._cache.values()).filter(tile => !tile.isLoaded);
122
+ }
123
+ /** Maximum resolved zoom level after applying metadata and explicit options. */
124
+ get maxZoom() {
125
+ return this._maxZoom;
126
+ }
127
+ /** Minimum resolved zoom level after applying metadata and explicit options. */
128
+ get minZoom() {
129
+ return this._minZoom;
130
+ }
131
+ /** Active refinement strategy for placeholder handling. */
132
+ get refinementStrategy() {
133
+ return this.opts.refinementStrategy || STRATEGY_DEFAULT;
134
+ }
135
+ /** Adapter currently used for traversal and tile metadata. */
136
+ get adapter() {
137
+ return this.opts.adapter;
138
+ }
139
+ /** Subscribes to tileset lifecycle events. */
140
+ subscribe(listener) {
141
+ this._listeners.add(listener);
142
+ return () => this._listeners.delete(listener);
143
+ }
144
+ /** Registers a consumer so cache pruning can account for its selected tiles. */
145
+ attachConsumer(id) {
146
+ this._consumers.set(id, { selectedTiles: new Set(), visibleTiles: new Set() });
147
+ this._updateStats();
148
+ }
149
+ /** Unregisters a consumer and prunes unused requests and tiles. */
150
+ detachConsumer(id) {
151
+ this._consumers.delete(id);
152
+ this._pruneRequests();
153
+ this._resizeCache();
154
+ this._updateStats();
155
+ }
156
+ /** Updates tileset options and reapplies TileSource metadata overrides. */
157
+ setOptions(opts) {
158
+ this._rememberExplicitOptions(opts);
159
+ this._baseOpts = { ...this._baseOpts, ...opts };
160
+ const previousMaxRequests = this.opts.maxRequests;
161
+ const previousDebounceTime = this.opts.debounceTime;
162
+ this._applyResolvedOptions();
163
+ if (previousMaxRequests !== this.opts.maxRequests ||
164
+ previousDebounceTime !== this.opts.debounceTime) {
165
+ this._requestScheduler = new RequestScheduler({
166
+ throttleRequests: this.opts.maxRequests > 0 || this.opts.debounceTime > 0,
167
+ maxRequests: this.opts.maxRequests,
168
+ debounceTime: this.opts.debounceTime
169
+ });
170
+ }
171
+ }
172
+ /** Aborts in-flight requests and clears the shared cache. */
173
+ finalize() {
174
+ for (const tile of this._cache.values()) {
175
+ if (tile.isLoading) {
176
+ tile.abort();
177
+ }
178
+ }
179
+ this._cache.clear();
180
+ this._tiles = [];
181
+ this._consumers.clear();
182
+ this._cacheByteSize = 0;
183
+ this._unloadedTileCount = 0;
184
+ this._updateStats();
185
+ }
186
+ /** Marks all retained tiles stale and drops unused cached tiles. */
187
+ reloadAll() {
188
+ const selectedTiles = this._getSelectedTilesUnion();
189
+ for (const id of this._cache.keys()) {
190
+ const tile = this._cache.get(id);
191
+ if (tile && !selectedTiles.has(tile)) {
192
+ this._cache.delete(id);
193
+ this._handleTileUnload(tile);
194
+ this._dirty = true;
195
+ }
196
+ else if (tile) {
197
+ tile.setNeedsReload();
198
+ }
199
+ }
200
+ this._cacheByteSize = this._getCacheByteSize();
201
+ this.prepareTiles();
202
+ this._updateStats();
203
+ }
204
+ /** Updates the selected and visible tile sets for one consumer. */
205
+ updateConsumer(id, selectedTiles, visibleTiles) {
206
+ this._consumers.set(id, {
207
+ selectedTiles: new Set(selectedTiles),
208
+ visibleTiles: new Set(visibleTiles)
209
+ });
210
+ this._pruneRequests();
211
+ this._resizeCache();
212
+ this._updateStats();
213
+ }
214
+ /** Rebuilds parent/child links if the cache changed since the last traversal. */
215
+ prepareTiles() {
216
+ if (this._dirty) {
217
+ this._rebuildTree();
218
+ this._syncTiles();
219
+ this._dirty = false;
220
+ }
221
+ }
222
+ /** Returns tile indices needed to cover a viewport. */
223
+ getTileIndices({ viewState, maxZoom, minZoom, zRange, modelMatrix, modelMatrixInverse }) {
224
+ const { adapter, tileSize, extent, zoomOffset } = this.opts;
225
+ if (!adapter) {
226
+ throw new Error('Tileset2D requires an adapter before tile traversal can be used.');
227
+ }
228
+ this._lastTileContext = { viewState, tileSize };
229
+ return adapter.getTileIndices({
230
+ viewState,
231
+ maxZoom,
232
+ minZoom,
233
+ zRange,
234
+ tileSize,
235
+ extent: normalizeBounds(extent),
236
+ modelMatrix,
237
+ modelMatrixInverse,
238
+ zoomOffset
239
+ });
240
+ }
241
+ /** Returns the stable cache id for a tile index. */
242
+ getTileId(index) {
243
+ return `${index.x}-${index.y}-${index.z}`;
244
+ }
245
+ /** Returns the zoom level represented by a tile index. */
246
+ getTileZoom(index) {
247
+ return index.z;
248
+ }
249
+ /** Returns derived metadata used to initialize a tile header. */
250
+ getTileMetadata(index) {
251
+ if (!this._lastTileContext) {
252
+ throw new Error('Tileset2D metadata requested before traversal context was set.');
253
+ }
254
+ if (!this.opts.adapter) {
255
+ throw new Error('Tileset2D requires an adapter before tile metadata can be derived.');
256
+ }
257
+ return { bbox: this.opts.adapter.getTileBoundingBox(this._lastTileContext, index) };
258
+ }
259
+ /** Returns the parent tile index in the quadtree. */
260
+ getParentIndex(index) {
261
+ return { x: Math.floor(index.x / 2), y: Math.floor(index.y / 2), z: index.z - 1 };
262
+ }
263
+ getTile(index, create) {
264
+ const id = this.getTileId(index);
265
+ let tile = this._cache.get(id);
266
+ let needsReload = false;
267
+ if (!tile && create) {
268
+ tile = new SharedTile2DHeader(index);
269
+ Object.assign(tile, this.getTileMetadata(tile.index));
270
+ Object.assign(tile, { id, zoom: this.getTileZoom(tile.index) });
271
+ needsReload = true;
272
+ this._cache.set(id, tile);
273
+ this._dirty = true;
274
+ this._updateStats();
275
+ }
276
+ else if (tile && tile.needsReload) {
277
+ needsReload = true;
278
+ }
279
+ if (tile) {
280
+ this._touchTile(id, tile);
281
+ }
282
+ if (tile && needsReload && create) {
283
+ tile
284
+ .loadData({
285
+ getData: this.opts.getTileData,
286
+ requestScheduler: this._requestScheduler,
287
+ onLoad: this._handleTileLoad.bind(this),
288
+ onError: this._handleTileError.bind(this)
289
+ })
290
+ .catch(() => { });
291
+ this._updateStats();
292
+ }
293
+ return tile;
294
+ }
295
+ /** Loads metadata from a TileSource and reapplies derived option overrides. */
296
+ async _initializeTileSource(tileSource) {
297
+ try {
298
+ this.sourceMetadata = await tileSource.getMetadata();
299
+ this._sourceMetadataOverrides = this._getMetadataOverrides(this.sourceMetadata);
300
+ this._applyResolvedOptions();
301
+ this._notifyUpdate();
302
+ }
303
+ catch (error) {
304
+ const normalizedError = error instanceof Error ? error : new Error(`TileSource metadata error: ${String(error)}`);
305
+ this._notifyError(normalizedError);
306
+ }
307
+ }
308
+ /** Tracks which options were explicitly set by the caller. */
309
+ _rememberExplicitOptions(opts) {
310
+ for (const key of Object.keys(opts)) {
311
+ this._explicitOptionKeys.add(key);
312
+ }
313
+ }
314
+ /** Resolves defaults, metadata overrides, and caller options into runtime settings. */
315
+ _applyResolvedOptions() {
316
+ const resolvedOpts = {
317
+ ...DEFAULT_TILESET2D_PROPS,
318
+ ...this._sourceMetadataOverrides,
319
+ ...this._baseOpts
320
+ };
321
+ if (resolvedOpts.tileSource) {
322
+ const tileSource = resolvedOpts.tileSource;
323
+ resolvedOpts.getTileData = (loadProps) => tileSource.getTileData(loadProps);
324
+ }
325
+ this.opts = resolvedOpts;
326
+ this._maxZoom =
327
+ typeof this.opts.maxZoom === 'number' && Number.isFinite(this.opts.maxZoom)
328
+ ? Math.floor(this.opts.maxZoom)
329
+ : undefined;
330
+ this._minZoom =
331
+ typeof this.opts.minZoom === 'number' && Number.isFinite(this.opts.minZoom)
332
+ ? Math.ceil(this.opts.minZoom)
333
+ : undefined;
334
+ }
335
+ /** Maps TileSource metadata into supported tileset options. */
336
+ _getMetadataOverrides(metadata) {
337
+ if (!metadata) {
338
+ return {};
339
+ }
340
+ const overrides = {};
341
+ if (!this._explicitOptionKeys.has('minZoom') && Number.isFinite(metadata.minZoom)) {
342
+ overrides.minZoom = metadata.minZoom;
343
+ }
344
+ if (!this._explicitOptionKeys.has('maxZoom') && Number.isFinite(metadata.maxZoom)) {
345
+ overrides.maxZoom = metadata.maxZoom;
346
+ }
347
+ if (!this._explicitOptionKeys.has('extent') && metadata.boundingBox) {
348
+ overrides.extent = [
349
+ metadata.boundingBox[0][0],
350
+ metadata.boundingBox[0][1],
351
+ metadata.boundingBox[1][0],
352
+ metadata.boundingBox[1][1]
353
+ ];
354
+ }
355
+ return overrides;
356
+ }
357
+ /** Handles successful tile loads. */
358
+ _handleTileLoad(tile) {
359
+ this.opts.onTileLoad?.(tile);
360
+ this._cacheByteSize = this._getCacheByteSize();
361
+ this._resizeCache();
362
+ for (const listener of this._listeners) {
363
+ listener.onTileLoad?.(tile);
364
+ }
365
+ this._updateStats();
366
+ }
367
+ /** Handles tile load failures. */
368
+ _handleTileError(error, tile) {
369
+ this.opts.onTileError?.(error, tile);
370
+ for (const listener of this._listeners) {
371
+ listener.onTileError?.(error, tile);
372
+ }
373
+ this._updateStats();
374
+ }
375
+ /** Handles tile eviction from cache. */
376
+ _handleTileUnload(tile) {
377
+ this._unloadedTileCount++;
378
+ this.opts.onTileUnload?.(tile);
379
+ for (const listener of this._listeners) {
380
+ listener.onTileUnload?.(tile);
381
+ }
382
+ this._updateStats();
383
+ }
384
+ /** Notifies listeners that metadata or effective options changed. */
385
+ _notifyUpdate() {
386
+ for (const listener of this._listeners) {
387
+ listener.onUpdate?.();
388
+ }
389
+ }
390
+ /** Notifies listeners about asynchronous metadata errors. */
391
+ _notifyError(error) {
392
+ for (const listener of this._listeners) {
393
+ listener.onError?.(error);
394
+ }
395
+ }
396
+ /** Recomputes absolute counter stats and notifies listeners. */
397
+ _updateStats() {
398
+ this._setStatCount('Tiles In Cache', this._cache.size);
399
+ this._setStatCount('Cache Size', this.cacheByteSize);
400
+ this._setStatCount('Visible Tiles', this.visibleTiles.length);
401
+ this._setStatCount('Selected Tiles', this.selectedTiles.length);
402
+ this._setStatCount('Loading Tiles', this.loadingTiles.length);
403
+ this._setStatCount('Unloaded Tiles', this._unloadedTileCount);
404
+ this._setStatCount('Consumers', this._consumers.size);
405
+ for (const listener of this._listeners) {
406
+ listener.onStatsChange?.(this.stats);
407
+ }
408
+ }
409
+ /** Writes an absolute count into a probe.gl stat. */
410
+ _setStatCount(name, value) {
411
+ this.stats.get(name).reset().addCount(value);
412
+ }
413
+ /** Returns the union of selected tiles across all consumers. */
414
+ _getSelectedTilesUnion() {
415
+ const union = new Set();
416
+ for (const consumer of this._consumers.values()) {
417
+ for (const tile of consumer.selectedTiles) {
418
+ union.add(tile);
419
+ }
420
+ }
421
+ return union;
422
+ }
423
+ /** Returns the union of visible tiles across all consumers. */
424
+ _getVisibleTilesUnion() {
425
+ const union = new Set();
426
+ for (const consumer of this._consumers.values()) {
427
+ for (const tile of consumer.visibleTiles) {
428
+ union.add(tile);
429
+ }
430
+ }
431
+ return union;
432
+ }
433
+ /** Moves a touched tile to the back of the cache map for LRU eviction ordering. */
434
+ _touchTile(id, tile) {
435
+ this._cache.delete(id);
436
+ this._cache.set(id, tile);
437
+ }
438
+ /** Computes the total byte size of all cached tile content. */
439
+ _getCacheByteSize() {
440
+ let byteLength = 0;
441
+ for (const tile of this._cache.values()) {
442
+ byteLength += tile.byteLength;
443
+ }
444
+ return byteLength;
445
+ }
446
+ /** Cancels low-priority requests when consumers no longer need them. */
447
+ _pruneRequests() {
448
+ const { maxRequests = 0 } = this.opts;
449
+ const selectedTiles = this._getSelectedTilesUnion();
450
+ const visibleTiles = this._getVisibleTilesUnion();
451
+ const abortCandidates = [];
452
+ let ongoingRequestCount = 0;
453
+ for (const tile of this._cache.values()) {
454
+ if (tile.isLoading) {
455
+ ongoingRequestCount++;
456
+ if (!selectedTiles.has(tile) && !visibleTiles.has(tile)) {
457
+ abortCandidates.push(tile);
458
+ }
459
+ }
460
+ }
461
+ while (maxRequests > 0 && ongoingRequestCount > maxRequests && abortCandidates.length > 0) {
462
+ const tile = abortCandidates.shift();
463
+ if (tile) {
464
+ tile.abort();
465
+ }
466
+ ongoingRequestCount--;
467
+ }
468
+ }
469
+ /** Rebuilds parent and child links for all cached tiles. */
470
+ _rebuildTree() {
471
+ for (const tile of this._cache.values()) {
472
+ tile.parent = null;
473
+ if (tile.children) {
474
+ tile.children.length = 0;
475
+ }
476
+ }
477
+ for (const tile of this._cache.values()) {
478
+ const parent = this._getNearestAncestor(tile);
479
+ tile.parent = parent;
480
+ if (parent?.children) {
481
+ parent.children.push(tile);
482
+ }
483
+ }
484
+ }
485
+ /** Updates the sorted tile list used by traversal and rendering. */
486
+ _syncTiles() {
487
+ this._tiles = Array.from(this._cache.values()).sort((tile1, tile2) => tile1.zoom - tile2.zoom);
488
+ }
489
+ /** Evicts unused cached tiles when configured cache limits are exceeded. */
490
+ _resizeCache() {
491
+ const maxCacheSize = this.opts.maxCacheSize ?? 100;
492
+ const maxCacheByteSize = this.opts.maxCacheByteSize ?? Infinity;
493
+ const visibleTiles = this._getVisibleTilesUnion();
494
+ const selectedTiles = this._getSelectedTilesUnion();
495
+ const overflown = this._cache.size > maxCacheSize || this._cacheByteSize > maxCacheByteSize;
496
+ if (overflown) {
497
+ for (const [id, tile] of this._cache) {
498
+ if (!visibleTiles.has(tile) && !selectedTiles.has(tile)) {
499
+ this._cache.delete(id);
500
+ this._cacheByteSize = this._getCacheByteSize();
501
+ this._handleTileUnload(tile);
502
+ }
503
+ if (this._cache.size <= maxCacheSize && this._cacheByteSize <= maxCacheByteSize) {
504
+ break;
505
+ }
506
+ }
507
+ this._dirty = true;
508
+ }
509
+ if (this._dirty) {
510
+ this._rebuildTree();
511
+ this._syncTiles();
512
+ this._dirty = false;
513
+ }
514
+ }
515
+ /** Finds the nearest cached ancestor tile for placeholder rendering. */
516
+ _getNearestAncestor(tile) {
517
+ const { _minZoom = 0 } = this;
518
+ let index = tile.index;
519
+ while (this.getTileZoom(index) > _minZoom) {
520
+ index = this.getParentIndex(index);
521
+ const parent = this.getTile(index);
522
+ if (parent) {
523
+ return parent;
524
+ }
525
+ }
526
+ return null;
527
+ }
528
+ }
529
+ function normalizeBounds(extent) {
530
+ return extent && extent.length === 4 ? extent : undefined;
531
+ }
532
+ //# sourceMappingURL=tileset-2d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset-2d.js","sourceRoot":"","sources":["../../src/tileset-2d/tileset-2d.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /** Inclusive minimum and maximum elevation bounds used during tile selection. */
2
+ export type ZRange = [minZ: number, maxZ: number];
3
+ /** Axis-aligned bounding box represented as `[minX, minY, maxX, maxY]`. */
4
+ export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
5
+ /** Geographic tile bounds in longitude/latitude coordinates. */
6
+ export type GeoBoundingBox = {
7
+ west: number;
8
+ north: number;
9
+ east: number;
10
+ south: number;
11
+ };
12
+ /** Cartesian tile bounds in layer/world coordinates. */
13
+ export type NonGeoBoundingBox = {
14
+ left: number;
15
+ top: number;
16
+ right: number;
17
+ bottom: number;
18
+ };
19
+ /** Tile bounds for either geospatial or cartesian views. */
20
+ export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox;
21
+ /** Tile coordinate in an x/y/z pyramid. */
22
+ export type TileIndex = {
23
+ x: number;
24
+ y: number;
25
+ z: number;
26
+ };
27
+ /** Information passed to a tile loader for fetching tile content. */
28
+ export type TileLoadProps = {
29
+ /** x/y/z tile coordinate. */
30
+ index: TileIndex;
31
+ /** Stable cache identifier for the tile. */
32
+ id: string;
33
+ /** Bounds covered by the tile in the active coordinate system. */
34
+ bbox: TileBoundingBox;
35
+ /** URL derived from a URL template, if applicable. */
36
+ url?: string | null;
37
+ /** Abort signal for cancelling an in-flight tile request. */
38
+ signal?: AbortSignal;
39
+ /** Optional application metadata associated with the tile. */
40
+ userData?: Record<string, any>;
41
+ /** Resolved zoom level used to request this tile. */
42
+ zoom?: number;
43
+ };
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/types.ts"],"names":[],"mappings":"AAIA,iFAAiF;AACjF,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAElD,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AAExF,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAE3F,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAEjE,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAE1D,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG;IAC1B,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,IAAI,EAAE,eAAe,CAAC;IACtB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tileset-2d/types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC"}
@@ -0,0 +1,2 @@
1
+ export * from "./tileset-2d/index.js";
2
+ //# sourceMappingURL=tileset-2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset-2d.d.ts","sourceRoot":"","sources":["../src/tileset-2d.ts"],"names":[],"mappings":"AAIA,sCAAmC"}
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export * from "./tileset-2d/index.js";
5
+ //# sourceMappingURL=tileset-2d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset-2d.js","sourceRoot":"","sources":["../src/tileset-2d.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,sCAAmC"}