@loaders.gl/tiles 4.5.3 → 5.0.0-alpha.10

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 (295) hide show
  1. package/LICENSE +14 -3
  2. package/README.md +136 -1
  3. package/dist/dist.dev.js +22570 -4947
  4. package/dist/dist.min.js +3 -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 +10171 -2117
  10. package/dist/index.cjs.map +3 -4
  11. package/dist/index.d.ts +50 -9
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +28 -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 +135 -0
  20. package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -0
  21. package/dist/point-cloud/point-cloud-tileset.js +549 -0
  22. package/dist/point-cloud/point-cloud-tileset.js.map +1 -0
  23. package/dist/point-cloud/types.d.ts +81 -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 +124 -0
  28. package/dist/raster-set.d.ts.map +1 -0
  29. package/dist/raster-set.js +348 -0
  30. package/dist/raster-set.js.map +1 -0
  31. package/dist/spatial/format-spatial-reference.d.ts +68 -0
  32. package/dist/spatial/format-spatial-reference.d.ts.map +1 -0
  33. package/dist/spatial/format-spatial-reference.js +291 -0
  34. package/dist/spatial/format-spatial-reference.js.map +1 -0
  35. package/dist/spatial/get-spatial-coordinate-frame.d.ts +20 -0
  36. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -0
  37. package/dist/spatial/get-spatial-coordinate-frame.js +139 -0
  38. package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -0
  39. package/dist/spatial/i3s-elevation.d.ts +20 -0
  40. package/dist/spatial/i3s-elevation.d.ts.map +1 -0
  41. package/dist/spatial/i3s-elevation.js +90 -0
  42. package/dist/spatial/i3s-elevation.js.map +1 -0
  43. package/dist/spatial/i3s-spatial-transformer.d.ts +189 -0
  44. package/dist/spatial/i3s-spatial-transformer.d.ts.map +1 -0
  45. package/dist/spatial/i3s-spatial-transformer.js +686 -0
  46. package/dist/spatial/i3s-spatial-transformer.js.map +1 -0
  47. package/dist/spatial/normalize-crs-identifier.d.ts +15 -0
  48. package/dist/spatial/normalize-crs-identifier.d.ts.map +1 -0
  49. package/dist/spatial/normalize-crs-identifier.js +22 -0
  50. package/dist/spatial/normalize-crs-identifier.js.map +1 -0
  51. package/dist/spatial/spatial-coordinate-transformer.d.ts +52 -0
  52. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -0
  53. package/dist/spatial/spatial-coordinate-transformer.js +295 -0
  54. package/dist/spatial/spatial-coordinate-transformer.js.map +1 -0
  55. package/dist/spatial/spatial-resource-registry.d.ts +44 -0
  56. package/dist/spatial/spatial-resource-registry.d.ts.map +1 -0
  57. package/dist/spatial/spatial-resource-registry.js +67 -0
  58. package/dist/spatial/spatial-resource-registry.js.map +1 -0
  59. package/dist/spatial/spatial-types.d.ts +190 -0
  60. package/dist/spatial/spatial-types.d.ts.map +1 -0
  61. package/dist/spatial/spatial-types.js +192 -0
  62. package/dist/spatial/spatial-types.js.map +1 -0
  63. package/dist/spatial/tiles-3d-spatial-transformer.d.ts +32 -0
  64. package/dist/spatial/tiles-3d-spatial-transformer.d.ts.map +1 -0
  65. package/dist/spatial/tiles-3d-spatial-transformer.js +175 -0
  66. package/dist/spatial/tiles-3d-spatial-transformer.js.map +1 -0
  67. package/dist/tileset-2d/adapter.d.ts +37 -0
  68. package/dist/tileset-2d/adapter.d.ts.map +1 -0
  69. package/dist/tileset-2d/adapter.js +5 -0
  70. package/dist/tileset-2d/adapter.js.map +1 -0
  71. package/dist/tileset-2d/index.d.ts +7 -0
  72. package/dist/tileset-2d/index.d.ts.map +1 -0
  73. package/dist/tileset-2d/index.js +6 -0
  74. package/dist/tileset-2d/index.js.map +1 -0
  75. package/dist/tileset-2d/tile-2d-header.d.ts +68 -0
  76. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
  77. package/dist/tileset-2d/tile-2d-header.js +181 -0
  78. package/dist/tileset-2d/tile-2d-header.js.map +1 -0
  79. package/dist/tileset-2d/tileset-2d.d.ts +200 -0
  80. package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
  81. package/dist/tileset-2d/tileset-2d.js +532 -0
  82. package/dist/tileset-2d/tileset-2d.js.map +1 -0
  83. package/dist/tileset-2d/types.d.ts +44 -0
  84. package/dist/tileset-2d/types.d.ts.map +1 -0
  85. package/dist/tileset-2d/types.js +5 -0
  86. package/dist/tileset-2d/types.js.map +1 -0
  87. package/dist/tileset-2d.d.ts +2 -0
  88. package/dist/tileset-2d.d.ts.map +1 -0
  89. package/dist/tileset-2d.js +5 -0
  90. package/dist/tileset-2d.js.map +1 -0
  91. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts +60 -0
  92. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts.map +1 -0
  93. package/dist/tileset-3d/common/indexed-archive-tileset-source.js +130 -0
  94. package/dist/tileset-3d/common/indexed-archive-tileset-source.js.map +1 -0
  95. package/dist/tileset-3d/common/tile-3d-contracts.d.ts +63 -0
  96. package/dist/tileset-3d/common/tile-3d-contracts.d.ts.map +1 -0
  97. package/dist/tileset-3d/common/tile-3d-contracts.js +51 -0
  98. package/dist/tileset-3d/common/tile-3d-contracts.js.map +1 -0
  99. package/dist/tileset-3d/common/tile-3d.d.ts +410 -0
  100. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -0
  101. package/dist/tileset-3d/common/tile-3d.js +1056 -0
  102. package/dist/tileset-3d/common/tile-3d.js.map +1 -0
  103. package/dist/tileset-3d/common/tileset-3d.d.ts +360 -0
  104. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -0
  105. package/dist/tileset-3d/common/tileset-3d.js +846 -0
  106. package/dist/tileset-3d/common/tileset-3d.js.map +1 -0
  107. package/dist/tileset-3d/common/tileset-cache.d.ts +29 -0
  108. package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -0
  109. package/dist/{tileset → tileset-3d/common}/tileset-cache.js +12 -4
  110. package/dist/tileset-3d/common/tileset-cache.js.map +1 -0
  111. package/dist/tileset-3d/common/tileset-content-traversal.d.ts +37 -0
  112. package/dist/tileset-3d/common/tileset-content-traversal.d.ts.map +1 -0
  113. package/dist/tileset-3d/common/tileset-content-traversal.js +80 -0
  114. package/dist/tileset-3d/common/tileset-content-traversal.js.map +1 -0
  115. package/dist/tileset-3d/common/tileset-observability.d.ts +60 -0
  116. package/dist/tileset-3d/common/tileset-observability.d.ts.map +1 -0
  117. package/dist/tileset-3d/common/tileset-observability.js +39 -0
  118. package/dist/tileset-3d/common/tileset-observability.js.map +1 -0
  119. package/dist/tileset-3d/common/tileset-source.d.ts +228 -0
  120. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -0
  121. package/dist/tileset-3d/common/tileset-source.js +17 -0
  122. package/dist/tileset-3d/common/tileset-source.js.map +1 -0
  123. package/dist/{tileset → tileset-3d/common}/tileset-traverser.d.ts +35 -3
  124. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -0
  125. package/dist/{tileset → tileset-3d/common}/tileset-traverser.js +61 -13
  126. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -0
  127. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +182 -0
  128. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -0
  129. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +681 -0
  130. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -0
  131. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +221 -0
  132. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -0
  133. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +770 -0
  134. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -0
  135. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +110 -0
  136. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -0
  137. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +331 -0
  138. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
  139. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -0
  140. package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.js +3 -0
  141. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -0
  142. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +116 -0
  143. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -0
  144. package/dist/tileset-3d/format-i3s/i3s-source.js +450 -0
  145. package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -0
  146. package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -0
  147. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.js +5 -2
  148. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -0
  149. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.d.ts +2 -2
  150. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -0
  151. package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.js +17 -23
  152. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -0
  153. package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.d.ts +1 -1
  154. package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -0
  155. package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.js +3 -0
  156. package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -0
  157. package/dist/{tileset → tileset-3d}/helpers/bounding-volume.d.ts +7 -3
  158. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -0
  159. package/dist/{tileset → tileset-3d}/helpers/bounding-volume.js +20 -91
  160. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -0
  161. package/dist/tileset-3d/helpers/frame-state.d.ts +93 -0
  162. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -0
  163. package/dist/{tileset → tileset-3d}/helpers/frame-state.js +92 -10
  164. package/dist/tileset-3d/helpers/frame-state.js.map +1 -0
  165. package/dist/{tileset → tileset-3d}/helpers/i3s-lod.d.ts +1 -1
  166. package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -0
  167. package/dist/{tileset → tileset-3d}/helpers/i3s-lod.js +21 -9
  168. package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -0
  169. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts +17 -0
  170. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts.map +1 -0
  171. package/dist/tileset-3d/helpers/s2-bounding-volume.js +20 -0
  172. package/dist/tileset-3d/helpers/s2-bounding-volume.js.map +1 -0
  173. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +72 -0
  174. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -0
  175. package/dist/tileset-3d/helpers/tiles-3d-lod.js +257 -0
  176. package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -0
  177. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +134 -0
  178. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +1 -0
  179. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +179 -0
  180. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +1 -0
  181. package/dist/{tileset → tileset-3d}/helpers/transform-utils.d.ts +1 -1
  182. package/dist/tileset-3d/helpers/transform-utils.d.ts.map +1 -0
  183. package/dist/tileset-3d/helpers/transform-utils.js.map +1 -0
  184. package/dist/tileset-3d/helpers/zoom.d.ts.map +1 -0
  185. package/dist/tileset-3d/helpers/zoom.js.map +1 -0
  186. package/dist/types.d.ts +14 -0
  187. package/dist/types.d.ts.map +1 -1
  188. package/dist/types.js +3 -0
  189. package/dist/types.js.map +1 -1
  190. package/dist/utils/doubly-linked-list.d.ts.map +1 -1
  191. package/dist/utils/doubly-linked-list.js +1 -0
  192. package/dist/utils/doubly-linked-list.js.map +1 -1
  193. package/dist/utils/managed-array.d.ts.map +1 -1
  194. package/dist/utils/managed-array.js +1 -0
  195. package/dist/utils/managed-array.js.map +1 -1
  196. package/package.json +12 -9
  197. package/src/image-set.ts +328 -0
  198. package/src/index.ts +157 -9
  199. package/src/point-cloud/point-cloud-tile.ts +80 -0
  200. package/src/point-cloud/point-cloud-tileset.ts +767 -0
  201. package/src/point-cloud/types.ts +99 -0
  202. package/src/raster-set.ts +504 -0
  203. package/src/spatial/format-spatial-reference.ts +385 -0
  204. package/src/spatial/get-spatial-coordinate-frame.ts +169 -0
  205. package/src/spatial/i3s-elevation.ts +96 -0
  206. package/src/spatial/i3s-spatial-transformer.ts +957 -0
  207. package/src/spatial/normalize-crs-identifier.ts +26 -0
  208. package/src/spatial/spatial-coordinate-transformer.ts +376 -0
  209. package/src/spatial/spatial-resource-registry.ts +79 -0
  210. package/src/spatial/spatial-types.ts +422 -0
  211. package/src/spatial/tiles-3d-spatial-transformer.ts +206 -0
  212. package/src/tileset-2d/adapter.ts +46 -0
  213. package/src/tileset-2d/index.ts +33 -0
  214. package/src/tileset-2d/tile-2d-header.ts +224 -0
  215. package/src/tileset-2d/tileset-2d.ts +715 -0
  216. package/src/tileset-2d/types.ts +39 -0
  217. package/src/tileset-2d.ts +5 -0
  218. package/src/tileset-3d/common/indexed-archive-tileset-source.ts +205 -0
  219. package/src/tileset-3d/common/tile-3d-contracts.ts +115 -0
  220. package/src/tileset-3d/common/tile-3d.ts +1310 -0
  221. package/src/tileset-3d/common/tileset-3d.ts +1166 -0
  222. package/src/{tileset → tileset-3d/common}/tileset-cache.ts +16 -8
  223. package/src/tileset-3d/common/tileset-content-traversal.ts +114 -0
  224. package/src/tileset-3d/common/tileset-observability.ts +100 -0
  225. package/src/tileset-3d/common/tileset-source.ts +284 -0
  226. package/src/{tileset → tileset-3d/common}/tileset-traverser.ts +74 -14
  227. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +1059 -0
  228. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +1025 -0
  229. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +379 -0
  230. package/src/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.ts +4 -0
  231. package/src/tileset-3d/format-i3s/i3s-source.ts +557 -0
  232. package/src/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.ts +6 -2
  233. package/src/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.ts +20 -24
  234. package/src/{tileset → tileset-3d}/helpers/3d-tiles-options.ts +5 -1
  235. package/src/{tileset → tileset-3d}/helpers/bounding-volume.ts +31 -114
  236. package/src/tileset-3d/helpers/frame-state.ts +322 -0
  237. package/src/{tileset → tileset-3d}/helpers/i3s-lod.ts +24 -10
  238. package/src/tileset-3d/helpers/s2-bounding-volume.ts +35 -0
  239. package/src/tileset-3d/helpers/tiles-3d-lod.ts +370 -0
  240. package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
  241. package/src/{tileset → tileset-3d}/helpers/transform-utils.ts +1 -1
  242. package/src/types.ts +18 -0
  243. package/src/utils/doubly-linked-list.ts +2 -0
  244. package/src/utils/managed-array.ts +2 -0
  245. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +0 -7
  246. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +0 -1
  247. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -53
  248. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  249. package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts.map +0 -1
  250. package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  251. package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +0 -1
  252. package/dist/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
  253. package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +0 -1
  254. package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
  255. package/dist/tileset/helpers/3d-tiles-options.d.ts.map +0 -1
  256. package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
  257. package/dist/tileset/helpers/bounding-volume.d.ts.map +0 -1
  258. package/dist/tileset/helpers/bounding-volume.js.map +0 -1
  259. package/dist/tileset/helpers/frame-state.d.ts +0 -28
  260. package/dist/tileset/helpers/frame-state.d.ts.map +0 -1
  261. package/dist/tileset/helpers/frame-state.js.map +0 -1
  262. package/dist/tileset/helpers/i3s-lod.d.ts.map +0 -1
  263. package/dist/tileset/helpers/i3s-lod.js.map +0 -1
  264. package/dist/tileset/helpers/tiles-3d-lod.d.ts +0 -8
  265. package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +0 -1
  266. package/dist/tileset/helpers/tiles-3d-lod.js +0 -113
  267. package/dist/tileset/helpers/tiles-3d-lod.js.map +0 -1
  268. package/dist/tileset/helpers/transform-utils.d.ts.map +0 -1
  269. package/dist/tileset/helpers/transform-utils.js.map +0 -1
  270. package/dist/tileset/helpers/zoom.d.ts.map +0 -1
  271. package/dist/tileset/helpers/zoom.js.map +0 -1
  272. package/dist/tileset/tile-3d.d.ts +0 -230
  273. package/dist/tileset/tile-3d.d.ts.map +0 -1
  274. package/dist/tileset/tile-3d.js +0 -631
  275. package/dist/tileset/tile-3d.js.map +0 -1
  276. package/dist/tileset/tileset-3d.d.ts +0 -284
  277. package/dist/tileset/tileset-3d.d.ts.map +0 -1
  278. package/dist/tileset/tileset-3d.js +0 -814
  279. package/dist/tileset/tileset-3d.js.map +0 -1
  280. package/dist/tileset/tileset-cache.d.ts +0 -19
  281. package/dist/tileset/tileset-cache.d.ts.map +0 -1
  282. package/dist/tileset/tileset-cache.js.map +0 -1
  283. package/dist/tileset/tileset-traverser.d.ts.map +0 -1
  284. package/dist/tileset/tileset-traverser.js.map +0 -1
  285. package/src/tileset/format-3d-tiles/tileset-3d-traverser.ts +0 -63
  286. package/src/tileset/helpers/frame-state.ts +0 -183
  287. package/src/tileset/helpers/tiles-3d-lod.ts +0 -149
  288. package/src/tileset/tile-3d.ts +0 -788
  289. package/src/tileset/tileset-3d.ts +0 -1037
  290. /package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.d.ts +0 -0
  291. /package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.d.ts +0 -0
  292. /package/dist/{tileset → tileset-3d}/helpers/transform-utils.js +0 -0
  293. /package/dist/{tileset → tileset-3d}/helpers/zoom.d.ts +0 -0
  294. /package/dist/{tileset → tileset-3d}/helpers/zoom.js +0 -0
  295. /package/src/{tileset → tileset-3d}/helpers/zoom.ts +0 -0
