@loaders.gl/tiles 5.0.0-alpha.11 → 5.0.0-alpha.13

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 (698) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +18 -72
  3. package/dist/dist.dev.js +5874 -23815
  4. package/dist/dist.min.js +3 -3
  5. package/dist/image-set.d.ts +1 -1
  6. package/dist/image-set.d.ts.map +1 -1
  7. package/dist/index.cjs +2803 -10209
  8. package/dist/index.cjs.map +3 -3
  9. package/dist/index.d.ts +4 -43
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -26
  12. package/dist/index.js.map +1 -1
  13. package/dist/mlt/bundled.d.ts +3 -0
  14. package/dist/mlt/bundled.d.ts.map +1 -0
  15. package/dist/mlt/bundled.js +5 -0
  16. package/dist/mlt/bundled.js.map +1 -0
  17. package/dist/mlt/index.cjs +3701 -0
  18. package/dist/mlt/index.cjs.map +6 -0
  19. package/dist/mlt/index.d.ts +10 -0
  20. package/dist/mlt/index.d.ts.map +1 -0
  21. package/dist/mlt/index.js +12 -0
  22. package/dist/mlt/index.js.map +1 -0
  23. package/dist/mlt/lib/encode-mlt-geometry.d.ts +6 -0
  24. package/dist/mlt/lib/encode-mlt-geometry.d.ts.map +1 -0
  25. package/dist/mlt/lib/encode-mlt-geometry.js +150 -0
  26. package/dist/mlt/lib/encode-mlt-geometry.js.map +1 -0
  27. package/dist/mlt/lib/encode-mlt-streams.d.ts +13 -0
  28. package/dist/mlt/lib/encode-mlt-streams.d.ts.map +1 -0
  29. package/dist/mlt/lib/encode-mlt-streams.js +57 -0
  30. package/dist/mlt/lib/encode-mlt-streams.js.map +1 -0
  31. package/dist/mlt/lib/encode-mlt.d.ts +6 -0
  32. package/dist/mlt/lib/encode-mlt.d.ts.map +1 -0
  33. package/dist/mlt/lib/encode-mlt.js +174 -0
  34. package/dist/mlt/lib/encode-mlt.js.map +1 -0
  35. package/dist/mlt/lib/parse-mlt.d.ts +11 -0
  36. package/dist/mlt/lib/parse-mlt.d.ts.map +1 -0
  37. package/dist/mlt/lib/parse-mlt.js +675 -0
  38. package/dist/mlt/lib/parse-mlt.js.map +1 -0
  39. package/dist/mlt/mlt-format.d.ts +14 -0
  40. package/dist/mlt/mlt-format.d.ts.map +1 -0
  41. package/dist/mlt/mlt-format.js +17 -0
  42. package/dist/mlt/mlt-format.js.map +1 -0
  43. package/dist/mlt/mlt-loader-with-parser.d.ts +91 -0
  44. package/dist/mlt/mlt-loader-with-parser.d.ts.map +1 -0
  45. package/dist/mlt/mlt-loader-with-parser.js +29 -0
  46. package/dist/mlt/mlt-loader-with-parser.js.map +1 -0
  47. package/dist/mlt/mlt-loader.d.ts +115 -0
  48. package/dist/mlt/mlt-loader.d.ts.map +1 -0
  49. package/dist/mlt/mlt-loader.js +38 -0
  50. package/dist/mlt/mlt-loader.js.map +1 -0
  51. package/dist/mlt/mlt-source-loader.d.ts +82 -0
  52. package/dist/mlt/mlt-source-loader.d.ts.map +1 -0
  53. package/dist/mlt/mlt-source-loader.js +179 -0
  54. package/dist/mlt/mlt-source-loader.js.map +1 -0
  55. package/dist/mlt/mlt-writer.d.ts +45 -0
  56. package/dist/mlt/mlt-writer.d.ts.map +1 -0
  57. package/dist/mlt/mlt-writer.js +21 -0
  58. package/dist/mlt/mlt-writer.js.map +1 -0
  59. package/dist/mlt/unbundled.d.ts +3 -0
  60. package/dist/mlt/unbundled.d.ts.map +1 -0
  61. package/dist/mlt/unbundled.js +5 -0
  62. package/dist/mlt/unbundled.js.map +1 -0
  63. package/dist/mvt/arrow-table-tile-source-loader-types.d.ts +36 -0
  64. package/dist/mvt/arrow-table-tile-source-loader-types.d.ts.map +1 -0
  65. package/dist/mvt/arrow-table-tile-source-loader-types.js +36 -0
  66. package/dist/mvt/arrow-table-tile-source-loader-types.js.map +1 -0
  67. package/dist/mvt/arrow-table-tile-source-loader.cjs +6343 -0
  68. package/dist/mvt/arrow-table-tile-source-loader.cjs.map +6 -0
  69. package/dist/mvt/arrow-table-tile-source-loader.d.ts +69 -0
  70. package/dist/mvt/arrow-table-tile-source-loader.d.ts.map +1 -0
  71. package/dist/mvt/arrow-table-tile-source-loader.js +216 -0
  72. package/dist/mvt/arrow-table-tile-source-loader.js.map +1 -0
  73. package/dist/mvt/arrow-table-tile-source-types.d.ts +21 -0
  74. package/dist/mvt/arrow-table-tile-source-types.d.ts.map +1 -0
  75. package/dist/mvt/arrow-table-tile-source-types.js +6 -0
  76. package/dist/mvt/arrow-table-tile-source-types.js.map +1 -0
  77. package/dist/mvt/bundled.d.ts +6 -0
  78. package/dist/mvt/bundled.d.ts.map +1 -0
  79. package/dist/mvt/bundled.js +7 -0
  80. package/dist/mvt/bundled.js.map +1 -0
  81. package/dist/mvt/dist.dev.js +46689 -0
  82. package/dist/mvt/dist.min.js +94 -0
  83. package/dist/mvt/index.cjs +10095 -0
  84. package/dist/mvt/index.cjs.map +6 -0
  85. package/dist/mvt/index.d.ts +28 -0
  86. package/dist/mvt/index.d.ts.map +1 -0
  87. package/dist/mvt/index.js +27 -0
  88. package/dist/mvt/index.js.map +1 -0
  89. package/dist/mvt/lib/encode-mvt-arrow.d.ts +6 -0
  90. package/dist/mvt/lib/encode-mvt-arrow.d.ts.map +1 -0
  91. package/dist/mvt/lib/encode-mvt-arrow.js +225 -0
  92. package/dist/mvt/lib/encode-mvt-arrow.js.map +1 -0
  93. package/dist/mvt/lib/encode-mvt.d.ts +30 -0
  94. package/dist/mvt/lib/encode-mvt.d.ts.map +1 -0
  95. package/dist/mvt/lib/encode-mvt.js +20 -0
  96. package/dist/mvt/lib/encode-mvt.js.map +1 -0
  97. package/dist/mvt/lib/get-schemas-from-tilejson.d.ts +4 -0
  98. package/dist/mvt/lib/get-schemas-from-tilejson.d.ts.map +1 -0
  99. package/dist/mvt/lib/get-schemas-from-tilejson.js +56 -0
  100. package/dist/mvt/lib/get-schemas-from-tilejson.js.map +1 -0
  101. package/dist/mvt/lib/is-longitude-latitude-crs.d.ts +3 -0
  102. package/dist/mvt/lib/is-longitude-latitude-crs.d.ts.map +1 -0
  103. package/dist/mvt/lib/is-longitude-latitude-crs.js +13 -0
  104. package/dist/mvt/lib/is-longitude-latitude-crs.js.map +1 -0
  105. package/dist/mvt/lib/mapbox-vt-pbf/geojson-wrapper.d.ts +25 -0
  106. package/dist/mvt/lib/mapbox-vt-pbf/geojson-wrapper.d.ts.map +1 -0
  107. package/dist/mvt/lib/mapbox-vt-pbf/geojson-wrapper.js +73 -0
  108. package/dist/mvt/lib/mapbox-vt-pbf/geojson-wrapper.js.map +1 -0
  109. package/dist/mvt/lib/mapbox-vt-pbf/to-vector-tile.d.ts +52 -0
  110. package/dist/mvt/lib/mapbox-vt-pbf/to-vector-tile.d.ts.map +1 -0
  111. package/dist/mvt/lib/mapbox-vt-pbf/to-vector-tile.js +165 -0
  112. package/dist/mvt/lib/mapbox-vt-pbf/to-vector-tile.js.map +1 -0
  113. package/dist/mvt/lib/mvt-pbf/mvt-constants.d.ts +116 -0
  114. package/dist/mvt/lib/mvt-pbf/mvt-constants.d.ts.map +1 -0
  115. package/dist/mvt/lib/mvt-pbf/mvt-constants.js +127 -0
  116. package/dist/mvt/lib/mvt-pbf/mvt-constants.js.map +1 -0
  117. package/dist/mvt/lib/mvt-pbf/mvt-types.d.ts +17 -0
  118. package/dist/mvt/lib/mvt-pbf/mvt-types.d.ts.map +1 -0
  119. package/dist/mvt/lib/mvt-pbf/mvt-types.js +5 -0
  120. package/dist/mvt/lib/mvt-pbf/mvt-types.js.map +1 -0
  121. package/dist/mvt/lib/mvt-pbf/parse-geometry-from-pbf.d.ts +77 -0
  122. package/dist/mvt/lib/mvt-pbf/parse-geometry-from-pbf.d.ts.map +1 -0
  123. package/dist/mvt/lib/mvt-pbf/parse-geometry-from-pbf.js +235 -0
  124. package/dist/mvt/lib/mvt-pbf/parse-geometry-from-pbf.js.map +1 -0
  125. package/dist/mvt/lib/mvt-pbf/parse-mvt-from-pbf.d.ts +25 -0
  126. package/dist/mvt/lib/mvt-pbf/parse-mvt-from-pbf.d.ts.map +1 -0
  127. package/dist/mvt/lib/mvt-pbf/parse-mvt-from-pbf.js +263 -0
  128. package/dist/mvt/lib/mvt-pbf/parse-mvt-from-pbf.js.map +1 -0
  129. package/dist/mvt/lib/mvt-pbf/write-mvt-to-pbf.d.ts +4 -0
  130. package/dist/mvt/lib/mvt-pbf/write-mvt-to-pbf.d.ts.map +1 -0
  131. package/dist/mvt/lib/mvt-pbf/write-mvt-to-pbf.js +134 -0
  132. package/dist/mvt/lib/mvt-pbf/write-mvt-to-pbf.js.map +1 -0
  133. package/dist/mvt/lib/mvt-worker-transport.d.ts +15 -0
  134. package/dist/mvt/lib/mvt-worker-transport.d.ts.map +1 -0
  135. package/dist/mvt/lib/mvt-worker-transport.js +54 -0
  136. package/dist/mvt/lib/mvt-worker-transport.js.map +1 -0
  137. package/dist/mvt/lib/parse-mvt-geojson.d.ts +6 -0
  138. package/dist/mvt/lib/parse-mvt-geojson.d.ts.map +1 -0
  139. package/dist/mvt/lib/parse-mvt-geojson.js +48 -0
  140. package/dist/mvt/lib/parse-mvt-geojson.js.map +1 -0
  141. package/dist/mvt/lib/parse-mvt.d.ts +14 -0
  142. package/dist/mvt/lib/parse-mvt.d.ts.map +1 -0
  143. package/dist/mvt/lib/parse-mvt.js +105 -0
  144. package/dist/mvt/lib/parse-mvt.js.map +1 -0
  145. package/dist/mvt/lib/parse-tilejson.d.ts +74 -0
  146. package/dist/mvt/lib/parse-tilejson.d.ts.map +1 -0
  147. package/dist/mvt/lib/parse-tilejson.js +267 -0
  148. package/dist/mvt/lib/parse-tilejson.js.map +1 -0
  149. package/dist/mvt/lib/resolve-table-tile-parameters.d.ts +4 -0
  150. package/dist/mvt/lib/resolve-table-tile-parameters.d.ts.map +1 -0
  151. package/dist/mvt/lib/resolve-table-tile-parameters.js +16 -0
  152. package/dist/mvt/lib/resolve-table-tile-parameters.js.map +1 -0
  153. package/dist/mvt/lib/types.d.ts +88 -0
  154. package/dist/mvt/lib/types.d.ts.map +1 -0
  155. package/dist/mvt/lib/types.js.map +1 -0
  156. package/dist/mvt/lib/utils/geometry-utils.d.ts +83 -0
  157. package/dist/mvt/lib/utils/geometry-utils.d.ts.map +1 -0
  158. package/dist/mvt/lib/utils/geometry-utils.js +211 -0
  159. package/dist/mvt/lib/utils/geometry-utils.js.map +1 -0
  160. package/dist/mvt/lib/vector-tile/vector-tile-feature.d.ts +72 -0
  161. package/dist/mvt/lib/vector-tile/vector-tile-feature.d.ts.map +1 -0
  162. package/dist/mvt/lib/vector-tile/vector-tile-feature.js +350 -0
  163. package/dist/mvt/lib/vector-tile/vector-tile-feature.js.map +1 -0
  164. package/dist/mvt/lib/vector-tile/vector-tile-layer.d.ts +29 -0
  165. package/dist/mvt/lib/vector-tile/vector-tile-layer.d.ts.map +1 -0
  166. package/dist/mvt/lib/vector-tile/vector-tile-layer.js +108 -0
  167. package/dist/mvt/lib/vector-tile/vector-tile-layer.js.map +1 -0
  168. package/dist/mvt/lib/vector-tile/vector-tile.d.ts +9 -0
  169. package/dist/mvt/lib/vector-tile/vector-tile.d.ts.map +1 -0
  170. package/dist/mvt/lib/vector-tile/vector-tile.js +28 -0
  171. package/dist/mvt/lib/vector-tile/vector-tile.js.map +1 -0
  172. package/dist/mvt/lib/vector-tiler/arrow-tile.d.ts +6 -0
  173. package/dist/mvt/lib/vector-tiler/arrow-tile.d.ts.map +1 -0
  174. package/dist/mvt/lib/vector-tiler/arrow-tile.js +84 -0
  175. package/dist/mvt/lib/vector-tiler/arrow-tile.js.map +1 -0
  176. package/dist/mvt/lib/vector-tiler/features/clip-features.d.ts +16 -0
  177. package/dist/mvt/lib/vector-tiler/features/clip-features.d.ts.map +1 -0
  178. package/dist/mvt/lib/vector-tiler/features/clip-features.js +211 -0
  179. package/dist/mvt/lib/vector-tiler/features/clip-features.js.map +1 -0
  180. package/dist/mvt/lib/vector-tiler/features/convert-feature.d.ts +18 -0
  181. package/dist/mvt/lib/vector-tiler/features/convert-feature.d.ts.map +1 -0
  182. package/dist/mvt/lib/vector-tiler/features/convert-feature.js +161 -0
  183. package/dist/mvt/lib/vector-tiler/features/convert-feature.js.map +1 -0
  184. package/dist/mvt/lib/vector-tiler/features/proto-feature.d.ts +30 -0
  185. package/dist/mvt/lib/vector-tiler/features/proto-feature.d.ts.map +1 -0
  186. package/dist/mvt/lib/vector-tiler/features/proto-feature.js +53 -0
  187. package/dist/mvt/lib/vector-tiler/features/proto-feature.js.map +1 -0
  188. package/dist/mvt/lib/vector-tiler/features/simplify-path.d.ts +10 -0
  189. package/dist/mvt/lib/vector-tiler/features/simplify-path.d.ts.map +1 -0
  190. package/dist/mvt/lib/vector-tiler/features/simplify-path.js +67 -0
  191. package/dist/mvt/lib/vector-tiler/features/simplify-path.js.map +1 -0
  192. package/dist/mvt/lib/vector-tiler/features/wrap-features.d.ts +17 -0
  193. package/dist/mvt/lib/vector-tiler/features/wrap-features.d.ts.map +1 -0
  194. package/dist/mvt/lib/vector-tiler/features/wrap-features.js +95 -0
  195. package/dist/mvt/lib/vector-tiler/features/wrap-features.js.map +1 -0
  196. package/dist/mvt/lib/vector-tiler/proto-tile.d.ts +40 -0
  197. package/dist/mvt/lib/vector-tiler/proto-tile.d.ts.map +1 -0
  198. package/dist/mvt/lib/vector-tiler/proto-tile.js +139 -0
  199. package/dist/mvt/lib/vector-tiler/proto-tile.js.map +1 -0
  200. package/dist/mvt/lib/vector-tiler/tile-to-geojson.d.ts +12 -0
  201. package/dist/mvt/lib/vector-tiler/tile-to-geojson.d.ts.map +1 -0
  202. package/dist/mvt/lib/vector-tiler/tile-to-geojson.js +81 -0
  203. package/dist/mvt/lib/vector-tiler/tile-to-geojson.js.map +1 -0
  204. package/dist/mvt/lib/vector-tiler/transform-tile.d.ts +7 -0
  205. package/dist/mvt/lib/vector-tiler/transform-tile.d.ts.map +1 -0
  206. package/dist/mvt/lib/vector-tiler/transform-tile.js +42 -0
  207. package/dist/mvt/lib/vector-tiler/transform-tile.js.map +1 -0
  208. package/dist/mvt/map-style-format.d.ts +13 -0
  209. package/dist/mvt/map-style-format.d.ts.map +1 -0
  210. package/dist/mvt/map-style-format.js +16 -0
  211. package/dist/mvt/map-style-format.js.map +1 -0
  212. package/dist/mvt/map-style-loader-with-parser.d.ts +26 -0
  213. package/dist/mvt/map-style-loader-with-parser.d.ts.map +1 -0
  214. package/dist/mvt/map-style-loader-with-parser.js +38 -0
  215. package/dist/mvt/map-style-loader-with-parser.js.map +1 -0
  216. package/dist/mvt/map-style-loader.d.ts +44 -0
  217. package/dist/mvt/map-style-loader.d.ts.map +1 -0
  218. package/dist/mvt/map-style-loader.js +25 -0
  219. package/dist/mvt/map-style-loader.js.map +1 -0
  220. package/dist/mvt/map-style-schema.d.ts +58 -0
  221. package/dist/mvt/map-style-schema.d.ts.map +1 -0
  222. package/dist/mvt/map-style-schema.js +47 -0
  223. package/dist/mvt/map-style-schema.js.map +1 -0
  224. package/dist/mvt/map-style.d.ts +110 -0
  225. package/dist/mvt/map-style.d.ts.map +1 -0
  226. package/dist/mvt/map-style.js +90 -0
  227. package/dist/mvt/map-style.js.map +1 -0
  228. package/dist/mvt/mvt-format.d.ts +14 -0
  229. package/dist/mvt/mvt-format.d.ts.map +1 -0
  230. package/dist/mvt/mvt-format.js +23 -0
  231. package/dist/mvt/mvt-format.js.map +1 -0
  232. package/dist/mvt/mvt-geojson-loader-types.d.ts +82 -0
  233. package/dist/mvt/mvt-geojson-loader-types.d.ts.map +1 -0
  234. package/dist/mvt/mvt-geojson-loader-types.js +34 -0
  235. package/dist/mvt/mvt-geojson-loader-types.js.map +1 -0
  236. package/dist/mvt/mvt-geojson-loader.cjs +1366 -0
  237. package/dist/mvt/mvt-geojson-loader.cjs.map +6 -0
  238. package/dist/mvt/mvt-geojson-loader.d.ts +32 -0
  239. package/dist/mvt/mvt-geojson-loader.d.ts.map +1 -0
  240. package/dist/mvt/mvt-geojson-loader.js +13 -0
  241. package/dist/mvt/mvt-geojson-loader.js.map +1 -0
  242. package/dist/mvt/mvt-loader-with-parser.d.ts +105 -0
  243. package/dist/mvt/mvt-loader-with-parser.d.ts.map +1 -0
  244. package/dist/mvt/mvt-loader-with-parser.js +21 -0
  245. package/dist/mvt/mvt-loader-with-parser.js.map +1 -0
  246. package/dist/mvt/mvt-loader.d.ts +129 -0
  247. package/dist/mvt/mvt-loader.d.ts.map +1 -0
  248. package/dist/mvt/mvt-loader.js +40 -0
  249. package/dist/mvt/mvt-loader.js.map +1 -0
  250. package/dist/mvt/mvt-source-loader.d.ts +102 -0
  251. package/dist/mvt/mvt-source-loader.d.ts.map +1 -0
  252. package/dist/mvt/mvt-source-loader.js +275 -0
  253. package/dist/mvt/mvt-source-loader.js.map +1 -0
  254. package/dist/mvt/mvt-writer.d.ts +28 -0
  255. package/dist/mvt/mvt-writer.d.ts.map +1 -0
  256. package/dist/mvt/mvt-writer.js +32 -0
  257. package/dist/mvt/mvt-writer.js.map +1 -0
  258. package/dist/mvt/table-tile-source-loader.d.ts +169 -0
  259. package/dist/mvt/table-tile-source-loader.d.ts.map +1 -0
  260. package/dist/mvt/table-tile-source-loader.js +478 -0
  261. package/dist/mvt/table-tile-source-loader.js.map +1 -0
  262. package/dist/mvt/tilejson-format.d.ts +13 -0
  263. package/dist/mvt/tilejson-format.d.ts.map +1 -0
  264. package/dist/mvt/tilejson-format.js +16 -0
  265. package/dist/mvt/tilejson-format.js.map +1 -0
  266. package/dist/mvt/tilejson-loader-with-parser.d.ts +13 -0
  267. package/dist/mvt/tilejson-loader-with-parser.d.ts.map +1 -0
  268. package/dist/mvt/tilejson-loader-with-parser.js +25 -0
  269. package/dist/mvt/tilejson-loader-with-parser.js.map +1 -0
  270. package/dist/mvt/tilejson-loader.d.ts +56 -0
  271. package/dist/mvt/tilejson-loader.d.ts.map +1 -0
  272. package/dist/mvt/tilejson-loader.js +28 -0
  273. package/dist/mvt/tilejson-loader.js.map +1 -0
  274. package/dist/mvt/tilejson-zod-schema.cjs +79 -0
  275. package/dist/mvt/tilejson-zod-schema.cjs.map +6 -0
  276. package/dist/mvt/tilejson-zod-schema.d.ts +218 -0
  277. package/dist/mvt/tilejson-zod-schema.d.ts.map +1 -0
  278. package/dist/mvt/tilejson-zod-schema.js +68 -0
  279. package/dist/mvt/tilejson-zod-schema.js.map +1 -0
  280. package/dist/mvt/tilejson.schema.json +197 -0
  281. package/dist/mvt/unbundled.d.ts +8 -0
  282. package/dist/mvt/unbundled.d.ts.map +1 -0
  283. package/dist/mvt/unbundled.js +8 -0
  284. package/dist/mvt/unbundled.js.map +1 -0
  285. package/dist/mvt/workers/mvt-worker-node.d.ts +2 -0
  286. package/dist/mvt/workers/mvt-worker-node.d.ts.map +1 -0
  287. package/dist/mvt/workers/mvt-worker-node.js +8 -0
  288. package/dist/mvt/workers/mvt-worker-node.js.map +1 -0
  289. package/dist/mvt/workers/mvt-worker.d.ts +2 -0
  290. package/dist/mvt/workers/mvt-worker.d.ts.map +1 -0
  291. package/dist/mvt/workers/mvt-worker.js +7 -0
  292. package/dist/mvt/workers/mvt-worker.js.map +1 -0
  293. package/dist/mvt-worker-node.js +72460 -0
  294. package/dist/mvt-worker-node.js.map +7 -0
  295. package/dist/mvt-worker.js +21239 -0
  296. package/dist/pmtiles/bundled.d.ts +3 -0
  297. package/dist/pmtiles/bundled.d.ts.map +1 -0
  298. package/dist/pmtiles/bundled.js +5 -0
  299. package/dist/pmtiles/bundled.js.map +1 -0
  300. package/dist/pmtiles/dist.dev.js +50530 -0
  301. package/dist/pmtiles/dist.min.js +94 -0
  302. package/dist/pmtiles/geoarrow.cjs +6718 -0
  303. package/dist/pmtiles/geoarrow.cjs.map +6 -0
  304. package/dist/pmtiles/geoarrow.d.ts +30 -0
  305. package/dist/pmtiles/geoarrow.d.ts.map +1 -0
  306. package/dist/pmtiles/geoarrow.js +143 -0
  307. package/dist/pmtiles/geoarrow.js.map +1 -0
  308. package/dist/pmtiles/index.cjs +8011 -0
  309. package/dist/pmtiles/index.cjs.map +6 -0
  310. package/dist/pmtiles/index.d.ts +14 -0
  311. package/dist/pmtiles/index.d.ts.map +1 -0
  312. package/dist/pmtiles/index.js +10 -0
  313. package/dist/pmtiles/index.js.map +1 -0
  314. package/dist/pmtiles/lib/blob-source.d.ts +14 -0
  315. package/dist/pmtiles/lib/blob-source.d.ts.map +1 -0
  316. package/dist/pmtiles/lib/blob-source.js +32 -0
  317. package/dist/pmtiles/lib/blob-source.js.map +1 -0
  318. package/dist/pmtiles/lib/encode-pmtiles.d.ts +8 -0
  319. package/dist/pmtiles/lib/encode-pmtiles.d.ts.map +1 -0
  320. package/dist/pmtiles/lib/encode-pmtiles.js +268 -0
  321. package/dist/pmtiles/lib/encode-pmtiles.js.map +1 -0
  322. package/dist/pmtiles/lib/parse-pmtiles.d.ts +52 -0
  323. package/dist/pmtiles/lib/parse-pmtiles.d.ts.map +1 -0
  324. package/dist/pmtiles/lib/parse-pmtiles.js +95 -0
  325. package/dist/pmtiles/lib/parse-pmtiles.js.map +1 -0
  326. package/dist/pmtiles/lib/range-request-source.d.ts +24 -0
  327. package/dist/pmtiles/lib/range-request-source.d.ts.map +1 -0
  328. package/dist/pmtiles/lib/range-request-source.js +45 -0
  329. package/dist/pmtiles/lib/range-request-source.js.map +1 -0
  330. package/dist/pmtiles/lib/version.d.ts +2 -0
  331. package/dist/pmtiles/lib/version.d.ts.map +1 -0
  332. package/dist/pmtiles/lib/version.js +8 -0
  333. package/dist/pmtiles/lib/version.js.map +1 -0
  334. package/dist/pmtiles/pmtiles-format.d.ts +14 -0
  335. package/dist/pmtiles/pmtiles-format.d.ts.map +1 -0
  336. package/dist/pmtiles/pmtiles-format.js +17 -0
  337. package/dist/pmtiles/pmtiles-format.js.map +1 -0
  338. package/dist/pmtiles/pmtiles-loader-with-parser.d.ts +30 -0
  339. package/dist/pmtiles/pmtiles-loader-with-parser.d.ts.map +1 -0
  340. package/dist/pmtiles/pmtiles-loader-with-parser.js +41 -0
  341. package/dist/pmtiles/pmtiles-loader-with-parser.js.map +1 -0
  342. package/dist/pmtiles/pmtiles-loader.d.ts +41 -0
  343. package/dist/pmtiles/pmtiles-loader.d.ts.map +1 -0
  344. package/dist/pmtiles/pmtiles-loader.js +20 -0
  345. package/dist/pmtiles/pmtiles-loader.js.map +1 -0
  346. package/dist/pmtiles/pmtiles-source-loader.d.ts +85 -0
  347. package/dist/pmtiles/pmtiles-source-loader.d.ts.map +1 -0
  348. package/dist/pmtiles/pmtiles-source-loader.js +239 -0
  349. package/dist/pmtiles/pmtiles-source-loader.js.map +1 -0
  350. package/dist/pmtiles/pmtiles-writer-types.d.ts +39 -0
  351. package/dist/pmtiles/pmtiles-writer-types.d.ts.map +1 -0
  352. package/dist/pmtiles/pmtiles-writer-types.js +5 -0
  353. package/dist/pmtiles/pmtiles-writer-types.js.map +1 -0
  354. package/dist/pmtiles/pmtiles-writer.d.ts +22 -0
  355. package/dist/pmtiles/pmtiles-writer.d.ts.map +1 -0
  356. package/dist/pmtiles/pmtiles-writer.js +15 -0
  357. package/dist/pmtiles/pmtiles-writer.js.map +1 -0
  358. package/dist/pmtiles/raster.cjs +1183 -0
  359. package/dist/pmtiles/raster.cjs.map +6 -0
  360. package/dist/pmtiles/raster.d.ts +30 -0
  361. package/dist/pmtiles/raster.d.ts.map +1 -0
  362. package/dist/pmtiles/raster.js +212 -0
  363. package/dist/pmtiles/raster.js.map +1 -0
  364. package/dist/pmtiles/source-info.d.ts +25 -0
  365. package/dist/pmtiles/source-info.d.ts.map +1 -0
  366. package/dist/{types.js → pmtiles/source-info.js} +1 -1
  367. package/dist/pmtiles/source-info.js.map +1 -0
  368. package/dist/pmtiles/unbundled.d.ts +3 -0
  369. package/dist/pmtiles/unbundled.d.ts.map +1 -0
  370. package/dist/pmtiles/unbundled.js +5 -0
  371. package/dist/pmtiles/unbundled.js.map +1 -0
  372. package/dist/raster-set.d.ts +1 -1
  373. package/dist/raster-set.d.ts.map +1 -1
  374. package/dist/raster-set.js +1 -1
  375. package/dist/raster-set.js.map +1 -1
  376. package/dist/tile-matrix.cjs +81 -0
  377. package/dist/tile-matrix.cjs.map +6 -0
  378. package/dist/tile-matrix.d.ts +52 -0
  379. package/dist/tile-matrix.d.ts.map +1 -0
  380. package/dist/tile-matrix.js +75 -0
  381. package/dist/tile-matrix.js.map +1 -0
  382. package/dist/tileset-2d/tile-2d-header.d.ts +2 -2
  383. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -1
  384. package/dist/tileset-2d/tile-2d-header.js +11 -11
  385. package/dist/tileset-2d/tile-2d-header.js.map +1 -1
  386. package/dist/tileset-2d/tileset-2d.d.ts +19 -10
  387. package/dist/tileset-2d/tileset-2d.d.ts.map +1 -1
  388. package/dist/tileset-2d/tileset-2d.js +69 -15
  389. package/dist/tileset-2d/tileset-2d.js.map +1 -1
  390. package/dist/tileset-2d.d.ts +2 -1
  391. package/dist/tileset-2d.d.ts.map +1 -1
  392. package/dist/tileset-2d.js +1 -1
  393. package/dist/tileset-2d.js.map +1 -1
  394. package/package.json +104 -16
  395. package/src/image-set.ts +1 -1
  396. package/src/index.ts +9 -123
  397. package/src/mlt/bundled.ts +9 -0
  398. package/src/mlt/index.ts +18 -0
  399. package/src/mlt/lib/encode-mlt-geometry.ts +162 -0
  400. package/src/mlt/lib/encode-mlt-streams.ts +66 -0
  401. package/src/mlt/lib/encode-mlt.ts +215 -0
  402. package/src/mlt/lib/parse-mlt.ts +906 -0
  403. package/src/mlt/libs/mlt-decoder.cjs +4552 -0
  404. package/src/mlt/mlt-format.ts +19 -0
  405. package/src/mlt/mlt-loader-with-parser.ts +57 -0
  406. package/src/mlt/mlt-loader.ts +64 -0
  407. package/src/mlt/mlt-source-loader.ts +266 -0
  408. package/src/mlt/mlt-writer.ts +47 -0
  409. package/src/mlt/unbundled.ts +6 -0
  410. package/src/mvt/arrow-table-tile-source-loader-types.ts +55 -0
  411. package/src/mvt/arrow-table-tile-source-loader.ts +307 -0
  412. package/src/mvt/arrow-table-tile-source-types.ts +32 -0
  413. package/src/mvt/bundled.ts +14 -0
  414. package/src/mvt/index.ts +67 -0
  415. package/src/mvt/lib/encode-mvt-arrow.ts +273 -0
  416. package/src/mvt/lib/encode-mvt.ts +46 -0
  417. package/src/mvt/lib/get-schemas-from-tilejson.ts +64 -0
  418. package/src/mvt/lib/is-longitude-latitude-crs.ts +15 -0
  419. package/src/mvt/lib/mapbox-vt-pbf/geojson-to-vt.ts.disabled +76 -0
  420. package/src/mvt/lib/mapbox-vt-pbf/geojson-wrapper.ts +89 -0
  421. package/src/mvt/lib/mapbox-vt-pbf/to-vector-tile.ts +230 -0
  422. package/src/mvt/lib/mvt-pbf/mvt-constants.ts +135 -0
  423. package/src/mvt/lib/mvt-pbf/mvt-types.ts +22 -0
  424. package/src/mvt/lib/mvt-pbf/parse-geometry-from-pbf.ts +285 -0
  425. package/src/mvt/lib/mvt-pbf/parse-mvt-from-pbf.ts +310 -0
  426. package/src/mvt/lib/mvt-pbf/write-mvt-to-pbf.ts +162 -0
  427. package/src/mvt/lib/mvt-worker-transport.ts +74 -0
  428. package/src/mvt/lib/parse-mvt-geojson.ts +65 -0
  429. package/src/mvt/lib/parse-mvt.ts +145 -0
  430. package/src/mvt/lib/parse-tilejson.ts +397 -0
  431. package/src/mvt/lib/resolve-table-tile-parameters.ts +23 -0
  432. package/src/mvt/lib/types.ts +90 -0
  433. package/src/mvt/lib/utils/geometry-utils.ts +238 -0
  434. package/src/mvt/lib/vector-tile/LICENSE.txt +31 -0
  435. package/src/mvt/lib/vector-tile/vector-tile-feature.ts +430 -0
  436. package/src/mvt/lib/vector-tile/vector-tile-layer.ts +130 -0
  437. package/src/mvt/lib/vector-tile/vector-tile.ts +32 -0
  438. package/src/mvt/lib/vector-tiler/LICENSE +19 -0
  439. package/src/mvt/lib/vector-tiler/arrow-tile.ts +93 -0
  440. package/src/mvt/lib/vector-tiler/features/clip-features.ts +250 -0
  441. package/src/mvt/lib/vector-tiler/features/convert-feature.ts +213 -0
  442. package/src/mvt/lib/vector-tiler/features/proto-feature.ts +104 -0
  443. package/src/mvt/lib/vector-tiler/features/simplify-path.ts +84 -0
  444. package/src/mvt/lib/vector-tiler/features/wrap-features.ts +125 -0
  445. package/src/mvt/lib/vector-tiler/proto-tile.ts +217 -0
  446. package/src/mvt/lib/vector-tiler/tile-to-geojson.ts +104 -0
  447. package/src/mvt/lib/vector-tiler/transform-tile.ts +57 -0
  448. package/src/mvt/map-style-format.ts +18 -0
  449. package/src/mvt/map-style-loader-with-parser.ts +62 -0
  450. package/src/mvt/map-style-loader.ts +31 -0
  451. package/src/mvt/map-style-schema.ts +53 -0
  452. package/src/mvt/map-style.ts +218 -0
  453. package/src/mvt/mvt-format.ts +25 -0
  454. package/src/mvt/mvt-geojson-loader-types.ts +60 -0
  455. package/src/mvt/mvt-geojson-loader.ts +20 -0
  456. package/src/mvt/mvt-loader-with-parser.ts +53 -0
  457. package/src/mvt/mvt-loader.ts +73 -0
  458. package/src/mvt/mvt-source-loader.ts +410 -0
  459. package/src/mvt/mvt-writer.ts +35 -0
  460. package/src/mvt/table-tile-source-loader.ts +672 -0
  461. package/src/mvt/tilejson-format.ts +18 -0
  462. package/src/mvt/tilejson-loader-with-parser.ts +38 -0
  463. package/src/mvt/tilejson-loader.ts +42 -0
  464. package/src/mvt/tilejson-zod-schema.ts +199 -0
  465. package/src/mvt/unbundled.ts +13 -0
  466. package/src/mvt/workers/mvt-worker-node.ts +9 -0
  467. package/src/mvt/workers/mvt-worker.ts +8 -0
  468. package/src/pmtiles/bundled.ts +6 -0
  469. package/src/pmtiles/geoarrow.ts +188 -0
  470. package/src/pmtiles/index.ts +27 -0
  471. package/src/pmtiles/lib/blob-source.ts +41 -0
  472. package/src/pmtiles/lib/encode-pmtiles.ts +322 -0
  473. package/src/pmtiles/lib/parse-pmtiles.ts +180 -0
  474. package/src/pmtiles/lib/range-request-source.ts +60 -0
  475. package/src/pmtiles/lib/version.ts +8 -0
  476. package/src/pmtiles/pmtiles-format.ts +19 -0
  477. package/src/pmtiles/pmtiles-loader-with-parser.ts +60 -0
  478. package/src/pmtiles/pmtiles-loader.ts +30 -0
  479. package/src/pmtiles/pmtiles-source-loader.ts +346 -0
  480. package/src/pmtiles/pmtiles-writer-types.ts +45 -0
  481. package/src/pmtiles/pmtiles-writer.ts +26 -0
  482. package/src/pmtiles/raster.ts +289 -0
  483. package/src/pmtiles/source-info.ts +25 -0
  484. package/src/pmtiles/unbundled.ts +6 -0
  485. package/src/raster-set.ts +2 -2
  486. package/src/tile-matrix.ts +138 -0
  487. package/src/tileset-2d/tile-2d-header.ts +14 -13
  488. package/src/tileset-2d/tileset-2d.ts +81 -19
  489. package/src/tileset-2d.ts +25 -1
  490. package/dist/constants.d.ts +0 -38
  491. package/dist/constants.d.ts.map +0 -1
  492. package/dist/constants.js +0 -39
  493. package/dist/constants.js.map +0 -1
  494. package/dist/point-cloud/point-cloud-tile.d.ts +0 -47
  495. package/dist/point-cloud/point-cloud-tile.d.ts.map +0 -1
  496. package/dist/point-cloud/point-cloud-tile.js +0 -70
  497. package/dist/point-cloud/point-cloud-tile.js.map +0 -1
  498. package/dist/point-cloud/point-cloud-tileset.d.ts +0 -135
  499. package/dist/point-cloud/point-cloud-tileset.d.ts.map +0 -1
  500. package/dist/point-cloud/point-cloud-tileset.js +0 -549
  501. package/dist/point-cloud/point-cloud-tileset.js.map +0 -1
  502. package/dist/point-cloud/types.d.ts +0 -81
  503. package/dist/point-cloud/types.d.ts.map +0 -1
  504. package/dist/point-cloud/types.js.map +0 -1
  505. package/dist/spatial/format-spatial-reference.d.ts +0 -68
  506. package/dist/spatial/format-spatial-reference.d.ts.map +0 -1
  507. package/dist/spatial/format-spatial-reference.js +0 -291
  508. package/dist/spatial/format-spatial-reference.js.map +0 -1
  509. package/dist/spatial/get-spatial-coordinate-frame.d.ts +0 -20
  510. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +0 -1
  511. package/dist/spatial/get-spatial-coordinate-frame.js +0 -139
  512. package/dist/spatial/get-spatial-coordinate-frame.js.map +0 -1
  513. package/dist/spatial/i3s-elevation.d.ts +0 -20
  514. package/dist/spatial/i3s-elevation.d.ts.map +0 -1
  515. package/dist/spatial/i3s-elevation.js +0 -90
  516. package/dist/spatial/i3s-elevation.js.map +0 -1
  517. package/dist/spatial/i3s-spatial-transformer.d.ts +0 -205
  518. package/dist/spatial/i3s-spatial-transformer.d.ts.map +0 -1
  519. package/dist/spatial/i3s-spatial-transformer.js +0 -731
  520. package/dist/spatial/i3s-spatial-transformer.js.map +0 -1
  521. package/dist/spatial/normalize-crs-identifier.d.ts +0 -15
  522. package/dist/spatial/normalize-crs-identifier.d.ts.map +0 -1
  523. package/dist/spatial/normalize-crs-identifier.js +0 -22
  524. package/dist/spatial/normalize-crs-identifier.js.map +0 -1
  525. package/dist/spatial/spatial-coordinate-transformer.d.ts +0 -52
  526. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +0 -1
  527. package/dist/spatial/spatial-coordinate-transformer.js +0 -295
  528. package/dist/spatial/spatial-coordinate-transformer.js.map +0 -1
  529. package/dist/spatial/spatial-resource-registry.d.ts +0 -47
  530. package/dist/spatial/spatial-resource-registry.d.ts.map +0 -1
  531. package/dist/spatial/spatial-resource-registry.js +0 -76
  532. package/dist/spatial/spatial-resource-registry.js.map +0 -1
  533. package/dist/spatial/spatial-types.d.ts +0 -190
  534. package/dist/spatial/spatial-types.d.ts.map +0 -1
  535. package/dist/spatial/spatial-types.js +0 -192
  536. package/dist/spatial/spatial-types.js.map +0 -1
  537. package/dist/spatial/tiles-3d-spatial-transformer.d.ts +0 -32
  538. package/dist/spatial/tiles-3d-spatial-transformer.d.ts.map +0 -1
  539. package/dist/spatial/tiles-3d-spatial-transformer.js +0 -163
  540. package/dist/spatial/tiles-3d-spatial-transformer.js.map +0 -1
  541. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts +0 -60
  542. package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts.map +0 -1
  543. package/dist/tileset-3d/common/indexed-archive-tileset-source.js +0 -130
  544. package/dist/tileset-3d/common/indexed-archive-tileset-source.js.map +0 -1
  545. package/dist/tileset-3d/common/tile-3d-contracts.d.ts +0 -63
  546. package/dist/tileset-3d/common/tile-3d-contracts.d.ts.map +0 -1
  547. package/dist/tileset-3d/common/tile-3d-contracts.js +0 -51
  548. package/dist/tileset-3d/common/tile-3d-contracts.js.map +0 -1
  549. package/dist/tileset-3d/common/tile-3d.d.ts +0 -410
  550. package/dist/tileset-3d/common/tile-3d.d.ts.map +0 -1
  551. package/dist/tileset-3d/common/tile-3d.js +0 -1056
  552. package/dist/tileset-3d/common/tile-3d.js.map +0 -1
  553. package/dist/tileset-3d/common/tileset-3d.d.ts +0 -367
  554. package/dist/tileset-3d/common/tileset-3d.d.ts.map +0 -1
  555. package/dist/tileset-3d/common/tileset-3d.js +0 -879
  556. package/dist/tileset-3d/common/tileset-3d.js.map +0 -1
  557. package/dist/tileset-3d/common/tileset-cache.d.ts +0 -29
  558. package/dist/tileset-3d/common/tileset-cache.d.ts.map +0 -1
  559. package/dist/tileset-3d/common/tileset-cache.js +0 -82
  560. package/dist/tileset-3d/common/tileset-cache.js.map +0 -1
  561. package/dist/tileset-3d/common/tileset-content-traversal.d.ts +0 -37
  562. package/dist/tileset-3d/common/tileset-content-traversal.d.ts.map +0 -1
  563. package/dist/tileset-3d/common/tileset-content-traversal.js +0 -80
  564. package/dist/tileset-3d/common/tileset-content-traversal.js.map +0 -1
  565. package/dist/tileset-3d/common/tileset-observability.d.ts +0 -60
  566. package/dist/tileset-3d/common/tileset-observability.d.ts.map +0 -1
  567. package/dist/tileset-3d/common/tileset-observability.js +0 -39
  568. package/dist/tileset-3d/common/tileset-observability.js.map +0 -1
  569. package/dist/tileset-3d/common/tileset-source.d.ts +0 -228
  570. package/dist/tileset-3d/common/tileset-source.d.ts.map +0 -1
  571. package/dist/tileset-3d/common/tileset-source.js +0 -17
  572. package/dist/tileset-3d/common/tileset-source.js.map +0 -1
  573. package/dist/tileset-3d/common/tileset-traverser.d.ts +0 -88
  574. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +0 -1
  575. package/dist/tileset-3d/common/tileset-traverser.js +0 -341
  576. package/dist/tileset-3d/common/tileset-traverser.js.map +0 -1
  577. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +0 -182
  578. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +0 -1
  579. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +0 -681
  580. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +0 -1
  581. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +0 -221
  582. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +0 -1
  583. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +0 -770
  584. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +0 -1
  585. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +0 -111
  586. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +0 -1
  587. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +0 -339
  588. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  589. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts +0 -27
  590. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +0 -1
  591. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js +0 -45
  592. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  593. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +0 -116
  594. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +0 -1
  595. package/dist/tileset-3d/format-i3s/i3s-source.js +0 -450
  596. package/dist/tileset-3d/format-i3s/i3s-source.js.map +0 -1
  597. package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts +0 -34
  598. package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +0 -1
  599. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js +0 -81
  600. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +0 -1
  601. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts +0 -25
  602. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +0 -1
  603. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js +0 -84
  604. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +0 -1
  605. package/dist/tileset-3d/helpers/3d-tiles-options.d.ts +0 -5
  606. package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +0 -1
  607. package/dist/tileset-3d/helpers/3d-tiles-options.js +0 -9
  608. package/dist/tileset-3d/helpers/3d-tiles-options.js.map +0 -1
  609. package/dist/tileset-3d/helpers/bounding-volume.d.ts +0 -23
  610. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +0 -1
  611. package/dist/tileset-3d/helpers/bounding-volume.js +0 -236
  612. package/dist/tileset-3d/helpers/bounding-volume.js.map +0 -1
  613. package/dist/tileset-3d/helpers/frame-state.d.ts +0 -93
  614. package/dist/tileset-3d/helpers/frame-state.d.ts.map +0 -1
  615. package/dist/tileset-3d/helpers/frame-state.js +0 -211
  616. package/dist/tileset-3d/helpers/frame-state.js.map +0 -1
  617. package/dist/tileset-3d/helpers/i3s-lod.d.ts +0 -20
  618. package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +0 -1
  619. package/dist/tileset-3d/helpers/i3s-lod.js +0 -95
  620. package/dist/tileset-3d/helpers/i3s-lod.js.map +0 -1
  621. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts +0 -17
  622. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts.map +0 -1
  623. package/dist/tileset-3d/helpers/s2-bounding-volume.js +0 -20
  624. package/dist/tileset-3d/helpers/s2-bounding-volume.js.map +0 -1
  625. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +0 -72
  626. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +0 -1
  627. package/dist/tileset-3d/helpers/tiles-3d-lod.js +0 -257
  628. package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +0 -1
  629. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +0 -134
  630. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +0 -1
  631. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +0 -179
  632. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +0 -1
  633. package/dist/tileset-3d/helpers/transform-utils.d.ts +0 -3
  634. package/dist/tileset-3d/helpers/transform-utils.d.ts.map +0 -1
  635. package/dist/tileset-3d/helpers/transform-utils.js +0 -86
  636. package/dist/tileset-3d/helpers/transform-utils.js.map +0 -1
  637. package/dist/tileset-3d/helpers/zoom.d.ts +0 -46
  638. package/dist/tileset-3d/helpers/zoom.d.ts.map +0 -1
  639. package/dist/tileset-3d/helpers/zoom.js +0 -86
  640. package/dist/tileset-3d/helpers/zoom.js.map +0 -1
  641. package/dist/types.d.ts +0 -48
  642. package/dist/types.d.ts.map +0 -1
  643. package/dist/types.js.map +0 -1
  644. package/dist/utils/doubly-linked-list-node.d.ts +0 -11
  645. package/dist/utils/doubly-linked-list-node.d.ts.map +0 -1
  646. package/dist/utils/doubly-linked-list-node.js +0 -20
  647. package/dist/utils/doubly-linked-list-node.js.map +0 -1
  648. package/dist/utils/doubly-linked-list.d.ts +0 -30
  649. package/dist/utils/doubly-linked-list.d.ts.map +0 -1
  650. package/dist/utils/doubly-linked-list.js +0 -93
  651. package/dist/utils/doubly-linked-list.js.map +0 -1
  652. package/dist/utils/managed-array.d.ts +0 -85
  653. package/dist/utils/managed-array.d.ts.map +0 -1
  654. package/dist/utils/managed-array.js +0 -152
  655. package/dist/utils/managed-array.js.map +0 -1
  656. package/src/constants.ts +0 -59
  657. package/src/point-cloud/point-cloud-tile.ts +0 -80
  658. package/src/point-cloud/point-cloud-tileset.ts +0 -767
  659. package/src/point-cloud/types.ts +0 -99
  660. package/src/spatial/format-spatial-reference.ts +0 -385
  661. package/src/spatial/get-spatial-coordinate-frame.ts +0 -169
  662. package/src/spatial/i3s-elevation.ts +0 -96
  663. package/src/spatial/i3s-spatial-transformer.ts +0 -1021
  664. package/src/spatial/normalize-crs-identifier.ts +0 -26
  665. package/src/spatial/spatial-coordinate-transformer.ts +0 -377
  666. package/src/spatial/spatial-resource-registry.ts +0 -90
  667. package/src/spatial/spatial-types.ts +0 -422
  668. package/src/spatial/tiles-3d-spatial-transformer.ts +0 -194
  669. package/src/tileset-3d/common/indexed-archive-tileset-source.ts +0 -205
  670. package/src/tileset-3d/common/tile-3d-contracts.ts +0 -115
  671. package/src/tileset-3d/common/tile-3d.ts +0 -1310
  672. package/src/tileset-3d/common/tileset-3d.ts +0 -1208
  673. package/src/tileset-3d/common/tileset-cache.ts +0 -111
  674. package/src/tileset-3d/common/tileset-content-traversal.ts +0 -114
  675. package/src/tileset-3d/common/tileset-observability.ts +0 -100
  676. package/src/tileset-3d/common/tileset-source.ts +0 -284
  677. package/src/tileset-3d/common/tileset-traverser.ts +0 -416
  678. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +0 -1059
  679. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +0 -1025
  680. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +0 -391
  681. package/src/tileset-3d/format-i3s/i3s-pending-tiles-register.ts +0 -48
  682. package/src/tileset-3d/format-i3s/i3s-source.ts +0 -557
  683. package/src/tileset-3d/format-i3s/i3s-tile-manager.ts +0 -105
  684. package/src/tileset-3d/format-i3s/i3s-tileset-traverser.ts +0 -102
  685. package/src/tileset-3d/helpers/3d-tiles-options.ts +0 -11
  686. package/src/tileset-3d/helpers/bounding-volume.ts +0 -281
  687. package/src/tileset-3d/helpers/frame-state.ts +0 -322
  688. package/src/tileset-3d/helpers/i3s-lod.ts +0 -109
  689. package/src/tileset-3d/helpers/s2-bounding-volume.ts +0 -35
  690. package/src/tileset-3d/helpers/tiles-3d-lod.ts +0 -370
  691. package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +0 -301
  692. package/src/tileset-3d/helpers/transform-utils.ts +0 -109
  693. package/src/tileset-3d/helpers/zoom.ts +0 -120
  694. package/src/types.ts +0 -54
  695. package/src/utils/doubly-linked-list-node.ts +0 -22
  696. package/src/utils/doubly-linked-list.ts +0 -105
  697. package/src/utils/managed-array.ts +0 -174
  698. /package/dist/{point-cloud → mvt/lib}/types.js +0 -0
