@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,675 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import * as arrow from 'apache-arrow';
5
+ import { convertGeojsonToBinaryFeatureCollection as geojsonToBinary } from '@loaders.gl/arrow-geometry/legacy-binary';
6
+ import { makeWKBGeometryField, setWKBGeometrySchemaMetadata } from '@loaders.gl/arrow-geometry/geometry-field';
7
+ import { makeWKBGeometryDataFromWriters } from '@loaders.gl/arrow-geometry/wkb-arrow-utils';
8
+ import { GeoArrowBuilder } from '@loaders.gl/arrow-geometry';
9
+ import { ArrowTableBuilder, convertArrowToSchema, convertSchemaToArrow, getDataTypeFromArray } from '@loaders.gl/core/schema-utils';
10
+ import * as maplibreMLT from '@maplibre/mlt';
11
+ import { MLT_DEFAULT_OPTIONS } from "../mlt-loader.js";
12
+ const decodeTile = (() => {
13
+ const mltModule = maplibreMLT;
14
+ const decodedTile = mltModule.decodeTile ?? mltModule.default?.decodeTile;
15
+ if (!decodedTile) {
16
+ throw new Error('MLT Loader: decodeTile export missing from @maplibre/mlt');
17
+ }
18
+ // The upstream Float64 ID fast path does not expand nullable LongId values.
19
+ // Its full integer path preserves null positions and exact IDs.
20
+ return (tile) => decodedTile(tile, undefined, false);
21
+ })();
22
+ const GEOMETRY_TYPE = (() => {
23
+ const mltModule = maplibreMLT;
24
+ return (mltModule.GEOMETRY_TYPE ||
25
+ mltModule.default?.GEOMETRY_TYPE || {
26
+ POINT: 0,
27
+ LINESTRING: 1,
28
+ POLYGON: 2,
29
+ MULTIPOINT: 3,
30
+ MULTILINESTRING: 4,
31
+ MULTIPOLYGON: 5
32
+ });
33
+ })();
34
+ /**
35
+ * Parse an MLT ArrayBuffer and return GeoJSON table or binary geometry data.
36
+ *
37
+ * @param arrayBuffer An MLT tile as an ArrayBuffer
38
+ * @param options
39
+ * @returns GeoJSON table or binary feature collection
40
+ */
41
+ export function parseMLT(arrayBuffer, options) {
42
+ const mltOptions = checkOptions(options);
43
+ const shape = mltOptions.shape;
44
+ switch (shape) {
45
+ case 'geojson-table': {
46
+ const table = {
47
+ shape: 'geojson-table',
48
+ type: 'FeatureCollection',
49
+ features: parseToGeojsonFeatures(arrayBuffer, mltOptions)
50
+ };
51
+ return table;
52
+ }
53
+ case 'binary-geometry': {
54
+ const geojsonFeatures = parseToGeojsonFeatures(arrayBuffer, mltOptions);
55
+ const binaryData = geojsonToBinary(geojsonFeatures);
56
+ // @ts-ignore
57
+ binaryData.byteLength = arrayBuffer.byteLength;
58
+ return binaryData;
59
+ }
60
+ case 'arrow-table':
61
+ return parseToArrowTable(arrayBuffer, mltOptions);
62
+ default:
63
+ throw new Error(shape || 'undefined shape');
64
+ }
65
+ }
66
+ /**
67
+ * Decode an MLT tile directly into an Arrow table.
68
+ *
69
+ * MLT's decoder already exposes column vectors and a geometry vector. Building Arrow from those
70
+ * vectors avoids materializing GeoJSON features and then decoding the same geometry a second time.
71
+ */
72
+ function parseToArrowTable(arrayBuffer, options) {
73
+ if (arrayBuffer.byteLength <= 0) {
74
+ return makeWKBArrowTable([], [], []);
75
+ }
76
+ const tile = new Uint8Array(arrayBuffer);
77
+ const featureTables = getFeatureTables(decodeTile(tile));
78
+ const selectedLayers = options.layers && options.layers.length > 0
79
+ ? options.layers
80
+ : featureTables.map(ft => ft.name).filter(Boolean);
81
+ const propertyRows = [];
82
+ const geometryWriters = [];
83
+ const geometries = [];
84
+ for (const featureTable of featureTables) {
85
+ const layerName = featureTable.name;
86
+ if (!layerName || !selectedLayers.includes(layerName)) {
87
+ continue;
88
+ }
89
+ const geometryVector = featureTable.geometryVector;
90
+ if (!geometryVector) {
91
+ continue;
92
+ }
93
+ const tableGeometries = geometryVector.getGeometries();
94
+ const featureCount = Math.min(geometryVector.numGeometries, tableGeometries.length);
95
+ const propertyVectors = featureTable.propertyVectors || [];
96
+ const extent = featureTable.extent ?? 4096;
97
+ for (let featureIndex = 0; featureIndex < featureCount; featureIndex++) {
98
+ const geometry = {
99
+ type: geometryVector.geometryType(featureIndex),
100
+ coordinates: tableGeometries[featureIndex],
101
+ extent
102
+ };
103
+ const properties = {};
104
+ for (const propertyVector of propertyVectors) {
105
+ properties[propertyVector.name] = normalizePropertyValue(propertyVector.getValue(featureIndex));
106
+ }
107
+ if (options.layerProperty) {
108
+ properties[options.layerProperty] = layerName;
109
+ }
110
+ propertyRows.push(properties);
111
+ geometries.push(geometry);
112
+ geometryWriters.push(createWKBGeometryWriter(geometry, options, extent));
113
+ }
114
+ }
115
+ const encodingPreference = options.geoarrow?.encodingPreference;
116
+ if (encodingPreference && encodingPreference !== 'geoarrow.wkb') {
117
+ return makeNativeArrowTable(propertyRows, geometries, options, encodingPreference);
118
+ }
119
+ return makeWKBArrowTable(propertyRows, geometryWriters, geometries);
120
+ }
121
+ /**
122
+ * Creates a WKB Arrow table from decoded MLT property values and geometry writers.
123
+ */
124
+ function makeWKBArrowTable(propertyRows, geometryWriters, geometries) {
125
+ const propertySchema = getPropertySchema(propertyRows);
126
+ const schema = {
127
+ fields: [...propertySchema.fields, makeWKBGeometryField('geometry')],
128
+ metadata: { ...(propertySchema.metadata || {}) }
129
+ };
130
+ setWKBGeometrySchemaMetadata(schema, {
131
+ geometryColumnName: 'geometry',
132
+ geometryTypes: [
133
+ ...new Set(geometries.map(geometry => geometryTypeToGeoJSONType(geometry.type)))
134
+ ]
135
+ .filter(Boolean)
136
+ .map(type => type)
137
+ });
138
+ const propertyBuilder = new ArrowTableBuilder(propertySchema);
139
+ for (const propertyRow of propertyRows) {
140
+ propertyBuilder.addObjectRow(propertyRow);
141
+ }
142
+ const propertyData = propertyBuilder.finishTable().data;
143
+ const propertyBatch = propertyData.batches[0];
144
+ const geometryData = makeWKBGeometryDataFromWriters(geometryWriters);
145
+ const arrowSchema = convertSchemaToArrow(schema);
146
+ const children = [...(propertyBatch?.data.children || []), geometryData];
147
+ const structData = arrow.makeData({
148
+ type: new arrow.Struct(arrowSchema.fields),
149
+ length: propertyRows.length,
150
+ nullCount: 0,
151
+ children
152
+ });
153
+ return {
154
+ shape: 'arrow-table',
155
+ schema,
156
+ data: new arrow.Table(new arrow.RecordBatch(arrowSchema, structData))
157
+ };
158
+ }
159
+ /**
160
+ * Creates a native GeoArrow table from decoded MLT geometry and property vectors.
161
+ */
162
+ function makeNativeArrowTable(propertyRows, geometries, options, encodingPreference) {
163
+ const dimension = 'xy';
164
+ const encoding = selectGeoArrowEncoding(geometries, encodingPreference);
165
+ const geometryVector = encoding === 'geoarrow.geometry'
166
+ ? makeGeoArrowUnionVector(geometries, options, dimension)
167
+ : makeGeoArrowVector(geometries, encoding, options, dimension);
168
+ const propertySchema = getPropertySchema(propertyRows);
169
+ const propertyTableBuilder = new ArrowTableBuilder(propertySchema);
170
+ for (const propertyRow of propertyRows) {
171
+ propertyTableBuilder.addObjectRow(propertyRow);
172
+ }
173
+ const propertyBatch = propertyTableBuilder.finishTable().data.batches[0];
174
+ const propertyArrowSchema = convertSchemaToArrow(propertySchema);
175
+ const geometryTypes = [
176
+ ...new Set(geometries.map(geometry => geometryTypeToGeoJSONType(geometry.type)))
177
+ ]
178
+ .filter(Boolean)
179
+ .map(type => type);
180
+ const geometryField = new arrow.Field('geometry', geometryVector.type, true, new Map([
181
+ ['ARROW:extension:name', encoding],
182
+ ['ARROW:extension:metadata', JSON.stringify({ encoding, geometry_types: geometryTypes })]
183
+ ]));
184
+ const fields = [...propertyArrowSchema.fields, geometryField];
185
+ const metadata = new Map(propertyArrowSchema.metadata || []);
186
+ metadata.set('geo', JSON.stringify({
187
+ version: '1.1.0',
188
+ primary_column: 'geometry',
189
+ columns: { geometry: { encoding, geometry_types: geometryTypes } }
190
+ }));
191
+ const arrowSchema = new arrow.Schema(fields, metadata);
192
+ const children = [...(propertyBatch?.data.children || []), geometryVector.data[0]];
193
+ const structData = arrow.makeData({
194
+ type: new arrow.Struct(fields),
195
+ length: propertyRows.length,
196
+ nullCount: 0,
197
+ children
198
+ });
199
+ return {
200
+ shape: 'arrow-table',
201
+ schema: convertArrowToSchema(arrowSchema),
202
+ data: new arrow.Table(new arrow.RecordBatch(arrowSchema, structData))
203
+ };
204
+ }
205
+ /** Selects a concrete GeoArrow encoding or the mixed-geometry union encoding. */
206
+ function selectGeoArrowEncoding(geometries, preference) {
207
+ const geometryTypes = new Set(geometries.map(geometry => geometryTypeToGeoJSONType(geometry.type)));
208
+ if (preference === 'geoarrow.geometry' || geometryTypes.size === 0) {
209
+ return 'geoarrow.geometry';
210
+ }
211
+ if (geometryTypes.size === 1) {
212
+ return getNativeGeoArrowEncoding([...geometryTypes][0]);
213
+ }
214
+ if (geometryTypes.size === 2) {
215
+ if (geometryTypes.has('Point') && geometryTypes.has('MultiPoint')) {
216
+ return 'geoarrow.multipoint';
217
+ }
218
+ if (geometryTypes.has('LineString') && geometryTypes.has('MultiLineString')) {
219
+ return 'geoarrow.multilinestring';
220
+ }
221
+ if (geometryTypes.has('Polygon') && geometryTypes.has('MultiPolygon')) {
222
+ return 'geoarrow.multipolygon';
223
+ }
224
+ }
225
+ return 'geoarrow.geometry';
226
+ }
227
+ /** Builds one concrete native GeoArrow vector from MLT geometries. */
228
+ function makeGeoArrowVector(geometries, encoding, options, dimension) {
229
+ const writers = geometries.map(geometry => createGeoArrowGeometryWriter(geometry, encoding, options));
230
+ const geometryArray = GeoArrowBuilder.buildGeometryArray(writers, { encoding, dimension });
231
+ return arrow.makeVector(GeoArrowBuilder.makeGeometryData(geometryArray));
232
+ }
233
+ /** Builds a dense union GeoArrow vector for mixed geometry columns. */
234
+ function makeGeoArrowUnionVector(geometries, options, dimension) {
235
+ const geometryGroups = new Map();
236
+ const supportedGeometryTypes = [
237
+ 'Point',
238
+ 'LineString',
239
+ 'Polygon',
240
+ 'MultiPoint',
241
+ 'MultiLineString',
242
+ 'MultiPolygon'
243
+ ];
244
+ for (const geometryType of supportedGeometryTypes) {
245
+ geometryGroups.set(geometryType, []);
246
+ }
247
+ const typeIds = [];
248
+ const valueOffsets = [];
249
+ for (const geometry of geometries) {
250
+ const geometryType = geometryTypeToGeoJSONType(geometry.type) || 'Point';
251
+ const group = geometryGroups.get(geometryType) || [];
252
+ valueOffsets.push(group.length);
253
+ typeIds.push(getUnionTypeId(geometryType, dimension));
254
+ group.push(geometry);
255
+ geometryGroups.set(geometryType, group);
256
+ }
257
+ const orderedGeometryTypes = [...geometryGroups.keys()].sort((left, right) => getUnionTypeId(left, dimension) - getUnionTypeId(right, dimension));
258
+ const childVectors = orderedGeometryTypes.map(geometryType => {
259
+ const encoding = getNativeGeoArrowEncoding(geometryType);
260
+ return makeGeoArrowVector(geometryGroups.get(geometryType), encoding, options, dimension);
261
+ });
262
+ const fields = orderedGeometryTypes.map(geometryType => new arrow.Field(getUnionFieldName(geometryType, dimension), childVectors[orderedGeometryTypes.indexOf(geometryType)].type, true));
263
+ const unionType = new arrow.DenseUnion(orderedGeometryTypes.map(geometryType => getUnionTypeId(geometryType, dimension)), fields);
264
+ return arrow.makeVector(arrow.makeData({
265
+ type: unionType,
266
+ length: geometries.length,
267
+ nullCount: 0,
268
+ typeIds: Int8Array.from(typeIds),
269
+ valueOffsets: Int32Array.from(valueOffsets),
270
+ children: childVectors.map(vector => vector.data[0])
271
+ }));
272
+ }
273
+ /** Creates a native GeoArrow writer for one decoded MLT geometry. */
274
+ function createGeoArrowGeometryWriter(geometry, encoding, options) {
275
+ return builder => {
276
+ const coordinates = geometry.coordinates;
277
+ switch (geometryTypeToGeoJSONType(geometry.type)) {
278
+ case 'Point':
279
+ if (encoding === 'geoarrow.multipoint')
280
+ builder.beginMultiPoint(1);
281
+ builder.beginPoint();
282
+ writeGeoArrowPoint(builder, coordinates[0]?.[0], options, geometry.extent);
283
+ return;
284
+ case 'MultiPoint':
285
+ builder.beginMultiPoint(coordinates.length);
286
+ for (const [point] of coordinates) {
287
+ builder.beginPoint();
288
+ writeGeoArrowPoint(builder, point, options, geometry.extent);
289
+ }
290
+ return;
291
+ case 'LineString':
292
+ if (encoding === 'geoarrow.multilinestring')
293
+ builder.beginMultiLineString(1);
294
+ writeGeoArrowLineString(builder, coordinates[0] || [], options, geometry.extent);
295
+ return;
296
+ case 'MultiLineString':
297
+ builder.beginMultiLineString(coordinates.length);
298
+ for (const line of coordinates)
299
+ writeGeoArrowLineString(builder, line, options, geometry.extent);
300
+ return;
301
+ case 'Polygon':
302
+ if (encoding === 'geoarrow.multipolygon')
303
+ builder.beginMultiPolygon(1);
304
+ writeGeoArrowPolygon(builder, coordinates, options, geometry.extent);
305
+ return;
306
+ case 'MultiPolygon':
307
+ builder.beginMultiPolygon(coordinates.length);
308
+ for (const ring of coordinates) {
309
+ builder.beginPolygon(1);
310
+ builder.beginLinearRing(ring.length);
311
+ for (const point of ring)
312
+ writeGeoArrowPoint(builder, point, options, geometry.extent);
313
+ }
314
+ return;
315
+ default:
316
+ return;
317
+ }
318
+ };
319
+ }
320
+ function writeGeoArrowPoint(builder, point, options, extent) {
321
+ const [x, y] = projectPoint(point?.x ?? Number.NaN, point?.y ?? Number.NaN, options, extent);
322
+ builder.writeCoordinate(x, y);
323
+ }
324
+ function writeGeoArrowLineString(builder, line, options, extent) {
325
+ builder.beginLineString(line.length);
326
+ for (const point of line)
327
+ writeGeoArrowPoint(builder, point, options, extent);
328
+ }
329
+ function writeGeoArrowPolygon(builder, rings, options, extent) {
330
+ builder.beginPolygon(rings.length);
331
+ for (const ring of rings) {
332
+ builder.beginLinearRing(ring.length);
333
+ for (const point of ring)
334
+ writeGeoArrowPoint(builder, point, options, extent);
335
+ }
336
+ }
337
+ function getNativeGeoArrowEncoding(geometryType) {
338
+ switch (geometryType) {
339
+ case 'Point':
340
+ return 'geoarrow.point';
341
+ case 'LineString':
342
+ return 'geoarrow.linestring';
343
+ case 'Polygon':
344
+ return 'geoarrow.polygon';
345
+ case 'MultiPoint':
346
+ return 'geoarrow.multipoint';
347
+ case 'MultiLineString':
348
+ return 'geoarrow.multilinestring';
349
+ case 'MultiPolygon':
350
+ return 'geoarrow.multipolygon';
351
+ default:
352
+ throw new Error(`MLT Loader: unsupported GeoArrow geometry type ${geometryType}`);
353
+ }
354
+ }
355
+ function getUnionTypeId(geometryType, dimension) {
356
+ const baseTypeIds = {
357
+ Point: 1,
358
+ LineString: 2,
359
+ Polygon: 3,
360
+ MultiPoint: 4,
361
+ MultiLineString: 5,
362
+ MultiPolygon: 6
363
+ };
364
+ const dimensionOffset = dimension === 'xyz' ? 10 : dimension === 'xym' ? 20 : dimension === 'xyzm' ? 30 : 0;
365
+ return (baseTypeIds[geometryType] || baseTypeIds.Point) + dimensionOffset;
366
+ }
367
+ function getUnionFieldName(geometryType, dimension) {
368
+ return dimension === 'xy' ? geometryType : `${geometryType} ${dimension.slice(1).toUpperCase()}`;
369
+ }
370
+ /**
371
+ * Builds the property schema using the same primitive normalization as GeoJSON-to-Arrow output.
372
+ */
373
+ function getPropertySchema(propertyRows) {
374
+ const fieldNames = new Set();
375
+ for (const propertyRow of propertyRows) {
376
+ for (const fieldName of Object.keys(propertyRow)) {
377
+ fieldNames.add(fieldName);
378
+ }
379
+ }
380
+ return {
381
+ metadata: {},
382
+ fields: [...fieldNames].map((fieldName) => {
383
+ const inferredType = getDataTypeFromArray(propertyRows.map(propertyRow => propertyRow[fieldName]));
384
+ return {
385
+ name: fieldName,
386
+ type: inferredType.type === 'float32' ? 'float64' : inferredType.type,
387
+ nullable: inferredType.nullable
388
+ };
389
+ })
390
+ };
391
+ }
392
+ function normalizePropertyValue(propertyValue) {
393
+ if (propertyValue === null ||
394
+ propertyValue === undefined ||
395
+ typeof propertyValue === 'string' ||
396
+ typeof propertyValue === 'number' ||
397
+ typeof propertyValue === 'boolean') {
398
+ return propertyValue ?? null;
399
+ }
400
+ return JSON.stringify(propertyValue);
401
+ }
402
+ function createWKBGeometryWriter(geometry, options, extent) {
403
+ const geometryType = geometryTypeToGeoJSONType(geometry.type);
404
+ if (!geometryType || !geometry.coordinates) {
405
+ return null;
406
+ }
407
+ const transform = (coordinate) => projectPoint(coordinate[0], coordinate[1], options, extent);
408
+ return builder => {
409
+ const coordinates = geometry.coordinates;
410
+ switch (geometryType) {
411
+ case 'Point':
412
+ if (!coordinates[0]?.[0])
413
+ return;
414
+ builder.beginPoint();
415
+ writePoint(builder, coordinates[0][0], transform);
416
+ return;
417
+ case 'MultiPoint':
418
+ builder.beginMultiPoint(coordinates.length);
419
+ for (const [point] of coordinates)
420
+ writePoint(builder, point, transform);
421
+ return;
422
+ case 'LineString':
423
+ builder.beginLineString(coordinates[0]?.length || 0);
424
+ for (const point of coordinates[0] || [])
425
+ writePoint(builder, point, transform);
426
+ return;
427
+ case 'MultiLineString':
428
+ builder.beginMultiLineString(coordinates.length);
429
+ for (const line of coordinates) {
430
+ builder.beginLineString(line.length);
431
+ for (const point of line)
432
+ writePoint(builder, point, transform);
433
+ }
434
+ return;
435
+ case 'Polygon':
436
+ builder.beginPolygon(coordinates.length);
437
+ for (const ring of coordinates) {
438
+ builder.beginLinearRing(ring.length);
439
+ for (const point of ring)
440
+ writePoint(builder, point, transform);
441
+ }
442
+ return;
443
+ case 'MultiPolygon':
444
+ // The JS MLT decoder exposes multipolygon rings in a flattened representation. The
445
+ // specification's polygon/ring topology is preserved by treating each decoded ring as
446
+ // a polygon, matching the legacy GeoJSON path until the decoder exposes polygon offsets.
447
+ builder.beginMultiPolygon(coordinates.length);
448
+ for (const ring of coordinates) {
449
+ builder.beginPolygon(1);
450
+ builder.beginLinearRing(ring.length);
451
+ for (const point of ring)
452
+ writePoint(builder, point, transform);
453
+ }
454
+ return;
455
+ default:
456
+ return;
457
+ }
458
+ };
459
+ }
460
+ function writePoint(builder, point, transform) {
461
+ if (!point) {
462
+ builder.writeCoordinate(Number.NaN, Number.NaN);
463
+ return;
464
+ }
465
+ const [x, y] = transform([point.x, point.y]);
466
+ builder.writeCoordinate(x, y);
467
+ }
468
+ function geometryTypeToGeoJSONType(type) {
469
+ for (const [name, value] of Object.entries(GEOMETRY_TYPE)) {
470
+ if (value === type) {
471
+ const normalizedName = name.toLowerCase();
472
+ return normalizedName === 'point'
473
+ ? 'Point'
474
+ : normalizedName === 'linestring'
475
+ ? 'LineString'
476
+ : normalizedName === 'polygon'
477
+ ? 'Polygon'
478
+ : normalizedName === 'multipoint'
479
+ ? 'MultiPoint'
480
+ : normalizedName === 'multilinestring'
481
+ ? 'MultiLineString'
482
+ : normalizedName === 'multipolygon'
483
+ ? 'MultiPolygon'
484
+ : null;
485
+ }
486
+ }
487
+ return null;
488
+ }
489
+ /**
490
+ * Parse the MLT tile and return GeoJSON features
491
+ */
492
+ function parseToGeojsonFeatures(arrayBuffer, options) {
493
+ if (arrayBuffer.byteLength <= 0) {
494
+ return [];
495
+ }
496
+ const tile = new Uint8Array(arrayBuffer);
497
+ const featureTables = getFeatureTables(decodeTile(tile));
498
+ const features = [];
499
+ const selectedLayers = options.layers && options.layers.length > 0
500
+ ? options.layers
501
+ : featureTables.map(ft => ft.name).filter(Boolean);
502
+ for (const featureTable of featureTables) {
503
+ const layerName = featureTable.name;
504
+ if (!layerName || !selectedLayers.includes(layerName)) {
505
+ continue;
506
+ }
507
+ const extent = featureTable.extent ?? 4096;
508
+ for (const mltFeature of getTableFeatures(featureTable)) {
509
+ const geoJSONFeature = convertFeatureToGeoJSON(mltFeature, options, layerName, extent);
510
+ if (geoJSONFeature) {
511
+ features.push(geoJSONFeature);
512
+ }
513
+ }
514
+ }
515
+ return features;
516
+ }
517
+ function getFeatureTables(decodedTile) {
518
+ if (Array.isArray(decodedTile)) {
519
+ return decodedTile.filter((candidate) => isFeatureTable(candidate));
520
+ }
521
+ if (!decodedTile || typeof decodedTile !== 'object') {
522
+ return [];
523
+ }
524
+ return Object.values(decodedTile).filter((candidate) => isFeatureTable(candidate));
525
+ }
526
+ function isFeatureTable(candidate) {
527
+ if (!candidate || typeof candidate !== 'object') {
528
+ return false;
529
+ }
530
+ return (typeof candidate.name === 'string' &&
531
+ (typeof candidate.getFeatures === 'function' ||
532
+ Array.isArray(candidate.features) ||
533
+ typeof candidate[Symbol.iterator] === 'function'));
534
+ }
535
+ function getTableFeatures(featureTable) {
536
+ if (typeof featureTable.getFeatures === 'function') {
537
+ const features = featureTable.getFeatures();
538
+ if (Array.isArray(features)) {
539
+ return features;
540
+ }
541
+ }
542
+ if (Array.isArray(featureTable.features)) {
543
+ return featureTable.features;
544
+ }
545
+ if (typeof featureTable[Symbol.iterator] === 'function') {
546
+ const iterableFeatures = featureTable[Symbol.iterator]?.();
547
+ if (!iterableFeatures) {
548
+ return [];
549
+ }
550
+ return Array.isArray(iterableFeatures) ? iterableFeatures : Array.from(iterableFeatures);
551
+ }
552
+ return [];
553
+ }
554
+ /**
555
+ * Convert an MLT Feature to a GeoJSON Feature
556
+ */
557
+ function convertFeatureToGeoJSON(feature, options, layerName, extent) {
558
+ const { geometry, properties, id } = feature;
559
+ if (!geometry) {
560
+ return null;
561
+ }
562
+ const geojsonGeometry = convertGeometryToGeoJSON(geometry, options, extent);
563
+ if (!geojsonGeometry) {
564
+ return null;
565
+ }
566
+ const featureProperties = { ...properties };
567
+ if (options.layerProperty) {
568
+ featureProperties[options.layerProperty] = layerName;
569
+ }
570
+ const geojsonFeature = {
571
+ type: 'Feature',
572
+ geometry: geojsonGeometry,
573
+ properties: featureProperties
574
+ };
575
+ if (id !== undefined && id !== null) {
576
+ geojsonFeature.id =
577
+ typeof id === 'bigint' && id >= 0n && id <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(id) : id;
578
+ }
579
+ return geojsonFeature;
580
+ }
581
+ /**
582
+ * Convert MLT geometry to GeoJSON geometry
583
+ */
584
+ function convertGeometryToGeoJSON(geometry, options, extent) {
585
+ if (!geometry) {
586
+ return null;
587
+ }
588
+ const { type, coordinates } = geometry;
589
+ switch (type) {
590
+ case GEOMETRY_TYPE.POINT: {
591
+ // coordinates: [[Point]]
592
+ const ring = coordinates?.[0];
593
+ const point = ring?.[0];
594
+ if (!point || typeof point.x !== 'number' || typeof point.y !== 'number') {
595
+ return null;
596
+ }
597
+ return {
598
+ type: 'Point',
599
+ coordinates: projectPoint(point.x, point.y, options, extent)
600
+ };
601
+ }
602
+ case GEOMETRY_TYPE.MULTIPOINT: {
603
+ // coordinates: [[p1], [p2], ...]
604
+ return {
605
+ type: 'MultiPoint',
606
+ coordinates: coordinates.map(([p]) => projectPoint(p.x, p.y, options, extent))
607
+ };
608
+ }
609
+ case GEOMETRY_TYPE.LINESTRING: {
610
+ // coordinates: [[p1, p2, ...]]
611
+ return {
612
+ type: 'LineString',
613
+ coordinates: coordinates[0].map(p => projectPoint(p.x, p.y, options, extent))
614
+ };
615
+ }
616
+ case GEOMETRY_TYPE.MULTILINESTRING: {
617
+ // coordinates: [[p1, p2, ...], [p1, p2, ...], ...]
618
+ return {
619
+ type: 'MultiLineString',
620
+ coordinates: coordinates.map(ring => ring.map(p => projectPoint(p.x, p.y, options, extent)))
621
+ };
622
+ }
623
+ case GEOMETRY_TYPE.POLYGON: {
624
+ // coordinates: [[outer_ring_points], [hole_ring_points], ...]
625
+ return {
626
+ type: 'Polygon',
627
+ coordinates: coordinates.map(ring => ring.map(p => projectPoint(p.x, p.y, options, extent)))
628
+ };
629
+ }
630
+ case GEOMETRY_TYPE.MULTIPOLYGON: {
631
+ // In MLT, multipolygon rings are flattened: [[ring1], [ring2], ...]
632
+ // Treat each ring as its own polygon (simplified representation)
633
+ return {
634
+ type: 'MultiPolygon',
635
+ coordinates: coordinates.map(ring => [
636
+ ring.map(p => projectPoint(p.x, p.y, options, extent))
637
+ ])
638
+ };
639
+ }
640
+ default:
641
+ return null;
642
+ }
643
+ }
644
+ /**
645
+ * Project a tile coordinate to either local (0-1) or WGS84 (lng/lat) coordinates
646
+ */
647
+ function projectPoint(x, y, options, extent) {
648
+ if (options.coordinates === 'wgs84' && options.tileIndex) {
649
+ const { x: tx, y: ty, z } = options.tileIndex;
650
+ const size = extent * Math.pow(2, z);
651
+ const x0 = extent * tx;
652
+ const y0 = extent * ty;
653
+ const lng = ((x + x0) * 360) / size - 180;
654
+ const y2 = 180 - ((y + y0) * 360) / size;
655
+ const lat = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;
656
+ return [lng, lat];
657
+ }
658
+ // Local coordinates: normalize to [0, 1]
659
+ return [x / extent, y / extent];
660
+ }
661
+ /**
662
+ * Validate loader options
663
+ */
664
+ function checkOptions(options) {
665
+ const mltOptions = {
666
+ ...MLT_DEFAULT_OPTIONS,
667
+ ...(options?.mlt ?? {}),
668
+ geoarrow: options?.mlt?.geoarrow ?? options?.geoarrow
669
+ };
670
+ if (mltOptions.coordinates === 'wgs84' && !mltOptions.tileIndex) {
671
+ throw new Error('MLT Loader: WGS84 coordinates require a tileIndex option');
672
+ }
673
+ return mltOptions;
674
+ }
675
+ //# sourceMappingURL=parse-mlt.js.map