@@ -0,0 +1,37 @@
1
+ import type { Bounds, TileBoundingBox, TileIndex, ZRange } from "./types.js";
2
+ /** Traversal inputs required by a {@link Tileset2DAdapter}. */
3
+ export type Tileset2DTraversalContext<ViewStateT> = {
4
+ /** Consumer-defined view state used by the adapter. */
5
+ viewState: ViewStateT;
6
+ /** Tile size in pixels. */
7
+ tileSize: number;
8
+ /** Bounding box limiting tile generation. */
9
+ extent?: Bounds | null;
10
+ /** Minimum zoom level to request. */
11
+ minZoom?: number;
12
+ /** Maximum zoom level to request. */
13
+ maxZoom?: number;
14
+ /** Integer zoom offset applied during tile selection. */
15
+ zoomOffset?: number;
16
+ /** Elevation range used during geospatial tile selection. */
17
+ zRange?: ZRange | null;
18
+ /** Optional model matrix applied by the surrounding layer stack. */
19
+ modelMatrix?: readonly number[] | null;
20
+ /** Inverse of the current model matrix. */
21
+ modelMatrixInverse?: readonly number[] | null;
22
+ };
23
+ /** Minimal tile metadata inputs required by a {@link Tileset2DAdapter}. */
24
+ export type Tileset2DTileContext<ViewStateT> = {
25
+ /** Consumer-defined view state used by the adapter. */
26
+ viewState: ViewStateT;
27
+ /** Tile size in pixels. */
28
+ tileSize: number;
29
+ };
30
+ /** Adapter used by {@link Tileset2D} to compute traversal and tile bounds. */
31
+ export type Tileset2DAdapter<ViewStateT> = {
32
+ /** Returns tile indices that should be selected for one traversal context. */
33
+ getTileIndices: (context: Tileset2DTraversalContext<ViewStateT>) => TileIndex[];
34
+ /** Returns the structured bounding box for one tile index. */
35
+ getTileBoundingBox: (context: Tileset2DTileContext<ViewStateT>, index: TileIndex) => TileBoundingBox;
36
+ };
37
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAC,mBAAgB;AAExE,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,CAAC,UAAU,IAAI;IAClD,uDAAuD;IACvD,SAAS,EAAE,UAAU,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oEAAoE;IACpE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,CAAC,UAAU,IAAI;IAC7C,uDAAuD;IACvD,SAAS,EAAE,UAAU,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,CAAC,UAAU,IAAI;IACzC,8EAA8E;IAC9E,cAAc,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;IAChF,8DAA8D;IAC9D,kBAAkB,EAAE,CAClB,OAAO,EAAE,oBAAoB,CAAC,UAAU,CAAC,EACzC,KAAK,EAAE,SAAS,KACb,eAAe,CAAC;CACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/tileset-2d/adapter.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC"}
@@ -0,0 +1,7 @@
1
+ export type { Bounds, GeoBoundingBox, NonGeoBoundingBox, TileBoundingBox, TileIndex, TileLoadProps, ZRange } from "./types.js";
2
+ export type { Tileset2DAdapter, Tileset2DTileContext, Tileset2DTraversalContext } from "./adapter.js";
3
+ export type { Tile2DLoadDataProps } from "./tile-2d-header.js";
4
+ export { SharedTile2DHeader } from "./tile-2d-header.js";
5
+ export type { RefinementStrategy, RefinementStrategyFunction, Tileset2DBaseProps, Tileset2DProps, Tile2DListener } from "./tileset-2d.js";
6
+ export { Tileset2D, STRATEGY_DEFAULT, STRATEGY_NEVER, STRATEGY_REPLACE } from "./tileset-2d.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACb,MAAM,EACP,mBAAgB;AACjB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EAC1B,qBAAkB;AACnB,YAAY,EAAC,mBAAmB,EAAC,4BAAyB;AAC1D,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AACpD,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,wBAAqB;AACtB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,wBAAqB"}
@@ -0,0 +1,6 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { SharedTile2DHeader } from "./tile-2d-header.js";
5
+ export { Tileset2D, STRATEGY_DEFAULT, STRATEGY_NEVER, STRATEGY_REPLACE } from "./tileset-2d.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tileset-2d/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAiBpC,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAQpD,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,wBAAqB"}
@@ -0,0 +1,68 @@
1
+ import { RequestScheduler } from '@loaders.gl/loader-utils';
2
+ import type { TileBoundingBox, TileIndex, TileLoadProps } from "./types.js";
3
+ /** Parameters used by {@link SharedTile2DHeader.loadData}. */
4
+ export type Tile2DLoadDataProps<DataT = any> = {
5
+ /** Shared request scheduler for throttling tile fetches. */
6
+ requestScheduler: RequestScheduler;
7
+ /** Application-provided tile data loader. */
8
+ getData: (props: TileLoadProps) => Promise<DataT | null> | DataT | null;
9
+ /** Callback fired after tile content resolves successfully. */
10
+ onLoad: (tile: SharedTile2DHeader<DataT>) => void;
11
+ /** Callback fired after tile content fails to load. */
12
+ onError: (error: any, tile: SharedTile2DHeader<DataT>) => void;
13
+ };
14
+ /** Shared tile cache entry used by {@link Tileset2D}. */
15
+ export declare class SharedTile2DHeader<DataT = any> {
16
+ /** x/y/z tile coordinate. */
17
+ index: TileIndex;
18
+ /** Closest cached ancestor tile in the current tree. */
19
+ parent: SharedTile2DHeader | null;
20
+ /** Cached child tiles beneath this tile. */
21
+ children: SharedTile2DHeader[] | null;
22
+ /** Loaded tile payload. */
23
+ content: DataT | null;
24
+ /** Cached tile load error, if the last request failed. */
25
+ error: Error | null;
26
+ /** Stable tile cache id. */
27
+ id: string;
28
+ /** Resolved zoom level for the tile. */
29
+ zoom: number;
30
+ /** Optional application data associated with the tile. */
31
+ userData?: Record<string, any>;
32
+ /** Bounds represented as `[[minX, minY], [maxX, maxY]]` for loaders.gl compatibility. */
33
+ boundingBox: [min: number[], max: number[]];
34
+ private _abortController;
35
+ private _loader;
36
+ private _loaderId;
37
+ private _isLoaded;
38
+ private _isCancelled;
39
+ private _needsReload;
40
+ private _bbox;
41
+ /** Creates a tile header for a specific tile index. */
42
+ constructor(index: TileIndex);
43
+ /** Structured bounds for the tile in the active coordinate system. */
44
+ get bbox(): TileBoundingBox;
45
+ /** Initializes the tile bounds once during tile creation. */
46
+ set bbox(value: TileBoundingBox);
47
+ /** Resolves to loaded content while a request is in flight, otherwise returns cached content. */
48
+ get data(): Promise<DataT | null> | DataT | null;
49
+ /** Indicates whether tile content is available and up to date. */
50
+ get isLoaded(): boolean;
51
+ /** Indicates whether a tile request is currently in flight. */
52
+ get isLoading(): boolean;
53
+ /** Indicates whether the tile is cached in a failed state. */
54
+ get hasError(): boolean;
55
+ /** Indicates whether the tile should be requested again. */
56
+ get needsReload(): boolean;
57
+ /** Estimated byte size of the cached payload. */
58
+ get byteLength(): number;
59
+ /** Internal request pipeline used by {@link loadData}. */
60
+ private _loadData;
61
+ /** Loads tile data through the shared scheduler. */
62
+ loadData(opts: Tile2DLoadDataProps<DataT>): Promise<void>;
63
+ /** Marks the tile stale so it is refreshed on the next traversal. */
64
+ setNeedsReload(): void;
65
+ /** Cancels an in-flight tile request. */
66
+ abort(): void;
67
+ }
68
+ //# sourceMappingURL=tile-2d-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-2d-header.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/tile-2d-header.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAC,eAAe,EAAE,SAAS,EAAE,aAAa,EAAC,mBAAgB;AAEvE,8DAA8D;AAC9D,MAAM,MAAM,mBAAmB,CAAC,KAAK,GAAG,GAAG,IAAI;IAC7C,4DAA4D;IAC5D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,6CAA6C;IAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACxE,+DAA+D;IAC/D,MAAM,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAClD,uDAAuD;IACvD,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,yDAAyD;AACzD,qBAAa,kBAAkB,CAAC,KAAK,GAAG,GAAG;IACzC,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACtC,2BAA2B;IAC3B,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,0DAA0D;IAC1D,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,4BAA4B;IAC5B,EAAE,EAAG,MAAM,CAAC;IACZ,wCAAwC;IACxC,IAAI,EAAG,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,yFAAyF;IACzF,WAAW,EAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAmB;IAEhC,uDAAuD;gBAC3C,KAAK,EAAE,SAAS;IAc5B,sEAAsE;IACtE,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,EAiB9B;IAED,iGAAiG;IACjG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAM/C;IAED,kEAAkE;IAClE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,+DAA+D;IAC/D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8DAA8D;IAC9D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,4DAA4D;IAC5D,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,iDAAiD;IACjD,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,0DAA0D;YAC5C,SAAS;IA2DvB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,qEAAqE;IACrE,cAAc,IAAI,IAAI;IAQtB,yCAAyC;IACzC,KAAK,IAAI,IAAI;CAOd"}
@@ -0,0 +1,181 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Shared tile cache entry used by {@link Tileset2D}. */
5
+ export class SharedTile2DHeader {
6
+ /** x/y/z tile coordinate. */
7
+ index;
8
+ /** Closest cached ancestor tile in the current tree. */
9
+ parent;
10
+ /** Cached child tiles beneath this tile. */
11
+ children;
12
+ /** Loaded tile payload. */
13
+ content;
14
+ /** Cached tile load error, if the last request failed. */
15
+ error;
16
+ /** Stable tile cache id. */
17
+ id;
18
+ /** Resolved zoom level for the tile. */
19
+ zoom;
20
+ /** Optional application data associated with the tile. */
21
+ userData;
22
+ /** Bounds represented as `[[minX, minY], [maxX, maxY]]` for loaders.gl compatibility. */
23
+ boundingBox;
24
+ _abortController;
25
+ _loader;
26
+ _loaderId;
27
+ _isLoaded;
28
+ _isCancelled;
29
+ _needsReload;
30
+ _bbox;
31
+ /** Creates a tile header for a specific tile index. */
32
+ constructor(index) {
33
+ this.index = index;
34
+ this.parent = null;
35
+ this.children = [];
36
+ this.content = null;
37
+ this.error = null;
38
+ this._loader = undefined;
39
+ this._abortController = null;
40
+ this._loaderId = 0;
41
+ this._isLoaded = false;
42
+ this._isCancelled = false;
43
+ this._needsReload = false;
44
+ }
45
+ /** Structured bounds for the tile in the active coordinate system. */
46
+ get bbox() {
47
+ return this._bbox;
48
+ }
49
+ /** Initializes the tile bounds once during tile creation. */
50
+ set bbox(value) {
51
+ if (this._bbox) {
52
+ return;
53
+ }
54
+ this._bbox = value;
55
+ if ('west' in value) {
56
+ this.boundingBox = [
57
+ [value.west, value.south],
58
+ [value.east, value.north]
59
+ ];
60
+ }
61
+ else {
62
+ this.boundingBox = [
63
+ [value.left, value.top],
64
+ [value.right, value.bottom]
65
+ ];
66
+ }
67
+ }
68
+ /** Resolves to loaded content while a request is in flight, otherwise returns cached content. */
69
+ get data() {
70
+ const loader = this._loader;
71
+ if (!this._isCancelled && loader !== undefined) {
72
+ return loader.then(() => this.data);
73
+ }
74
+ return this.content;
75
+ }
76
+ /** Indicates whether tile content is available and up to date. */
77
+ get isLoaded() {
78
+ return this._isLoaded && !this._needsReload;
79
+ }
80
+ /** Indicates whether a tile request is currently in flight. */
81
+ get isLoading() {
82
+ return Boolean(this._loader) && !this._isCancelled;
83
+ }
84
+ /** Indicates whether the tile is cached in a failed state. */
85
+ get hasError() {
86
+ return Boolean(this.error);
87
+ }
88
+ /** Indicates whether the tile should be requested again. */
89
+ get needsReload() {
90
+ return this._needsReload || this._isCancelled;
91
+ }
92
+ /** Estimated byte size of the cached payload. */
93
+ get byteLength() {
94
+ const result = this.content ? this.content.byteLength : 0;
95
+ return Number.isFinite(result) ? result : 0;
96
+ }
97
+ /** Internal request pipeline used by {@link loadData}. */
98
+ async _loadData({ getData, requestScheduler, onLoad, onError }) {
99
+ const completeLoad = (tileData, error, loaderId) => {
100
+ if (loaderId !== this._loaderId) {
101
+ return;
102
+ }
103
+ this._loader = undefined;
104
+ this.content = tileData;
105
+ this.error = error ? normalizeTileError(error) : null;
106
+ if (this._isCancelled && !tileData) {
107
+ this._isLoaded = false;
108
+ return;
109
+ }
110
+ this._isLoaded = true;
111
+ this._isCancelled = false;
112
+ if (error) {
113
+ onError(error, this);
114
+ return;
115
+ }
116
+ onLoad(this);
117
+ };
118
+ const { index, id, bbox, userData, zoom } = this;
119
+ const loaderId = this._loaderId;
120
+ this._abortController = new AbortController();
121
+ const { signal } = this._abortController;
122
+ const requestToken = await requestScheduler.scheduleRequest(this, () => 1);
123
+ if (!requestToken) {
124
+ this._isCancelled = true;
125
+ return;
126
+ }
127
+ if (this._isCancelled) {
128
+ requestToken.done();
129
+ return;
130
+ }
131
+ let tileData = null;
132
+ let error;
133
+ try {
134
+ tileData = await getData({ index, id, bbox, userData, zoom, signal });
135
+ }
136
+ catch (err) {
137
+ error = err || true;
138
+ }
139
+ finally {
140
+ requestToken.done();
141
+ }
142
+ completeLoad(tileData, error, loaderId);
143
+ }
144
+ /** Loads tile data through the shared scheduler. */
145
+ loadData(opts) {
146
+ this._isLoaded = false;
147
+ this._isCancelled = false;
148
+ this._needsReload = false;
149
+ this.error = null;
150
+ this._loaderId++;
151
+ this._loader = this._loadData(opts);
152
+ return this._loader;
153
+ }
154
+ /** Marks the tile stale so it is refreshed on the next traversal. */
155
+ setNeedsReload() {
156
+ if (this.isLoading) {
157
+ this.abort();
158
+ this._loader = undefined;
159
+ }
160
+ this._needsReload = true;
161
+ }
162
+ /** Cancels an in-flight tile request. */
163
+ abort() {
164
+ if (this.isLoaded) {
165
+ return;
166
+ }
167
+ this._isCancelled = true;
168
+ this._abortController?.abort();
169
+ }
170
+ }
171
+ /** Normalizes arbitrary thrown values to `Error` instances for tile cache bookkeeping. */
172
+ function normalizeTileError(error) {
173
+ if (error instanceof Error) {
174
+ return error;
175
+ }
176
+ if (typeof error === 'string') {
177
+ return new Error(error);
178
+ }
179
+ return new Error('Tile request failed');
180
+ }
181
+ //# sourceMappingURL=tile-2d-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-2d-header.js","sourceRoot":"","sources":["../../src/tileset-2d/tile-2d-header.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { type TileSource, type TileSourceMetadata } from '@loaders.gl/loader-utils';
2
+ import { Stats } from '@probe.gl/stats';
3
+ import { SharedTile2DHeader } from "./tile-2d-header.js";
4
+ import type { Tileset2DAdapter } from "./adapter.js";
5
+ import type { TileIndex, TileLoadProps, ZRange } from "./types.js";
6
+ /** Never show ancestor or descendant placeholder tiles. */
7
+ export declare const STRATEGY_NEVER = "never";
8
+ /** Prefer non-overlapping loaded tiles while replacements stream in. */
9
+ export declare const STRATEGY_REPLACE = "no-overlap";
10
+ /** Prefer the best currently available loaded ancestor or descendant tiles. */
11
+ export declare const STRATEGY_DEFAULT = "best-available";
12
+ /**
13
+ * Function form of a refinement strategy.
14
+ *
15
+ * The callback receives the current cached tiles and a visibility setter that can be used
16
+ * to control placeholder visibility for individual tiles.
17
+ */
18
+ export type RefinementStrategyFunction = (tiles: SharedTile2DHeader[], setVisible: (tile: SharedTile2DHeader, isVisible: boolean) => void) => void;
19
+ /** Strategy controlling how parent and child placeholder tiles are displayed while content loads. */
20
+ export type RefinementStrategy = typeof STRATEGY_NEVER | typeof STRATEGY_REPLACE | typeof STRATEGY_DEFAULT | RefinementStrategyFunction;
21
+ /** Core configuration shared by all {@link Tileset2D} instances. */
22
+ export type Tileset2DBaseProps<DataT = any, ViewStateT = unknown> = {
23
+ /** Callback used to load tile payloads. */
24
+ getTileData: (props: TileLoadProps) => Promise<DataT | null> | DataT | null;
25
+ /** Adapter used to compute tile traversal and tile metadata. */
26
+ adapter?: Tileset2DAdapter<ViewStateT> | null;
27
+ /** Bounding box limiting tile generation. */
28
+ extent?: number[] | null;
29
+ /** Tile size in pixels. */
30
+ tileSize?: number;
31
+ /** Maximum zoom level to request. */
32
+ maxZoom?: number | null;
33
+ /** Minimum zoom level to request. */
34
+ minZoom?: number | null;
35
+ /** Maximum number of tiles kept in cache. */
36
+ maxCacheSize?: number | null;
37
+ /** Maximum bytes kept in cache. */
38
+ maxCacheByteSize?: number | null;
39
+ /** Placeholder refinement strategy. */
40
+ refinementStrategy?: RefinementStrategy;
41
+ /** Elevation range used by geospatial tile selection. */
42
+ zRange?: ZRange | null;
43
+ /** Maximum concurrent tile requests. */
44
+ maxRequests?: number;
45
+ /** Debounce interval applied before issuing queued requests. */
46
+ debounceTime?: number;
47
+ /** Integer zoom offset applied when choosing tile levels. */
48
+ zoomOffset?: number;
49
+ /** Callback fired when a tile loads successfully. */
50
+ onTileLoad?: (tile: SharedTile2DHeader<DataT>) => void;
51
+ /** Callback fired when a tile is evicted from cache. */
52
+ onTileUnload?: (tile: SharedTile2DHeader<DataT>) => void;
53
+ /** Callback fired when a tile request fails. */
54
+ onTileError?: (err: any, tile: SharedTile2DHeader<DataT>) => void;
55
+ };
56
+ /** Options for creating a shared tile cache that can be reused by multiple layers and views. */
57
+ export type Tileset2DProps<DataT = any, ViewStateT = unknown> = Omit<Tileset2DBaseProps<DataT, ViewStateT>, 'getTileData'> & {
58
+ /** Optional tile loader used when not sourcing data from a loaders.gl TileSource. */
59
+ getTileData?: (props: TileLoadProps) => Promise<DataT | null> | DataT | null;
60
+ /** Optional loaders.gl TileSource backing this shared tileset. */
61
+ tileSource?: TileSource | null;
62
+ };
63
+ /** Subscription callbacks emitted by {@link Tileset2D}. */
64
+ export type Tile2DListener<DataT = any> = {
65
+ /** Fired after a tile loads successfully. */
66
+ onTileLoad?: (tile: SharedTile2DHeader<DataT>) => void;
67
+ /** Fired after a tile request fails. */
68
+ onTileError?: (error: any, tile: SharedTile2DHeader<DataT>) => void;
69
+ /** Fired after a tile is evicted from cache. */
70
+ onTileUnload?: (tile: SharedTile2DHeader<DataT>) => void;
71
+ /** Fired when metadata or effective configuration changes. */
72
+ onUpdate?: () => void;
73
+ /** Fired when asynchronous metadata initialization fails. */
74
+ onError?: (error: Error) => void;
75
+ /** Fired after live tileset counters are recomputed. */
76
+ onStatsChange?: (stats: Stats) => void;
77
+ };
78
+ /** Shared tile cache and loading engine for one or more consumers. */
79
+ export declare class Tileset2D<DataT = any, ViewStateT = unknown> {
80
+ /** Live counters describing shared tileset state. */
81
+ readonly stats: Stats;
82
+ /** Cached metadata returned by the backing TileSource, if any. */
83
+ sourceMetadata: TileSourceMetadata | null;
84
+ protected opts: Required<Tileset2DProps<DataT, ViewStateT>>;
85
+ private _requestScheduler;
86
+ private _cache;
87
+ private _dirty;
88
+ private _tiles;
89
+ private _cacheByteSize;
90
+ private _unloadedTileCount;
91
+ private _listeners;
92
+ private _consumers;
93
+ private _explicitOptionKeys;
94
+ private _baseOpts;
95
+ private _sourceMetadataOverrides;
96
+ private _maxZoom?;
97
+ private _minZoom?;
98
+ private _lastTileContext;
99
+ /** Creates a tileset from either `getTileData` or a loaders.gl `TileSource`. */
100
+ constructor(opts: Tileset2DProps<DataT, ViewStateT>);
101
+ /** Convenience factory for wrapping a loaders.gl `TileSource`. */
102
+ static fromTileSource<DataT = any>(tileSource: TileSource, opts?: Omit<Tileset2DProps<DataT>, 'tileSource' | 'getTileData'>): Tileset2D<DataT>;
103
+ /** All tiles currently present in the shared cache. */
104
+ get tiles(): SharedTile2DHeader<DataT>[];
105
+ /** Estimated byte size of all tile content currently retained in cache. */
106
+ get cacheByteSize(): number;
107
+ /** Union of tiles selected by all attached consumers. */
108
+ get selectedTiles(): SharedTile2DHeader<DataT>[];
109
+ /** Union of tiles contributing to the visible result across all consumers and views. */
110
+ get visibleTiles(): SharedTile2DHeader<DataT>[];
111
+ /** Tiles currently loading anywhere in the shared cache. */
112
+ get loadingTiles(): SharedTile2DHeader<DataT>[];
113
+ /** Tiles retained in cache that do not currently have loaded content. */
114
+ get unloadedTiles(): SharedTile2DHeader<DataT>[];
115
+ /** Maximum resolved zoom level after applying metadata and explicit options. */
116
+ get maxZoom(): number | undefined;
117
+ /** Minimum resolved zoom level after applying metadata and explicit options. */
118
+ get minZoom(): number | undefined;
119
+ /** Active refinement strategy for placeholder handling. */
120
+ get refinementStrategy(): RefinementStrategy;
121
+ /** Adapter currently used for traversal and tile metadata. */
122
+ get adapter(): Tileset2DAdapter<ViewStateT> | null;
123
+ /** Subscribes to tileset lifecycle events. */
124
+ subscribe(listener: Tile2DListener<DataT>): () => void;
125
+ /** Registers a consumer so cache pruning can account for its selected tiles. */
126
+ attachConsumer(id: symbol): void;
127
+ /** Unregisters a consumer and prunes unused requests and tiles. */
128
+ detachConsumer(id: symbol): void;
129
+ /** Updates tileset options and reapplies TileSource metadata overrides. */
130
+ setOptions(opts: Partial<Tileset2DProps<DataT, ViewStateT>>): void;
131
+ /** Aborts in-flight requests and clears the shared cache. */
132
+ finalize(): void;
133
+ /** Marks all retained tiles stale and drops unused cached tiles. */
134
+ reloadAll(): void;
135
+ /** Updates the selected and visible tile sets for one consumer. */
136
+ updateConsumer(id: symbol, selectedTiles: SharedTile2DHeader<DataT>[], visibleTiles: SharedTile2DHeader<DataT>[]): void;
137
+ /** Rebuilds parent/child links if the cache changed since the last traversal. */
138
+ prepareTiles(): void;
139
+ /** Returns tile indices needed to cover a viewport. */
140
+ getTileIndices({ viewState, maxZoom, minZoom, zRange, modelMatrix, modelMatrixInverse }: {
141
+ viewState: ViewStateT;
142
+ maxZoom?: number;
143
+ minZoom?: number;
144
+ zRange: ZRange | null;
145
+ modelMatrix?: readonly number[] | null;
146
+ modelMatrixInverse?: readonly number[] | null;
147
+ }): TileIndex[];
148
+ /** Returns the stable cache id for a tile index. */
149
+ getTileId(index: TileIndex): string;
150
+ /** Returns the zoom level represented by a tile index. */
151
+ getTileZoom(index: TileIndex): number;
152
+ /** Returns derived metadata used to initialize a tile header. */
153
+ getTileMetadata(index: TileIndex): Record<string, any>;
154
+ /** Returns the parent tile index in the quadtree. */
155
+ getParentIndex(index: TileIndex): TileIndex;
156
+ /** Returns a cached tile and optionally creates and loads it on demand. */
157
+ getTile(index: TileIndex, create: true): SharedTile2DHeader<DataT>;
158
+ getTile(index: TileIndex, create?: false): SharedTile2DHeader<DataT> | undefined;
159
+ /** Loads metadata from a TileSource and reapplies derived option overrides. */
160
+ private _initializeTileSource;
161
+ /** Tracks which options were explicitly set by the caller. */
162
+ private _rememberExplicitOptions;
163
+ /** Resolves defaults, metadata overrides, and caller options into runtime settings. */
164
+ private _applyResolvedOptions;
165
+ /** Maps TileSource metadata into supported tileset options. */
166
+ private _getMetadataOverrides;
167
+ /** Handles successful tile loads. */
168
+ private _handleTileLoad;
169
+ /** Handles tile load failures. */
170
+ private _handleTileError;
171
+ /** Handles tile eviction from cache. */
172
+ private _handleTileUnload;
173
+ /** Notifies listeners that metadata or effective options changed. */
174
+ private _notifyUpdate;
175
+ /** Notifies listeners about asynchronous metadata errors. */
176
+ private _notifyError;
177
+ /** Recomputes absolute counter stats and notifies listeners. */
178
+ private _updateStats;
179
+ /** Writes an absolute count into a probe.gl stat. */
180
+ private _setStatCount;
181
+ /** Returns the union of selected tiles across all consumers. */
182
+ private _getSelectedTilesUnion;
183
+ /** Returns the union of visible tiles across all consumers. */
184
+ private _getVisibleTilesUnion;
185
+ /** Moves a touched tile to the back of the cache map for LRU eviction ordering. */
186
+ private _touchTile;
187
+ /** Computes the total byte size of all cached tile content. */
188
+ private _getCacheByteSize;
189
+ /** Cancels low-priority requests when consumers no longer need them. */
190
+ private _pruneRequests;
191
+ /** Rebuilds parent and child links for all cached tiles. */
192
+ private _rebuildTree;
193
+ /** Updates the sorted tile list used by traversal and rendering. */
194
+ private _syncTiles;
195
+ /** Evicts unused cached tiles when configured cache limits are exceeded. */
196
+ private _resizeCache;
197
+ /** Finds the nearest cached ancestor tile for placeholder rendering. */
198
+ private _getNearestAncestor;
199
+ }
200
+ //# sourceMappingURL=tileset-2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset-2d.d.ts","sourceRoot":"","sources":["../../src/tileset-2d/tileset-2d.ts"],"names":[],"mappings":"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"}