@@ -0,0 +1,672 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT AND ISC
3
+ // Copyright (c) vis.gl contributors
4
+ // Based on https://github.com/mapbox/geojson-vt under compatible ISC license
5
+
6
+ import type {
7
+ SourceLoader,
8
+ CoreAPI,
9
+ DataSourceOptions,
10
+ VectorTileSource,
11
+ TileSourceMetadata,
12
+ GetTileDataParameters,
13
+ GetTileParameters
14
+ } from '@loaders.gl/core/loader-utils';
15
+ import {
16
+ DataSource,
17
+ getRequiredOptions,
18
+ getSourceLoaderOptions,
19
+ log
20
+ } from '@loaders.gl/core/loader-utils';
21
+ import type {
22
+ Schema,
23
+ GeoJSONTable,
24
+ Feature,
25
+ BinaryFeatureCollection,
26
+ ArrowTable
27
+ } from '@loaders.gl/core/schema';
28
+ import type {GeoArrowEncodingPreference} from '@loaders.gl/core/schema';
29
+ import {convertFeaturesToWKBArrowTable} from '@loaders.gl/arrow-geometry/feature-collection-to-arrow';
30
+ import {deduceTableSchema} from '@loaders.gl/core/schema-utils';
31
+ import {Stats, Stat} from 'probe.gl/stats';
32
+
33
+ import {resolveTableTileParameters} from './lib/resolve-table-tile-parameters';
34
+ import type {ProtoFeature} from './lib/vector-tiler/features/proto-feature';
35
+ import type {ProtoTile} from './lib/vector-tiler/proto-tile';
36
+ import {createProtoTile} from './lib/vector-tiler/proto-tile';
37
+ import {transformTile} from './lib/vector-tiler/transform-tile'; // coordinate transformation
38
+ import {convertTileToGeoJSON} from './lib/vector-tiler/tile-to-geojson'; // tile clipping and wrapping
39
+ import {convertFeaturesToProtoFeature} from './lib/vector-tiler/features/convert-feature';
40
+ import {clipFeatures} from './lib/vector-tiler/features/clip-features'; // stripe clipping algorithm
41
+ import {wrapFeatures} from './lib/vector-tiler/features/wrap-features'; // date line processing
42
+
43
+ /** Options to configure tiling */
44
+ export type TableTileSourceLoaderOptions = DataSourceOptions & {
45
+ /** Preferred encoding for Arrow geometry output. */
46
+ geoarrow?: {encodingPreference?: GeoArrowEncodingPreference};
47
+ table?: {
48
+ coordinates?: 'local' | 'wgs84' | 'EPSG:4326';
49
+ /** max zoom to preserve detail on */
50
+ maxZoom?: number;
51
+ /** max zoom in the tile index */
52
+ indexMaxZoom?: number;
53
+ /** max number of points per tile in the tile index */
54
+ maxPointsPerTile?: number;
55
+ /** simplification tolerance (higher means simpler) */
56
+ tolerance?: number;
57
+ /** tile extent */
58
+ extent?: number;
59
+ /** tile buffer on each side */
60
+ buffer?: number;
61
+ /** name of a feature property to be promoted to feature.id */
62
+ promoteId?: string;
63
+ /** whether to generate feature ids. Cannot be used with promoteId */
64
+ generateId?: boolean;
65
+ /** logging level (0, 1 or 2) */
66
+ debug?: number;
67
+ /** whether to calculate line metrics */
68
+ lineMetrics?: boolean;
69
+ /** Shape of returned vector tile data. */
70
+ shape?: 'geojson-table' | 'arrow-table';
71
+ /** Preferred encoding for Arrow geometry output. */
72
+ geoarrow?: {encodingPreference?: GeoArrowEncodingPreference};
73
+ };
74
+ };
75
+
76
+ /** Options to configure tiling */
77
+ export const TableTileSourceLoader = {
78
+ dataType: null as unknown as TableVectorTileSource,
79
+ batchType: null as never,
80
+ name: 'TableTiler',
81
+ id: 'table-tiler',
82
+ module: 'tiles',
83
+ version: '0.0.0',
84
+ extensions: ['mvt'],
85
+ mimeTypes: ['application/octet-stream'],
86
+ type: 'table',
87
+ fromUrl: true,
88
+ fromBlob: true,
89
+
90
+ options: {
91
+ table: {
92
+ coordinates: 'local',
93
+ promoteId: undefined!,
94
+ maxZoom: 14,
95
+ indexMaxZoom: 5,
96
+ maxPointsPerTile: 10000,
97
+ tolerance: 3,
98
+ extent: 4096,
99
+ buffer: 64,
100
+ generateId: undefined,
101
+ shape: 'geojson-table'
102
+ }
103
+ },
104
+
105
+ defaultOptions: {
106
+ table: {
107
+ coordinates: 'local',
108
+ promoteId: undefined!,
109
+ maxZoom: 14,
110
+ indexMaxZoom: 5,
111
+ maxPointsPerTile: 10000,
112
+ tolerance: 3,
113
+ extent: 4096,
114
+ buffer: 64,
115
+ generateId: undefined,
116
+ shape: 'geojson-table'
117
+ }
118
+ },
119
+
120
+ testURL: (url: string): boolean => url.endsWith('.geojson'),
121
+ createDataSource(
122
+ url: string | Blob | GeoJSONTable | Promise<GeoJSONTable>,
123
+ options: TableTileSourceLoaderOptions,
124
+ coreApi?: CoreAPI
125
+ ): TableVectorTileSource {
126
+ const tablePromise = isLoadableTableInput(url) ? url : loadTable(url, options, coreApi);
127
+ return new TableVectorTileSource(tablePromise, options);
128
+ }
129
+ } as const satisfies SourceLoader<TableVectorTileSource>;
130
+
131
+ /**
132
+ * Dynamically vector tiles a table (the table needs a geometry column)
133
+ * - Tiles are generated when requested.
134
+ * - Each tile contains a tables of clipped features.
135
+ *
136
+ * @note - Currently only accepts `GeoJSONTable` tables
137
+ * @note - Currently only outputs `GeoJSONTable`
138
+ * @note - (can be initialized with a promise that resolves to GeoJSONTable).
139
+ *
140
+ * @todo - metadata should scan all rows to determine schema
141
+ * @todo - metadata scan all rows to determine tilestats (field values[] etc).
142
+ * @todo - handle binary input tables
143
+ * @todo - generate binary output tables
144
+ * @todo - how does TileSourceLayer specify coordinates / decided which layer to render with
145
+ */
146
+ export class TableVectorTileSource
147
+ extends DataSource<GeoJSONTable | Promise<GeoJSONTable>, TableTileSourceLoaderOptions>
148
+ implements VectorTileSource
149
+ {
150
+ /** Global stats for all DynamicVectorTileSources */
151
+ static stats = new Stats({
152
+ id: 'table-tile-source-loader-all',
153
+ stats: [new Stat('count', 'tiles'), new Stat('count', 'features')]
154
+ });
155
+
156
+ /** Stats for this TableVectorTileSource */
157
+ stats = new Stats({
158
+ id: 'table-tile-source-loader',
159
+ stats: [new Stat('tiles', 'count'), new Stat('features', 'count')]
160
+ });
161
+
162
+ /** MIME type of the tiles emitted by this tile source */
163
+ readonly mimeType = 'application/vnd.mapbox-vector-tile';
164
+ /** Whether emitted tile geometries use tile-local coordinates. */
165
+ readonly localCoordinates: boolean;
166
+ readonly tableOptions: Required<Required<TableTileSourceLoaderOptions>['table']>;
167
+
168
+ /* Schema of the data */
169
+ schema: Schema | null = null;
170
+
171
+ /** Map of generated tiles, indexed by stringified tile coordinates */
172
+ tiles: Record<string, ProtoTile> = {};
173
+ /** Array of tile coordinates */
174
+ tileCoords: {x: number; y: number; z: number}[] = [];
175
+
176
+ /** Input data has loaded, initial top-level tiling is done, sync methods can now be called */
177
+ ready: Promise<void>;
178
+ /** Metadata for the tile source (generated TileJSON/tilestats */
179
+ metadata: Promise<unknown>;
180
+
181
+ constructor(table: GeoJSONTable | Promise<GeoJSONTable>, options: TableTileSourceLoaderOptions) {
182
+ super(table, options, TableTileSourceLoader.defaultOptions);
183
+ this.tableOptions = getRequiredOptions(this.options).table;
184
+ this.localCoordinates = this.tableOptions.coordinates === 'local';
185
+ this.getTileData = this.getTileData.bind(this);
186
+ this.ready = this.initializeTilesAsync(table);
187
+ this.metadata = this.getMetadata();
188
+ }
189
+
190
+ async initializeTilesAsync(tablePromise: GeoJSONTable | Promise<GeoJSONTable>): Promise<void> {
191
+ const table = await tablePromise;
192
+ this.schema = table.features.length > 0 ? deduceTableSchema(table) : {fields: [], metadata: {}};
193
+ this.createRootTiles(table);
194
+ }
195
+
196
+ async getMetadata(): Promise<TileSourceMetadata & {schema: Schema | null}> {
197
+ await this.ready;
198
+ return {schema: this.schema, minZoom: 0, maxZoom: this.tableOptions.maxZoom};
199
+ }
200
+
201
+ async getSchema(): Promise<Schema> {
202
+ await this.ready;
203
+ return this.schema!;
204
+ }
205
+
206
+ /**
207
+ * Get a tile at the specified index
208
+ * @param tileIndex z, x, y of tile
209
+ * @returns
210
+ */
211
+ async getVectorTile(tileIndex: GetTileParameters): Promise<GeoJSONTable | ArrowTable | null> {
212
+ await this.ready;
213
+ const table = this.getTileSync(tileIndex);
214
+ log.info(2, 'getVectorTile', tileIndex, table)();
215
+ return this.tableOptions.shape === 'arrow-table' && table
216
+ ? convertFeaturesToWKBArrowTable(table.features, {
217
+ encodingPreference:
218
+ (this.options as TableTileSourceLoaderOptions).geoarrow?.encodingPreference ||
219
+ this.tableOptions.geoarrow?.encodingPreference
220
+ })
221
+ : table;
222
+ }
223
+
224
+ async getTile(tileIndex: GetTileParameters): Promise<GeoJSONTable | null> {
225
+ await this.ready;
226
+ return this.getTileSync(tileIndex);
227
+ }
228
+
229
+ async getTileData(
230
+ tileParams: GetTileDataParameters
231
+ ): Promise<Feature[] | BinaryFeatureCollection> {
232
+ await this.ready;
233
+ const tile = this.getTileSync({
234
+ ...tileParams.index,
235
+ tileMatrix: tileParams.tileMatrix,
236
+ signal: tileParams.signal
237
+ });
238
+ return tile?.features || [];
239
+ }
240
+
241
+ // Implementation
242
+
243
+ /**
244
+ * Synchronously request a tile
245
+ * @note Application must await `source.ready` before calling sync methods.
246
+ */
247
+ getTileSync(tileIndex: GetTileParameters): GeoJSONTable | null {
248
+ tileIndex = resolveTableTileParameters(tileIndex, this.tableOptions.maxZoom);
249
+ const protoTile = this.getProtoTile(tileIndex);
250
+ if (!protoTile) {
251
+ return null;
252
+ }
253
+
254
+ return convertTileToGeoJSON(protoTile, {
255
+ coordinates: this.tableOptions.coordinates,
256
+ tileIndex,
257
+ extent: this.tableOptions.extent
258
+ });
259
+ }
260
+
261
+ /**
262
+ * Create the initial tiles
263
+ * @note the tiles stores all the features together with additional data
264
+ */
265
+ createRootTiles(table: GeoJSONTable): void {
266
+ if (this.tableOptions.maxZoom < 0 || this.tableOptions.maxZoom > 24) {
267
+ throw new Error('maxZoom should be in the 0-24 range');
268
+ }
269
+ if (this.tableOptions.promoteId && this.tableOptions.generateId) {
270
+ throw new Error('promoteId and generateId cannot be used together.');
271
+ }
272
+
273
+ log.log(1, 'TableVectorTileSource creating root tiles', this.tableOptions)();
274
+
275
+ // projects and adds simplification info
276
+ log.time(1, 'preprocess table')();
277
+ let features = convertFeaturesToProtoFeature(table, this.tableOptions);
278
+ log.timeEnd(1, 'preprocess table')();
279
+
280
+ // wraps features (ie extreme west and extreme east)
281
+ log.time(1, 'generate tiles')();
282
+
283
+ features = wrapFeatures(features, this.tableOptions);
284
+
285
+ // start slicing from the top tile down
286
+ if (features.length === 0) {
287
+ log.log(1, 'TableVectorTileSource: no features generated')();
288
+ return;
289
+ }
290
+
291
+ this.splitTile(features, 0, 0, 0);
292
+
293
+ const rootTile = this.tiles[0];
294
+ log.log(1, `root tile features: ${rootTile.numFeatures}, points: ${rootTile.numPoints}`)();
295
+
296
+ log.timeEnd(1, 'generate tiles')();
297
+ log.log(
298
+ 1,
299
+ `TableVectorTileSource: tiles generated: ${this.stats.get('total').count}`,
300
+ this.stats
301
+ )();
302
+ }
303
+
304
+ /**
305
+ * Return geojsonvt-style "half formed" vector tile
306
+ * @note Application must await `source.ready` before calling sync methods.
307
+ */
308
+ // eslint-disable-next-line complexity, max-statements
309
+ getProtoTile(tileIndex: {z: number; x: number; y: number}): ProtoTile | null {
310
+ const {z, y} = tileIndex;
311
+ let {x} = tileIndex;
312
+ // z = +z;
313
+ // x = +x;
314
+ // y = +y;
315
+
316
+ const {extent} = this.tableOptions;
317
+
318
+ if (z < 0 || z > 24) {
319
+ return null;
320
+ }
321
+
322
+ const z2 = 1 << z;
323
+ x = (x + z2) & (z2 - 1); // wrapFeatures tile x coordinate
324
+
325
+ const id = toID(z, x, y);
326
+ if (this.tiles[id]) {
327
+ return transformTile(this.tiles[id], extent);
328
+ }
329
+
330
+ log.log(log, 'drilling down to z%d-%d-%d', z, x, y)();
331
+
332
+ let z0 = z;
333
+ let x0 = x;
334
+ let y0 = y;
335
+ let parent;
336
+
337
+ while (!parent && z0 > 0) {
338
+ z0--;
339
+ x0 = x0 >> 1;
340
+ y0 = y0 >> 1;
341
+ parent = this.tiles[toID(z0, x0, y0)];
342
+ }
343
+
344
+ if (!parent || !parent.sourceFeatures) {
345
+ return null;
346
+ }
347
+
348
+ // if we found a parent tile containing the original geometry, we can drill down from it
349
+ log.log(1, 'found parent tile z%d-%d-%d', z0, x0, y0)();
350
+ log.time(1, 'drilling down')();
351
+
352
+ this.splitTile(parent.sourceFeatures, z0, x0, y0, z, x, y);
353
+
354
+ log.timeEnd(1, 'drilling down')();
355
+
356
+ return this.tiles[id] ? transformTile(this.tiles[id], extent) : null;
357
+ }
358
+
359
+ /**
360
+ * splits features from a parent tile to sub-tiles.
361
+ * @param z, x, and y are the coordinates of the parent tile
362
+ * @param cz, cx, and cy are the coordinates of the target tile
363
+ *
364
+ * If no target tile is specified, splitting stops when we reach the maximum
365
+ * zoom or the number of points is low as specified in the options.
366
+ */
367
+ // eslint-disable-next-line max-params, max-statements, complexity
368
+ splitTile(
369
+ features: ProtoFeature[],
370
+ z: number,
371
+ x: number,
372
+ y: number,
373
+ cz?: number,
374
+ cx?: number,
375
+ cy?: number
376
+ ): void {
377
+ const stack: any[] = [features, z, x, y];
378
+
379
+ // avoid recursion by using a processing queue
380
+ while (stack.length) {
381
+ y = stack.pop();
382
+ x = stack.pop();
383
+ z = stack.pop();
384
+ features = stack.pop();
385
+
386
+ const z2 = 1 << z;
387
+ const id = toID(z, x, y);
388
+ let tile = this.tiles[id];
389
+
390
+ if (!tile) {
391
+ log.time(2, 'tile creation')();
392
+
393
+ tile = this.tiles[id] = createProtoTile(features, z, x, y, this.tableOptions);
394
+ this.tileCoords.push({z, x, y});
395
+
396
+ const key = `z${z}`;
397
+ let stat = this.stats.get(key, 'count');
398
+ stat.incrementCount();
399
+
400
+ stat = this.stats.get('total');
401
+ stat.incrementCount();
402
+
403
+ stat = TableVectorTileSource.stats.get(key, 'count');
404
+ stat.incrementCount();
405
+
406
+ stat = TableVectorTileSource.stats.get('total');
407
+ stat.incrementCount();
408
+
409
+ log.log(
410
+ 2,
411
+ 'tile z%d-%d-%d (features: %d, points: %d, simplified: %d)',
412
+ z,
413
+ x,
414
+ y,
415
+ tile.numFeatures,
416
+ tile.numPoints,
417
+ tile.numSimplified
418
+ )();
419
+ log.timeEnd(2, 'tile creation')();
420
+ }
421
+
422
+ // save reference to original geometry in tile so that we can drill down later if we stop now
423
+ tile.sourceFeatures = features;
424
+
425
+ /* eslint-disable no-continue */
426
+
427
+ // if it's the first-pass tiling
428
+ if (cz === undefined) {
429
+ // stop tiling if we reached max zoom, or if the tile is too simple
430
+ if (
431
+ z === this.tableOptions.indexMaxZoom ||
432
+ tile.numPoints <= this.tableOptions.maxPointsPerTile
433
+ ) {
434
+ continue;
435
+ }
436
+ // if a drilldown to a specific tile
437
+ } else if (z === this.tableOptions.maxZoom || z === cz) {
438
+ // stop tiling if we reached base zoom or our target tile zoom
439
+ continue;
440
+ } else if (cz !== undefined) {
441
+ // stop tiling if it's not an ancestor of the target tile
442
+ const zoomSteps = cz - z;
443
+ // @ts-expect-error TODO fix the types of cx cy
444
+ if (x !== cx >> zoomSteps || y !== cy >> zoomSteps) {
445
+ continue;
446
+ }
447
+ }
448
+
449
+ // if we slice further down, no need to keep source geometry
450
+ tile.sourceFeatures = null;
451
+
452
+ if (features.length === 0) continue;
453
+
454
+ log.time(2, 'clipping tile')();
455
+
456
+ // values we'll use for clipping
457
+ const k1 = (0.5 * this.tableOptions.buffer) / this.tableOptions.extent;
458
+ const k2 = 0.5 - k1;
459
+ const k3 = 0.5 + k1;
460
+ const k4 = 1 + k1;
461
+
462
+ let tl: ProtoFeature[] | null = null;
463
+ let bl: ProtoFeature[] | null = null;
464
+ let tr: ProtoFeature[] | null = null;
465
+ let br: ProtoFeature[] | null = null;
466
+
467
+ let left = clipFeatures(
468
+ features,
469
+ z2,
470
+ x - k1,
471
+ x + k3,
472
+ 0,
473
+ tile.minX,
474
+ tile.maxX,
475
+ this.tableOptions
476
+ );
477
+ let right = clipFeatures(
478
+ features,
479
+ z2,
480
+ x + k2,
481
+ x + k4,
482
+ 0,
483
+ tile.minX,
484
+ tile.maxX,
485
+ this.tableOptions
486
+ );
487
+
488
+ // @ts-expect-error - unclear why this is needed?
489
+ features = null;
490
+
491
+ if (left) {
492
+ tl = clipFeatures(left, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, this.tableOptions);
493
+ bl = clipFeatures(left, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, this.tableOptions);
494
+ left = null;
495
+ }
496
+
497
+ if (right) {
498
+ tr = clipFeatures(right, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, this.tableOptions);
499
+ br = clipFeatures(right, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, this.tableOptions);
500
+ right = null;
501
+ }
502
+
503
+ log.timeEnd(2, 'clipping tile')();
504
+
505
+ stack.push(tl || [], z + 1, x * 2, y * 2);
506
+ stack.push(bl || [], z + 1, x * 2, y * 2 + 1);
507
+ stack.push(tr || [], z + 1, x * 2 + 1, y * 2);
508
+ stack.push(br || [], z + 1, x * 2 + 1, y * 2 + 1);
509
+ }
510
+ }
511
+ }
512
+
513
+ function toID(z, x, y): number {
514
+ return ((1 << z) * y + x) * 32 + z;
515
+ }
516
+
517
+ /** Detects whether the supplied input is already a resolved table payload. */
518
+ function isLoadableTableInput(
519
+ data: string | Blob | GeoJSONTable | Promise<GeoJSONTable>
520
+ ): data is GeoJSONTable | Promise<GeoJSONTable> {
521
+ return typeof data !== 'string' && !(data instanceof Blob);
522
+ }
523
+
524
+ /** Loads a GeoJSON table from URL/blob input through the injected core API. */
525
+ async function loadTable(
526
+ url: string | Blob,
527
+ options: TableTileSourceLoaderOptions,
528
+ coreApi?: CoreAPI
529
+ ): Promise<GeoJSONTable> {
530
+ const loaders = options?.core?.loaders;
531
+ if (!coreApi?.load) {
532
+ throw new Error(
533
+ 'TableTileSourceLoader requires an injected CoreAPI to load tables from URL or Blob inputs.'
534
+ );
535
+ }
536
+
537
+ if (!loaders?.length) {
538
+ throw new Error(
539
+ 'TableTileSourceLoader requires `options.core.loaders` when creating a source from URL or Blob inputs.'
540
+ );
541
+ }
542
+
543
+ const loadOptions = {
544
+ ...getSourceLoaderOptions(options),
545
+ // This source's tiler consumes object-row GeoJSON features internally.
546
+ geojson: {
547
+ ...(options.geojson as Record<string, unknown> | undefined),
548
+ shape: 'geojson-table'
549
+ }
550
+ };
551
+ const table = await coreApi.load(url, loaders.length === 1 ? loaders[0] : loaders, loadOptions);
552
+ if (!isGeoJSONTable(table)) {
553
+ throw new Error(
554
+ 'TableTileSourceLoader requires the configured parser loaders to return a GeoJSONTable.'
555
+ );
556
+ }
557
+
558
+ return table;
559
+ }
560
+
561
+ /** Checks whether a parser result matches the GeoJSONTable runtime shape. */
562
+ function isGeoJSONTable(table: unknown): table is GeoJSONTable {
563
+ return Boolean(
564
+ table &&
565
+ typeof table === 'object' &&
566
+ 'shape' in table &&
567
+ (table as GeoJSONTable).shape === 'geojson-table' &&
568
+ 'features' in table &&
569
+ Array.isArray((table as GeoJSONTable).features)
570
+ );
571
+ }
572
+
573
+ /*
574
+
575
+ // eslint-disable-next-line max-statements, complexity
576
+ function convertToGeoJSONTable(
577
+ vtTile: ProtoTile,
578
+ options: {
579
+ coordinates: 'local' | 'wgs84' | 'EPSG:4326';
580
+ tileIndex: {x: number; y: number; z: number};
581
+ extent: number;
582
+ }
583
+ ): GeoJSONTable | null {
584
+ const features: Feature[] = [];
585
+ for (const rawFeature of vtTile.features) {
586
+ if (!rawFeature || !rawFeature.geometry) {
587
+ continue;
588
+ }
589
+
590
+ let type:
591
+ | 'Point'
592
+ | 'MultiPoint'
593
+ | 'LineString'
594
+ | 'MultiLineString'
595
+ | 'Polygon'
596
+ | 'MultiPolygon';
597
+
598
+ let coordinates: any;
599
+
600
+ // raw geometry
601
+ switch (rawFeature.type) {
602
+ case 1:
603
+ if (rawFeature.geometry.length === 1) {
604
+ type = 'Point';
605
+ coordinates = rawFeature.geometry[0];
606
+ } else {
607
+ type = 'MultiPoint';
608
+ coordinates = rawFeature.geometry;
609
+ }
610
+ break;
611
+ case 2:
612
+ if (rawFeature.geometry.length === 1) {
613
+ type = 'LineString';
614
+ coordinates = rawFeature.geometry[0];
615
+ } else {
616
+ type = 'MultiLineString';
617
+ coordinates = rawFeature.geometry;
618
+ }
619
+ break;
620
+ case 3:
621
+ if (rawFeature.geometry.length > 1) {
622
+ type = 'MultiPolygon';
623
+ coordinates = [rawFeature.geometry];
624
+ } else {
625
+ type = 'Polygon';
626
+ coordinates = rawFeature.geometry;
627
+ }
628
+ break;
629
+ default:
630
+ continue;
631
+ }
632
+
633
+ switch (options.coordinates) {
634
+ case 'EPSG:4326':
635
+ case 'wgs84':
636
+ projectToLngLat(coordinates, options.tileIndex, options.extent);
637
+ break;
638
+
639
+ case 'local':
640
+ convertToLocalCoordinates(coordinates, options.extent);
641
+ break;
642
+
643
+ default:
644
+ throw new Error(`Unsupported CRS ${options.coordinates}`);
645
+ }
646
+
647
+ const feature: Feature = {
648
+ type: 'Feature',
649
+ geometry: {
650
+ type,
651
+ coordinates
652
+ },
653
+ properties: rawFeature.tags || {},
654
+ id: rawFeature.id
655
+ };
656
+
657
+ features.push(feature);
658
+ }
659
+
660
+ if (features.length === 0) {
661
+ return null;
662
+ }
663
+
664
+ const table: GeoJSONTable = {
665
+ shape: 'geojson-table',
666
+ type: 'FeatureCollection',
667
+ features
668
+ };
669
+
670
+ return table;
671
+ }
672
+ */
@@ -0,0 +1,18 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {Format} from '@loaders.gl/core/loader-utils';
6
+
7
+ /** TileJSON metadata format. */
8
+ export const TileJSONFormat = {
9
+ name: 'TileJSON',
10
+ id: 'tilejson',
11
+ module: 'tiles',
12
+ encoding: 'json',
13
+ format: 'tilejson',
14
+ extensions: ['json'],
15
+ mimeTypes: ['application/json'],
16
+ category: 'metadata',
17
+ text: true
18
+ } as const satisfies Format;