@deck.gl/carto 8.10.0-alpha.2 → 8.10.0-alpha.5

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 (296) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cartoRasterTile-worker.js +1084 -0
  3. package/dist/cartoSpatialTile-worker.js +1469 -0
  4. package/dist/cartoVectorTile-worker.js +1727 -0
  5. package/dist/dist.dev.js +2137 -1936
  6. package/dist/es5/api/carto-api-error.js +3 -7
  7. package/dist/es5/api/carto-api-error.js.map +1 -1
  8. package/dist/es5/api/layer-map.js +3 -7
  9. package/dist/es5/api/layer-map.js.map +1 -1
  10. package/dist/es5/api/maps-api-common.js +0 -1
  11. package/dist/es5/api/maps-api-common.js.map +1 -1
  12. package/dist/es5/api/maps-v3-client.js +5 -20
  13. package/dist/es5/api/maps-v3-client.js.map +1 -1
  14. package/dist/es5/index.js +74 -6
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/layers/carto-layer.js +196 -200
  17. package/dist/es5/layers/carto-layer.js.map +1 -1
  18. package/dist/es5/layers/h3-tile-layer.js +57 -79
  19. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  20. package/dist/es5/layers/h3-tileset-2d.js +62 -68
  21. package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
  22. package/dist/es5/layers/point-label-layer.js +160 -165
  23. package/dist/es5/layers/point-label-layer.js.map +1 -1
  24. package/dist/es5/layers/quadbin-layer.js +23 -27
  25. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  26. package/dist/es5/layers/quadbin-tile-layer.js +39 -63
  27. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  28. package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
  29. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
  30. package/dist/es5/layers/raster-layer.js +94 -98
  31. package/dist/es5/layers/raster-layer.js.map +1 -1
  32. package/dist/es5/layers/raster-tile-layer.js +37 -58
  33. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  34. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  35. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  36. package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
  37. package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
  38. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  39. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  40. package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
  41. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  42. package/dist/es5/layers/schema/carto-tile.js +161 -196
  43. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  44. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  45. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  46. package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
  47. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  48. package/dist/es5/layers/utils.js +29 -0
  49. package/dist/es5/layers/utils.js.map +1 -0
  50. package/dist/es5/layers/vector-tile-layer.js +163 -0
  51. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  52. package/dist/es5/sources/base-source.js +100 -0
  53. package/dist/es5/sources/base-source.js.map +1 -0
  54. package/dist/es5/sources/common.js +48 -0
  55. package/dist/es5/sources/common.js.map +1 -0
  56. package/dist/es5/sources/h3-query-source.js +58 -0
  57. package/dist/es5/sources/h3-query-source.js.map +1 -0
  58. package/dist/es5/sources/h3-table-source.js +58 -0
  59. package/dist/es5/sources/h3-table-source.js.map +1 -0
  60. package/dist/es5/sources/h3-tileset-source.js +43 -0
  61. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  62. package/dist/es5/sources/index.js +94 -0
  63. package/dist/es5/sources/index.js.map +1 -0
  64. package/dist/es5/sources/quadbin-query-source.js +58 -0
  65. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  66. package/dist/es5/sources/quadbin-table-source.js +58 -0
  67. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  68. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  69. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  70. package/dist/es5/sources/raster-source.js +43 -0
  71. package/dist/es5/sources/raster-source.js.map +1 -0
  72. package/dist/es5/sources/utils.js +136 -0
  73. package/dist/es5/sources/utils.js.map +1 -0
  74. package/dist/es5/sources/vector-query-source.js +52 -0
  75. package/dist/es5/sources/vector-query-source.js.map +1 -0
  76. package/dist/es5/sources/vector-table-source.js +52 -0
  77. package/dist/es5/sources/vector-table-source.js.map +1 -0
  78. package/dist/es5/sources/vector-tileset-source.js +43 -0
  79. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  80. package/dist/es5/utils.js +5 -0
  81. package/dist/es5/utils.js.map +1 -1
  82. package/dist/es5/workers/cartoRasterTile.js +10 -0
  83. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  84. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  85. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  86. package/dist/es5/workers/cartoVectorTile.js +10 -0
  87. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  88. package/dist/esm/api/carto-api-error.js +8 -13
  89. package/dist/esm/api/carto-api-error.js.map +1 -1
  90. package/dist/esm/api/layer-map.js +7 -11
  91. package/dist/esm/api/layer-map.js.map +1 -1
  92. package/dist/esm/api/maps-api-common.js +3 -4
  93. package/dist/esm/api/maps-api-common.js.map +1 -1
  94. package/dist/esm/api/maps-client.js +7 -7
  95. package/dist/esm/api/maps-client.js.map +1 -1
  96. package/dist/esm/api/maps-v3-client.js +14 -24
  97. package/dist/esm/api/maps-v3-client.js.map +1 -1
  98. package/dist/esm/api/parseMap.js +4 -4
  99. package/dist/esm/api/parseMap.js.map +1 -1
  100. package/dist/esm/config.js +3 -3
  101. package/dist/esm/config.js.map +1 -1
  102. package/dist/esm/index.js +5 -4
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/layers/carto-layer.js +12 -15
  105. package/dist/esm/layers/carto-layer.js.map +1 -1
  106. package/dist/esm/layers/h3-tile-layer.js +24 -43
  107. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  108. package/dist/esm/layers/point-label-layer.js +6 -10
  109. package/dist/esm/layers/point-label-layer.js.map +1 -1
  110. package/dist/esm/layers/quadbin-layer.js +2 -5
  111. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  112. package/dist/esm/layers/quadbin-tile-layer.js +21 -44
  113. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  114. package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
  115. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
  116. package/dist/esm/layers/raster-layer.js +4 -8
  117. package/dist/esm/layers/raster-layer.js.map +1 -1
  118. package/dist/esm/layers/raster-tile-layer.js +21 -39
  119. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  120. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  121. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  122. package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
  123. package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
  124. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  125. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  126. package/dist/esm/layers/schema/carto-tile.js +1 -1
  127. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  128. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  129. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  130. package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
  131. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  132. package/dist/esm/layers/utils.js +14 -0
  133. package/dist/esm/layers/utils.js.map +1 -0
  134. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -18
  135. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  136. package/dist/esm/sources/base-source.js +49 -0
  137. package/dist/esm/sources/base-source.js.map +1 -0
  138. package/dist/esm/sources/common.js +26 -0
  139. package/dist/esm/sources/common.js.map +1 -0
  140. package/dist/esm/sources/h3-query-source.js +32 -0
  141. package/dist/esm/sources/h3-query-source.js.map +1 -0
  142. package/dist/esm/sources/h3-table-source.js +32 -0
  143. package/dist/esm/sources/h3-table-source.js.map +1 -0
  144. package/dist/esm/sources/h3-tileset-source.js +14 -0
  145. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  146. package/dist/esm/sources/index.js +12 -0
  147. package/dist/esm/sources/index.js.map +1 -0
  148. package/dist/esm/sources/quadbin-query-source.js +32 -0
  149. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  150. package/dist/esm/sources/quadbin-table-source.js +32 -0
  151. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  152. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  153. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  154. package/dist/esm/sources/raster-source.js +14 -0
  155. package/dist/esm/sources/raster-source.js.map +1 -0
  156. package/dist/esm/sources/utils.js +69 -0
  157. package/dist/esm/sources/utils.js.map +1 -0
  158. package/dist/esm/sources/vector-query-source.js +25 -0
  159. package/dist/esm/sources/vector-query-source.js.map +1 -0
  160. package/dist/esm/sources/vector-table-source.js +25 -0
  161. package/dist/esm/sources/vector-table-source.js.map +1 -0
  162. package/dist/esm/sources/vector-tileset-source.js +14 -0
  163. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  164. package/dist/esm/style/palette.js +2 -2
  165. package/dist/esm/style/palette.js.map +1 -1
  166. package/dist/esm/style/utils.js +1 -1
  167. package/dist/esm/style/utils.js.map +1 -1
  168. package/dist/esm/utils.js +3 -0
  169. package/dist/esm/utils.js.map +1 -1
  170. package/dist/esm/workers/cartoRasterTile.js +4 -0
  171. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  172. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  173. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  174. package/dist/esm/workers/cartoVectorTile.js +4 -0
  175. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  176. package/dist.min.js +45 -24
  177. package/package.json +11 -9
  178. package/src/api/layer-map.ts +4 -8
  179. package/src/api/maps-api-common.ts +0 -1
  180. package/src/api/maps-v3-client.ts +6 -5
  181. package/src/index.ts +34 -5
  182. package/src/layers/h3-tile-layer.ts +22 -35
  183. package/src/layers/quadbin-tile-layer.ts +19 -33
  184. package/src/layers/raster-tile-layer.ts +22 -26
  185. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  186. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  187. package/src/layers/schema/carto-tile.ts +1 -1
  188. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  189. package/src/layers/utils.ts +11 -0
  190. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  191. package/src/sources/base-source.ts +55 -0
  192. package/src/sources/common.ts +132 -0
  193. package/src/sources/h3-query-source.ts +45 -0
  194. package/src/sources/h3-table-source.ts +46 -0
  195. package/src/sources/h3-tileset-source.ts +16 -0
  196. package/src/sources/index.ts +32 -0
  197. package/src/sources/quadbin-query-source.ts +46 -0
  198. package/src/sources/quadbin-table-source.ts +46 -0
  199. package/src/sources/quadbin-tileset-source.ts +16 -0
  200. package/src/sources/raster-source.ts +16 -0
  201. package/src/sources/utils.ts +63 -0
  202. package/src/sources/vector-query-source.ts +23 -0
  203. package/src/sources/vector-table-source.ts +23 -0
  204. package/src/sources/vector-tileset-source.ts +16 -0
  205. package/src/utils.ts +6 -0
  206. package/src/workers/cartoRasterTile.ts +4 -0
  207. package/src/workers/cartoSpatialTile.ts +4 -0
  208. package/src/workers/cartoVectorTile.ts +4 -0
  209. package/typed/api/layer-map.d.ts +2 -3
  210. package/typed/api/layer-map.d.ts.map +1 -1
  211. package/typed/api/maps-api-common.d.ts +0 -1
  212. package/typed/api/maps-api-common.d.ts.map +1 -1
  213. package/typed/api/maps-v3-client.d.ts +0 -3
  214. package/typed/api/maps-v3-client.d.ts.map +1 -1
  215. package/typed/index.d.ts +6 -4
  216. package/typed/index.d.ts.map +1 -1
  217. package/typed/layers/h3-tile-layer.d.ts +5 -8
  218. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  219. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  220. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  221. package/typed/layers/raster-tile-layer.d.ts +6 -10
  222. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  223. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  224. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  225. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  226. package/typed/layers/utils.d.ts +5 -0
  227. package/typed/layers/utils.d.ts.map +1 -0
  228. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  229. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  230. package/typed/sources/base-source.d.ts +4 -0
  231. package/typed/sources/base-source.d.ts.map +1 -0
  232. package/typed/sources/common.d.ts +116 -0
  233. package/typed/sources/common.d.ts.map +1 -0
  234. package/typed/sources/h3-query-source.d.ts +5 -0
  235. package/typed/sources/h3-query-source.d.ts.map +1 -0
  236. package/typed/sources/h3-table-source.d.ts +5 -0
  237. package/typed/sources/h3-table-source.d.ts.map +1 -0
  238. package/typed/sources/h3-tileset-source.d.ts +5 -0
  239. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  240. package/typed/sources/index.d.ts +23 -0
  241. package/typed/sources/index.d.ts.map +1 -0
  242. package/typed/sources/quadbin-query-source.d.ts +5 -0
  243. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  244. package/typed/sources/quadbin-table-source.d.ts +5 -0
  245. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  246. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  247. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  248. package/typed/sources/raster-source.d.ts +5 -0
  249. package/typed/sources/raster-source.d.ts.map +1 -0
  250. package/typed/sources/utils.d.ts +15 -0
  251. package/typed/sources/utils.d.ts.map +1 -0
  252. package/typed/sources/vector-query-source.d.ts +5 -0
  253. package/typed/sources/vector-query-source.d.ts.map +1 -0
  254. package/typed/sources/vector-table-source.d.ts +5 -0
  255. package/typed/sources/vector-table-source.d.ts.map +1 -0
  256. package/typed/sources/vector-tileset-source.d.ts +5 -0
  257. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  258. package/typed/utils.d.ts +1 -0
  259. package/typed/utils.d.ts.map +1 -1
  260. package/typed/workers/cartoRasterTile.d.ts +2 -0
  261. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  262. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  263. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  264. package/typed/workers/cartoVectorTile.d.ts +2 -0
  265. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  266. package/dist/es5/layers/carto-tile-layer.js +0 -145
  267. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  268. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  269. package/typed/api/index.js +0 -3
  270. package/typed/api/layer-map.js +0 -264
  271. package/typed/api/maps-api-common.js +0 -50
  272. package/typed/api/maps-client.js +0 -125
  273. package/typed/api/maps-v3-client.js +0 -304
  274. package/typed/api/parseMap.js +0 -178
  275. package/typed/basemap.js +0 -9
  276. package/typed/config.js +0 -35
  277. package/typed/index.js +0 -10
  278. package/typed/layers/carto-layer.js +0 -173
  279. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  280. package/typed/layers/carto-tile-layer.js +0 -105
  281. package/typed/layers/h3-tile-layer.js +0 -47
  282. package/typed/layers/h3-tileset-2d.js +0 -85
  283. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  284. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  285. package/typed/layers/quadkey-tile-layer.js +0 -42
  286. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  287. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  288. package/typed/layers/quadkey-tileset-2d.js +0 -36
  289. package/typed/layers/schema/carto-tile.js +0 -161
  290. package/typed/layers/spatial-index-tile-layer.js +0 -40
  291. package/typed/style/color-bins-style.js +0 -12
  292. package/typed/style/color-categories-style.js +0 -16
  293. package/typed/style/color-continuous-style.js +0 -12
  294. package/typed/style/palette.js +0 -62
  295. package/typed/style/utils.js +0 -15
  296. package/typed/utils.js +0 -4
package/dist/dist.dev.js CHANGED
@@ -3985,7 +3985,7 @@ var __exports__ = (() => {
3985
3985
  if (moment2.version === void 0 && moment2.default) {
3986
3986
  moment2 = moment2.default;
3987
3987
  }
3988
- var VERSION = "0.5.35", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
3988
+ var VERSION4 = "0.5.35", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
3989
3989
  if (!moment2 || typeof moment2.version !== "string") {
3990
3990
  logError("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
3991
3991
  }
@@ -4361,7 +4361,7 @@ var __exports__ = (() => {
4361
4361
  out.tz(name);
4362
4362
  return out;
4363
4363
  }
4364
- tz.version = VERSION;
4364
+ tz.version = VERSION4;
4365
4365
  tz.dataVersion = "";
4366
4366
  tz._zones = zones;
4367
4367
  tz._links = links;
@@ -5348,6 +5348,13 @@ var __exports__ = (() => {
5348
5348
  }
5349
5349
  });
5350
5350
 
5351
+ // external-global-plugin:h3-js
5352
+ var require_h3_js = __commonJS({
5353
+ "external-global-plugin:h3-js"(exports, module) {
5354
+ module.exports = globalThis.h3 || {};
5355
+ }
5356
+ });
5357
+
5351
5358
  // external-global-plugin:@loaders.gl/core
5352
5359
  var require_core2 = __commonJS({
5353
5360
  "external-global-plugin:@loaders.gl/core"(exports, module) {
@@ -6091,20 +6098,6 @@ var __exports__ = (() => {
6091
6098
  }
6092
6099
  });
6093
6100
 
6094
- // external-global-plugin:@deck.gl/extensions
6095
- var require_extensions = __commonJS({
6096
- "external-global-plugin:@deck.gl/extensions"(exports, module) {
6097
- module.exports = globalThis.deck;
6098
- }
6099
- });
6100
-
6101
- // external-global-plugin:h3-js
6102
- var require_h3_js = __commonJS({
6103
- "external-global-plugin:h3-js"(exports, module) {
6104
- module.exports = globalThis.h3 || {};
6105
- }
6106
- });
6107
-
6108
6101
  // ../../node_modules/tilebelt/index.js
6109
6102
  var require_tilebelt = __commonJS({
6110
6103
  "../../node_modules/tilebelt/index.js"(exports, module) {
@@ -6330,11 +6323,11 @@ var __exports__ = (() => {
6330
6323
  for (var i = 0; i < tiles2.length; i++) {
6331
6324
  var t = tiles2[i];
6332
6325
  if (t[0] % 2 === 0 && t[1] % 2 === 0) {
6333
- var id2 = toID(t[0] + 1, t[1], z), id3 = toID(t[0], t[1] + 1, z), id4 = toID(t[0] + 1, t[1] + 1, z);
6334
- if (tileHash[id2] && tileHash[id3] && tileHash[id4]) {
6326
+ var id22 = toID(t[0] + 1, t[1], z), id32 = toID(t[0], t[1] + 1, z), id4 = toID(t[0] + 1, t[1] + 1, z);
6327
+ if (tileHash[id22] && tileHash[id32] && tileHash[id4]) {
6335
6328
  tileHash[toID(t[0], t[1], t[2])] = false;
6336
- tileHash[id2] = false;
6337
- tileHash[id3] = false;
6329
+ tileHash[id22] = false;
6330
+ tileHash[id32] = false;
6338
6331
  tileHash[id4] = false;
6339
6332
  var parentTile = [t[0] / 2, t[1] / 2, z - 1];
6340
6333
  if (z - 1 === limits.min_zoom)
@@ -6372,8 +6365,8 @@ var __exports__ = (() => {
6372
6365
  for (i = 0; i < intersections.length; i += 2) {
6373
6366
  y = intersections[i][1];
6374
6367
  for (var x = intersections[i][0] + 1; x < intersections[i + 1][0]; x++) {
6375
- var id = toID(x, y, zoom);
6376
- if (!tileHash[id]) {
6368
+ var id4 = toID(x, y, zoom);
6369
+ if (!tileHash[id4]) {
6377
6370
  tileArray.push([x, y, zoom]);
6378
6371
  }
6379
6372
  }
@@ -6424,13 +6417,487 @@ var __exports__ = (() => {
6424
6417
  var dim = 2 * (1 << z);
6425
6418
  return (dim * y + x) * 32 + z;
6426
6419
  }
6427
- function fromID(id) {
6428
- var z = id % 32, dim = 2 * (1 << z), xy = (id - z) / 32, x = xy % dim, y = (xy - x) / dim % dim;
6420
+ function fromID(id4) {
6421
+ var z = id4 % 32, dim = 2 * (1 << z), xy = (id4 - z) / 32, x = xy % dim, y = (xy - x) / dim % dim;
6429
6422
  return [x, y, z];
6430
6423
  }
6431
6424
  }
6432
6425
  });
6433
6426
 
6427
+ // ../../node_modules/earcut/src/earcut.js
6428
+ var require_earcut = __commonJS({
6429
+ "../../node_modules/earcut/src/earcut.js"(exports, module) {
6430
+ "use strict";
6431
+ module.exports = earcut2;
6432
+ module.exports.default = earcut2;
6433
+ function earcut2(data, holeIndices, dim) {
6434
+ dim = dim || 2;
6435
+ var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];
6436
+ if (!outerNode || outerNode.next === outerNode.prev)
6437
+ return triangles;
6438
+ var minX, minY, maxX, maxY, x, y, invSize;
6439
+ if (hasHoles)
6440
+ outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
6441
+ if (data.length > 80 * dim) {
6442
+ minX = maxX = data[0];
6443
+ minY = maxY = data[1];
6444
+ for (var i = dim; i < outerLen; i += dim) {
6445
+ x = data[i];
6446
+ y = data[i + 1];
6447
+ if (x < minX)
6448
+ minX = x;
6449
+ if (y < minY)
6450
+ minY = y;
6451
+ if (x > maxX)
6452
+ maxX = x;
6453
+ if (y > maxY)
6454
+ maxY = y;
6455
+ }
6456
+ invSize = Math.max(maxX - minX, maxY - minY);
6457
+ invSize = invSize !== 0 ? 1 / invSize : 0;
6458
+ }
6459
+ earcutLinked(outerNode, triangles, dim, minX, minY, invSize);
6460
+ return triangles;
6461
+ }
6462
+ function linkedList(data, start, end, dim, clockwise) {
6463
+ var i, last;
6464
+ if (clockwise === signedArea(data, start, end, dim) > 0) {
6465
+ for (i = start; i < end; i += dim)
6466
+ last = insertNode(i, data[i], data[i + 1], last);
6467
+ } else {
6468
+ for (i = end - dim; i >= start; i -= dim)
6469
+ last = insertNode(i, data[i], data[i + 1], last);
6470
+ }
6471
+ if (last && equals(last, last.next)) {
6472
+ removeNode(last);
6473
+ last = last.next;
6474
+ }
6475
+ return last;
6476
+ }
6477
+ function filterPoints(start, end) {
6478
+ if (!start)
6479
+ return start;
6480
+ if (!end)
6481
+ end = start;
6482
+ var p = start, again;
6483
+ do {
6484
+ again = false;
6485
+ if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
6486
+ removeNode(p);
6487
+ p = end = p.prev;
6488
+ if (p === p.next)
6489
+ break;
6490
+ again = true;
6491
+ } else {
6492
+ p = p.next;
6493
+ }
6494
+ } while (again || p !== end);
6495
+ return end;
6496
+ }
6497
+ function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {
6498
+ if (!ear)
6499
+ return;
6500
+ if (!pass && invSize)
6501
+ indexCurve(ear, minX, minY, invSize);
6502
+ var stop = ear, prev, next;
6503
+ while (ear.prev !== ear.next) {
6504
+ prev = ear.prev;
6505
+ next = ear.next;
6506
+ if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {
6507
+ triangles.push(prev.i / dim);
6508
+ triangles.push(ear.i / dim);
6509
+ triangles.push(next.i / dim);
6510
+ removeNode(ear);
6511
+ ear = next.next;
6512
+ stop = next.next;
6513
+ continue;
6514
+ }
6515
+ ear = next;
6516
+ if (ear === stop) {
6517
+ if (!pass) {
6518
+ earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);
6519
+ } else if (pass === 1) {
6520
+ ear = cureLocalIntersections(filterPoints(ear), triangles, dim);
6521
+ earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);
6522
+ } else if (pass === 2) {
6523
+ splitEarcut(ear, triangles, dim, minX, minY, invSize);
6524
+ }
6525
+ break;
6526
+ }
6527
+ }
6528
+ }
6529
+ function isEar(ear) {
6530
+ var a = ear.prev, b = ear, c = ear.next;
6531
+ if (area(a, b, c) >= 0)
6532
+ return false;
6533
+ var p = ear.next.next;
6534
+ while (p !== ear.prev) {
6535
+ if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
6536
+ return false;
6537
+ p = p.next;
6538
+ }
6539
+ return true;
6540
+ }
6541
+ function isEarHashed(ear, minX, minY, invSize) {
6542
+ var a = ear.prev, b = ear, c = ear.next;
6543
+ if (area(a, b, c) >= 0)
6544
+ return false;
6545
+ var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;
6546
+ var minZ = zOrder(minTX, minTY, minX, minY, invSize), maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);
6547
+ var p = ear.prevZ, n = ear.nextZ;
6548
+ while (p && p.z >= minZ && n && n.z <= maxZ) {
6549
+ if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
6550
+ return false;
6551
+ p = p.prevZ;
6552
+ if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
6553
+ return false;
6554
+ n = n.nextZ;
6555
+ }
6556
+ while (p && p.z >= minZ) {
6557
+ if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
6558
+ return false;
6559
+ p = p.prevZ;
6560
+ }
6561
+ while (n && n.z <= maxZ) {
6562
+ if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
6563
+ return false;
6564
+ n = n.nextZ;
6565
+ }
6566
+ return true;
6567
+ }
6568
+ function cureLocalIntersections(start, triangles, dim) {
6569
+ var p = start;
6570
+ do {
6571
+ var a = p.prev, b = p.next.next;
6572
+ if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
6573
+ triangles.push(a.i / dim);
6574
+ triangles.push(p.i / dim);
6575
+ triangles.push(b.i / dim);
6576
+ removeNode(p);
6577
+ removeNode(p.next);
6578
+ p = start = b;
6579
+ }
6580
+ p = p.next;
6581
+ } while (p !== start);
6582
+ return filterPoints(p);
6583
+ }
6584
+ function splitEarcut(start, triangles, dim, minX, minY, invSize) {
6585
+ var a = start;
6586
+ do {
6587
+ var b = a.next.next;
6588
+ while (b !== a.prev) {
6589
+ if (a.i !== b.i && isValidDiagonal(a, b)) {
6590
+ var c = splitPolygon(a, b);
6591
+ a = filterPoints(a, a.next);
6592
+ c = filterPoints(c, c.next);
6593
+ earcutLinked(a, triangles, dim, minX, minY, invSize);
6594
+ earcutLinked(c, triangles, dim, minX, minY, invSize);
6595
+ return;
6596
+ }
6597
+ b = b.next;
6598
+ }
6599
+ a = a.next;
6600
+ } while (a !== start);
6601
+ }
6602
+ function eliminateHoles(data, holeIndices, outerNode, dim) {
6603
+ var queue = [], i, len, start, end, list;
6604
+ for (i = 0, len = holeIndices.length; i < len; i++) {
6605
+ start = holeIndices[i] * dim;
6606
+ end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
6607
+ list = linkedList(data, start, end, dim, false);
6608
+ if (list === list.next)
6609
+ list.steiner = true;
6610
+ queue.push(getLeftmost(list));
6611
+ }
6612
+ queue.sort(compareX);
6613
+ for (i = 0; i < queue.length; i++) {
6614
+ eliminateHole(queue[i], outerNode);
6615
+ outerNode = filterPoints(outerNode, outerNode.next);
6616
+ }
6617
+ return outerNode;
6618
+ }
6619
+ function compareX(a, b) {
6620
+ return a.x - b.x;
6621
+ }
6622
+ function eliminateHole(hole, outerNode) {
6623
+ outerNode = findHoleBridge(hole, outerNode);
6624
+ if (outerNode) {
6625
+ var b = splitPolygon(outerNode, hole);
6626
+ filterPoints(b, b.next);
6627
+ }
6628
+ }
6629
+ function findHoleBridge(hole, outerNode) {
6630
+ var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;
6631
+ do {
6632
+ if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {
6633
+ var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
6634
+ if (x <= hx && x > qx) {
6635
+ qx = x;
6636
+ if (x === hx) {
6637
+ if (hy === p.y)
6638
+ return p;
6639
+ if (hy === p.next.y)
6640
+ return p.next;
6641
+ }
6642
+ m = p.x < p.next.x ? p : p.next;
6643
+ }
6644
+ }
6645
+ p = p.next;
6646
+ } while (p !== outerNode);
6647
+ if (!m)
6648
+ return null;
6649
+ if (hx === qx)
6650
+ return m;
6651
+ var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;
6652
+ p = m;
6653
+ do {
6654
+ if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
6655
+ tan = Math.abs(hy - p.y) / (hx - p.x);
6656
+ if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {
6657
+ m = p;
6658
+ tanMin = tan;
6659
+ }
6660
+ }
6661
+ p = p.next;
6662
+ } while (p !== stop);
6663
+ return m;
6664
+ }
6665
+ function sectorContainsSector(m, p) {
6666
+ return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;
6667
+ }
6668
+ function indexCurve(start, minX, minY, invSize) {
6669
+ var p = start;
6670
+ do {
6671
+ if (p.z === null)
6672
+ p.z = zOrder(p.x, p.y, minX, minY, invSize);
6673
+ p.prevZ = p.prev;
6674
+ p.nextZ = p.next;
6675
+ p = p.next;
6676
+ } while (p !== start);
6677
+ p.prevZ.nextZ = null;
6678
+ p.prevZ = null;
6679
+ sortLinked(p);
6680
+ }
6681
+ function sortLinked(list) {
6682
+ var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;
6683
+ do {
6684
+ p = list;
6685
+ list = null;
6686
+ tail = null;
6687
+ numMerges = 0;
6688
+ while (p) {
6689
+ numMerges++;
6690
+ q = p;
6691
+ pSize = 0;
6692
+ for (i = 0; i < inSize; i++) {
6693
+ pSize++;
6694
+ q = q.nextZ;
6695
+ if (!q)
6696
+ break;
6697
+ }
6698
+ qSize = inSize;
6699
+ while (pSize > 0 || qSize > 0 && q) {
6700
+ if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
6701
+ e = p;
6702
+ p = p.nextZ;
6703
+ pSize--;
6704
+ } else {
6705
+ e = q;
6706
+ q = q.nextZ;
6707
+ qSize--;
6708
+ }
6709
+ if (tail)
6710
+ tail.nextZ = e;
6711
+ else
6712
+ list = e;
6713
+ e.prevZ = tail;
6714
+ tail = e;
6715
+ }
6716
+ p = q;
6717
+ }
6718
+ tail.nextZ = null;
6719
+ inSize *= 2;
6720
+ } while (numMerges > 1);
6721
+ return list;
6722
+ }
6723
+ function zOrder(x, y, minX, minY, invSize) {
6724
+ x = 32767 * (x - minX) * invSize;
6725
+ y = 32767 * (y - minY) * invSize;
6726
+ x = (x | x << 8) & 16711935;
6727
+ x = (x | x << 4) & 252645135;
6728
+ x = (x | x << 2) & 858993459;
6729
+ x = (x | x << 1) & 1431655765;
6730
+ y = (y | y << 8) & 16711935;
6731
+ y = (y | y << 4) & 252645135;
6732
+ y = (y | y << 2) & 858993459;
6733
+ y = (y | y << 1) & 1431655765;
6734
+ return x | y << 1;
6735
+ }
6736
+ function getLeftmost(start) {
6737
+ var p = start, leftmost = start;
6738
+ do {
6739
+ if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y)
6740
+ leftmost = p;
6741
+ p = p.next;
6742
+ } while (p !== start);
6743
+ return leftmost;
6744
+ }
6745
+ function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
6746
+ return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
6747
+ }
6748
+ function isValidDiagonal(a, b) {
6749
+ return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);
6750
+ }
6751
+ function area(p, q, r) {
6752
+ return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
6753
+ }
6754
+ function equals(p1, p2) {
6755
+ return p1.x === p2.x && p1.y === p2.y;
6756
+ }
6757
+ function intersects(p1, q1, p2, q2) {
6758
+ var o1 = sign(area(p1, q1, p2));
6759
+ var o2 = sign(area(p1, q1, q2));
6760
+ var o3 = sign(area(p2, q2, p1));
6761
+ var o4 = sign(area(p2, q2, q1));
6762
+ if (o1 !== o2 && o3 !== o4)
6763
+ return true;
6764
+ if (o1 === 0 && onSegment(p1, p2, q1))
6765
+ return true;
6766
+ if (o2 === 0 && onSegment(p1, q2, q1))
6767
+ return true;
6768
+ if (o3 === 0 && onSegment(p2, p1, q2))
6769
+ return true;
6770
+ if (o4 === 0 && onSegment(p2, q1, q2))
6771
+ return true;
6772
+ return false;
6773
+ }
6774
+ function onSegment(p, q, r) {
6775
+ return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);
6776
+ }
6777
+ function sign(num) {
6778
+ return num > 0 ? 1 : num < 0 ? -1 : 0;
6779
+ }
6780
+ function intersectsPolygon(a, b) {
6781
+ var p = a;
6782
+ do {
6783
+ if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b))
6784
+ return true;
6785
+ p = p.next;
6786
+ } while (p !== a);
6787
+ return false;
6788
+ }
6789
+ function locallyInside(a, b) {
6790
+ return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
6791
+ }
6792
+ function middleInside(a, b) {
6793
+ var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;
6794
+ do {
6795
+ if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)
6796
+ inside = !inside;
6797
+ p = p.next;
6798
+ } while (p !== a);
6799
+ return inside;
6800
+ }
6801
+ function splitPolygon(a, b) {
6802
+ var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;
6803
+ a.next = b;
6804
+ b.prev = a;
6805
+ a2.next = an;
6806
+ an.prev = a2;
6807
+ b2.next = a2;
6808
+ a2.prev = b2;
6809
+ bp.next = b2;
6810
+ b2.prev = bp;
6811
+ return b2;
6812
+ }
6813
+ function insertNode(i, x, y, last) {
6814
+ var p = new Node(i, x, y);
6815
+ if (!last) {
6816
+ p.prev = p;
6817
+ p.next = p;
6818
+ } else {
6819
+ p.next = last.next;
6820
+ p.prev = last;
6821
+ last.next.prev = p;
6822
+ last.next = p;
6823
+ }
6824
+ return p;
6825
+ }
6826
+ function removeNode(p) {
6827
+ p.next.prev = p.prev;
6828
+ p.prev.next = p.next;
6829
+ if (p.prevZ)
6830
+ p.prevZ.nextZ = p.nextZ;
6831
+ if (p.nextZ)
6832
+ p.nextZ.prevZ = p.prevZ;
6833
+ }
6834
+ function Node(i, x, y) {
6835
+ this.i = i;
6836
+ this.x = x;
6837
+ this.y = y;
6838
+ this.prev = null;
6839
+ this.next = null;
6840
+ this.z = null;
6841
+ this.prevZ = null;
6842
+ this.nextZ = null;
6843
+ this.steiner = false;
6844
+ }
6845
+ earcut2.deviation = function(data, holeIndices, dim, triangles) {
6846
+ var hasHoles = holeIndices && holeIndices.length;
6847
+ var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
6848
+ var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
6849
+ if (hasHoles) {
6850
+ for (var i = 0, len = holeIndices.length; i < len; i++) {
6851
+ var start = holeIndices[i] * dim;
6852
+ var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
6853
+ polygonArea -= Math.abs(signedArea(data, start, end, dim));
6854
+ }
6855
+ }
6856
+ var trianglesArea = 0;
6857
+ for (i = 0; i < triangles.length; i += 3) {
6858
+ var a = triangles[i] * dim;
6859
+ var b = triangles[i + 1] * dim;
6860
+ var c = triangles[i + 2] * dim;
6861
+ trianglesArea += Math.abs((data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1]));
6862
+ }
6863
+ return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);
6864
+ };
6865
+ function signedArea(data, start, end, dim) {
6866
+ var sum = 0;
6867
+ for (var i = start, j = end - dim; i < end; i += dim) {
6868
+ sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
6869
+ j = i;
6870
+ }
6871
+ return sum;
6872
+ }
6873
+ earcut2.flatten = function(data) {
6874
+ var dim = data[0][0].length, result = {
6875
+ vertices: [],
6876
+ holes: [],
6877
+ dimensions: dim
6878
+ }, holeIndex = 0;
6879
+ for (var i = 0; i < data.length; i++) {
6880
+ for (var j = 0; j < data[i].length; j++) {
6881
+ for (var d = 0; d < dim; d++)
6882
+ result.vertices.push(data[i][j][d]);
6883
+ }
6884
+ if (i > 0) {
6885
+ holeIndex += data[i - 1].length;
6886
+ result.holes.push(holeIndex);
6887
+ }
6888
+ }
6889
+ return result;
6890
+ };
6891
+ }
6892
+ });
6893
+
6894
+ // external-global-plugin:@deck.gl/extensions
6895
+ var require_extensions = __commonJS({
6896
+ "external-global-plugin:@deck.gl/extensions"(exports, module) {
6897
+ module.exports = globalThis.deck;
6898
+ }
6899
+ });
6900
+
6434
6901
  // ../../node_modules/colorbrewer/colorbrewer.js
6435
6902
  var require_colorbrewer = __commonJS({
6436
6903
  "../../node_modules/colorbrewer/colorbrewer.js"(exports, module) {
@@ -8652,15 +9119,26 @@ var __exports__ = (() => {
8652
9119
  CartoAPIError: () => CartoAPIError,
8653
9120
  CartoLayer: () => CartoLayer,
8654
9121
  FORMATS: () => FORMATS,
9122
+ H3TileLayer: () => H3TileLayer,
8655
9123
  MAP_TYPES: () => MAP_TYPES,
9124
+ QuadbinTileLayer: () => QuadbinTileLayer,
9125
+ RasterTileLayer: () => RasterTileLayer,
9126
+ SOURCE_DEFAULTS: () => SOURCE_DEFAULTS,
8656
9127
  TILE_FORMATS: () => TILE_FORMATS,
8657
- _CartoTileLayer: () => CartoTileLayer,
8658
- _H3TileLayer: () => H3TileLayer,
9128
+ VectorTileLayer: () => VectorTileLayer,
8659
9129
  _PointLabelLayer: () => PointLabelLayer,
8660
- _QuadbinTileLayer: () => QuadbinTileLayer,
8661
- _RasterTileLayer: () => RasterTileLayer,
8662
9130
  _getDataV2: () => getDataV2,
8663
9131
  _mapInstantiation: () => mapInstantiation,
9132
+ cartoH3QuerySource: () => cartoH3QuerySource,
9133
+ cartoH3TableSource: () => cartoH3TableSource,
9134
+ cartoH3TilesetSource: () => cartoH3TilesetSource,
9135
+ cartoQuadbinQuerySource: () => cartoQuadbinQuerySource,
9136
+ cartoQuadbinTableSource: () => cartoQuadbinTableSource,
9137
+ cartoQuadbinTilesetSource: () => cartoQuadbinTilesetSource,
9138
+ cartoRasterSource: () => cartoRasterSource,
9139
+ cartoVectorQuerySource: () => cartoVectorQuerySource,
9140
+ cartoVectorTableSource: () => cartoVectorTableSource,
9141
+ cartoVectorTilesetSource: () => cartoVectorTilesetSource,
8664
9142
  colorBins: () => colorBins,
8665
9143
  colorCategories: () => colorCategories,
8666
9144
  colorContinuous: () => colorContinuous,
@@ -8692,7 +9170,6 @@ var __exports__ = (() => {
8692
9170
  var GEO_COLUMN_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
8693
9171
  var FORMATS = {
8694
9172
  GEOJSON: "geojson",
8695
- NDJSON: "ndjson",
8696
9173
  TILEJSON: "tilejson",
8697
9174
  JSON: "json"
8698
9175
  };
@@ -8952,624 +9429,6 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
8952
9429
  };
8953
9430
  }
8954
9431
 
8955
- // ../../node_modules/@luma.gl/constants/dist/esm/index.js
8956
- var esm_default = {
8957
- DEPTH_BUFFER_BIT: 256,
8958
- STENCIL_BUFFER_BIT: 1024,
8959
- COLOR_BUFFER_BIT: 16384,
8960
- POINTS: 0,
8961
- LINES: 1,
8962
- LINE_LOOP: 2,
8963
- LINE_STRIP: 3,
8964
- TRIANGLES: 4,
8965
- TRIANGLE_STRIP: 5,
8966
- TRIANGLE_FAN: 6,
8967
- ZERO: 0,
8968
- ONE: 1,
8969
- SRC_COLOR: 768,
8970
- ONE_MINUS_SRC_COLOR: 769,
8971
- SRC_ALPHA: 770,
8972
- ONE_MINUS_SRC_ALPHA: 771,
8973
- DST_ALPHA: 772,
8974
- ONE_MINUS_DST_ALPHA: 773,
8975
- DST_COLOR: 774,
8976
- ONE_MINUS_DST_COLOR: 775,
8977
- SRC_ALPHA_SATURATE: 776,
8978
- CONSTANT_COLOR: 32769,
8979
- ONE_MINUS_CONSTANT_COLOR: 32770,
8980
- CONSTANT_ALPHA: 32771,
8981
- ONE_MINUS_CONSTANT_ALPHA: 32772,
8982
- FUNC_ADD: 32774,
8983
- FUNC_SUBTRACT: 32778,
8984
- FUNC_REVERSE_SUBTRACT: 32779,
8985
- BLEND_EQUATION: 32777,
8986
- BLEND_EQUATION_RGB: 32777,
8987
- BLEND_EQUATION_ALPHA: 34877,
8988
- BLEND_DST_RGB: 32968,
8989
- BLEND_SRC_RGB: 32969,
8990
- BLEND_DST_ALPHA: 32970,
8991
- BLEND_SRC_ALPHA: 32971,
8992
- BLEND_COLOR: 32773,
8993
- ARRAY_BUFFER_BINDING: 34964,
8994
- ELEMENT_ARRAY_BUFFER_BINDING: 34965,
8995
- LINE_WIDTH: 2849,
8996
- ALIASED_POINT_SIZE_RANGE: 33901,
8997
- ALIASED_LINE_WIDTH_RANGE: 33902,
8998
- CULL_FACE_MODE: 2885,
8999
- FRONT_FACE: 2886,
9000
- DEPTH_RANGE: 2928,
9001
- DEPTH_WRITEMASK: 2930,
9002
- DEPTH_CLEAR_VALUE: 2931,
9003
- DEPTH_FUNC: 2932,
9004
- STENCIL_CLEAR_VALUE: 2961,
9005
- STENCIL_FUNC: 2962,
9006
- STENCIL_FAIL: 2964,
9007
- STENCIL_PASS_DEPTH_FAIL: 2965,
9008
- STENCIL_PASS_DEPTH_PASS: 2966,
9009
- STENCIL_REF: 2967,
9010
- STENCIL_VALUE_MASK: 2963,
9011
- STENCIL_WRITEMASK: 2968,
9012
- STENCIL_BACK_FUNC: 34816,
9013
- STENCIL_BACK_FAIL: 34817,
9014
- STENCIL_BACK_PASS_DEPTH_FAIL: 34818,
9015
- STENCIL_BACK_PASS_DEPTH_PASS: 34819,
9016
- STENCIL_BACK_REF: 36003,
9017
- STENCIL_BACK_VALUE_MASK: 36004,
9018
- STENCIL_BACK_WRITEMASK: 36005,
9019
- VIEWPORT: 2978,
9020
- SCISSOR_BOX: 3088,
9021
- COLOR_CLEAR_VALUE: 3106,
9022
- COLOR_WRITEMASK: 3107,
9023
- UNPACK_ALIGNMENT: 3317,
9024
- PACK_ALIGNMENT: 3333,
9025
- MAX_TEXTURE_SIZE: 3379,
9026
- MAX_VIEWPORT_DIMS: 3386,
9027
- SUBPIXEL_BITS: 3408,
9028
- RED_BITS: 3410,
9029
- GREEN_BITS: 3411,
9030
- BLUE_BITS: 3412,
9031
- ALPHA_BITS: 3413,
9032
- DEPTH_BITS: 3414,
9033
- STENCIL_BITS: 3415,
9034
- POLYGON_OFFSET_UNITS: 10752,
9035
- POLYGON_OFFSET_FACTOR: 32824,
9036
- TEXTURE_BINDING_2D: 32873,
9037
- SAMPLE_BUFFERS: 32936,
9038
- SAMPLES: 32937,
9039
- SAMPLE_COVERAGE_VALUE: 32938,
9040
- SAMPLE_COVERAGE_INVERT: 32939,
9041
- COMPRESSED_TEXTURE_FORMATS: 34467,
9042
- VENDOR: 7936,
9043
- RENDERER: 7937,
9044
- VERSION: 7938,
9045
- IMPLEMENTATION_COLOR_READ_TYPE: 35738,
9046
- IMPLEMENTATION_COLOR_READ_FORMAT: 35739,
9047
- BROWSER_DEFAULT_WEBGL: 37444,
9048
- STATIC_DRAW: 35044,
9049
- STREAM_DRAW: 35040,
9050
- DYNAMIC_DRAW: 35048,
9051
- ARRAY_BUFFER: 34962,
9052
- ELEMENT_ARRAY_BUFFER: 34963,
9053
- BUFFER_SIZE: 34660,
9054
- BUFFER_USAGE: 34661,
9055
- CURRENT_VERTEX_ATTRIB: 34342,
9056
- VERTEX_ATTRIB_ARRAY_ENABLED: 34338,
9057
- VERTEX_ATTRIB_ARRAY_SIZE: 34339,
9058
- VERTEX_ATTRIB_ARRAY_STRIDE: 34340,
9059
- VERTEX_ATTRIB_ARRAY_TYPE: 34341,
9060
- VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922,
9061
- VERTEX_ATTRIB_ARRAY_POINTER: 34373,
9062
- VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975,
9063
- CULL_FACE: 2884,
9064
- FRONT: 1028,
9065
- BACK: 1029,
9066
- FRONT_AND_BACK: 1032,
9067
- BLEND: 3042,
9068
- DEPTH_TEST: 2929,
9069
- DITHER: 3024,
9070
- POLYGON_OFFSET_FILL: 32823,
9071
- SAMPLE_ALPHA_TO_COVERAGE: 32926,
9072
- SAMPLE_COVERAGE: 32928,
9073
- SCISSOR_TEST: 3089,
9074
- STENCIL_TEST: 2960,
9075
- NO_ERROR: 0,
9076
- INVALID_ENUM: 1280,
9077
- INVALID_VALUE: 1281,
9078
- INVALID_OPERATION: 1282,
9079
- OUT_OF_MEMORY: 1285,
9080
- CONTEXT_LOST_WEBGL: 37442,
9081
- CW: 2304,
9082
- CCW: 2305,
9083
- DONT_CARE: 4352,
9084
- FASTEST: 4353,
9085
- NICEST: 4354,
9086
- GENERATE_MIPMAP_HINT: 33170,
9087
- BYTE: 5120,
9088
- UNSIGNED_BYTE: 5121,
9089
- SHORT: 5122,
9090
- UNSIGNED_SHORT: 5123,
9091
- INT: 5124,
9092
- UNSIGNED_INT: 5125,
9093
- FLOAT: 5126,
9094
- DOUBLE: 5130,
9095
- DEPTH_COMPONENT: 6402,
9096
- ALPHA: 6406,
9097
- RGB: 6407,
9098
- RGBA: 6408,
9099
- LUMINANCE: 6409,
9100
- LUMINANCE_ALPHA: 6410,
9101
- UNSIGNED_SHORT_4_4_4_4: 32819,
9102
- UNSIGNED_SHORT_5_5_5_1: 32820,
9103
- UNSIGNED_SHORT_5_6_5: 33635,
9104
- FRAGMENT_SHADER: 35632,
9105
- VERTEX_SHADER: 35633,
9106
- COMPILE_STATUS: 35713,
9107
- DELETE_STATUS: 35712,
9108
- LINK_STATUS: 35714,
9109
- VALIDATE_STATUS: 35715,
9110
- ATTACHED_SHADERS: 35717,
9111
- ACTIVE_ATTRIBUTES: 35721,
9112
- ACTIVE_UNIFORMS: 35718,
9113
- MAX_VERTEX_ATTRIBS: 34921,
9114
- MAX_VERTEX_UNIFORM_VECTORS: 36347,
9115
- MAX_VARYING_VECTORS: 36348,
9116
- MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661,
9117
- MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660,
9118
- MAX_TEXTURE_IMAGE_UNITS: 34930,
9119
- MAX_FRAGMENT_UNIFORM_VECTORS: 36349,
9120
- SHADER_TYPE: 35663,
9121
- SHADING_LANGUAGE_VERSION: 35724,
9122
- CURRENT_PROGRAM: 35725,
9123
- NEVER: 512,
9124
- ALWAYS: 519,
9125
- LESS: 513,
9126
- EQUAL: 514,
9127
- LEQUAL: 515,
9128
- GREATER: 516,
9129
- GEQUAL: 518,
9130
- NOTEQUAL: 517,
9131
- KEEP: 7680,
9132
- REPLACE: 7681,
9133
- INCR: 7682,
9134
- DECR: 7683,
9135
- INVERT: 5386,
9136
- INCR_WRAP: 34055,
9137
- DECR_WRAP: 34056,
9138
- NEAREST: 9728,
9139
- LINEAR: 9729,
9140
- NEAREST_MIPMAP_NEAREST: 9984,
9141
- LINEAR_MIPMAP_NEAREST: 9985,
9142
- NEAREST_MIPMAP_LINEAR: 9986,
9143
- LINEAR_MIPMAP_LINEAR: 9987,
9144
- TEXTURE_MAG_FILTER: 10240,
9145
- TEXTURE_MIN_FILTER: 10241,
9146
- TEXTURE_WRAP_S: 10242,
9147
- TEXTURE_WRAP_T: 10243,
9148
- TEXTURE_2D: 3553,
9149
- TEXTURE: 5890,
9150
- TEXTURE_CUBE_MAP: 34067,
9151
- TEXTURE_BINDING_CUBE_MAP: 34068,
9152
- TEXTURE_CUBE_MAP_POSITIVE_X: 34069,
9153
- TEXTURE_CUBE_MAP_NEGATIVE_X: 34070,
9154
- TEXTURE_CUBE_MAP_POSITIVE_Y: 34071,
9155
- TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,
9156
- TEXTURE_CUBE_MAP_POSITIVE_Z: 34073,
9157
- TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,
9158
- MAX_CUBE_MAP_TEXTURE_SIZE: 34076,
9159
- TEXTURE0: 33984,
9160
- ACTIVE_TEXTURE: 34016,
9161
- REPEAT: 10497,
9162
- CLAMP_TO_EDGE: 33071,
9163
- MIRRORED_REPEAT: 33648,
9164
- TEXTURE_WIDTH: 4096,
9165
- TEXTURE_HEIGHT: 4097,
9166
- FLOAT_VEC2: 35664,
9167
- FLOAT_VEC3: 35665,
9168
- FLOAT_VEC4: 35666,
9169
- INT_VEC2: 35667,
9170
- INT_VEC3: 35668,
9171
- INT_VEC4: 35669,
9172
- BOOL: 35670,
9173
- BOOL_VEC2: 35671,
9174
- BOOL_VEC3: 35672,
9175
- BOOL_VEC4: 35673,
9176
- FLOAT_MAT2: 35674,
9177
- FLOAT_MAT3: 35675,
9178
- FLOAT_MAT4: 35676,
9179
- SAMPLER_2D: 35678,
9180
- SAMPLER_CUBE: 35680,
9181
- LOW_FLOAT: 36336,
9182
- MEDIUM_FLOAT: 36337,
9183
- HIGH_FLOAT: 36338,
9184
- LOW_INT: 36339,
9185
- MEDIUM_INT: 36340,
9186
- HIGH_INT: 36341,
9187
- FRAMEBUFFER: 36160,
9188
- RENDERBUFFER: 36161,
9189
- RGBA4: 32854,
9190
- RGB5_A1: 32855,
9191
- RGB565: 36194,
9192
- DEPTH_COMPONENT16: 33189,
9193
- STENCIL_INDEX: 6401,
9194
- STENCIL_INDEX8: 36168,
9195
- DEPTH_STENCIL: 34041,
9196
- RENDERBUFFER_WIDTH: 36162,
9197
- RENDERBUFFER_HEIGHT: 36163,
9198
- RENDERBUFFER_INTERNAL_FORMAT: 36164,
9199
- RENDERBUFFER_RED_SIZE: 36176,
9200
- RENDERBUFFER_GREEN_SIZE: 36177,
9201
- RENDERBUFFER_BLUE_SIZE: 36178,
9202
- RENDERBUFFER_ALPHA_SIZE: 36179,
9203
- RENDERBUFFER_DEPTH_SIZE: 36180,
9204
- RENDERBUFFER_STENCIL_SIZE: 36181,
9205
- FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048,
9206
- FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049,
9207
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050,
9208
- FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051,
9209
- COLOR_ATTACHMENT0: 36064,
9210
- DEPTH_ATTACHMENT: 36096,
9211
- STENCIL_ATTACHMENT: 36128,
9212
- DEPTH_STENCIL_ATTACHMENT: 33306,
9213
- NONE: 0,
9214
- FRAMEBUFFER_COMPLETE: 36053,
9215
- FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054,
9216
- FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055,
9217
- FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057,
9218
- FRAMEBUFFER_UNSUPPORTED: 36061,
9219
- FRAMEBUFFER_BINDING: 36006,
9220
- RENDERBUFFER_BINDING: 36007,
9221
- READ_FRAMEBUFFER: 36008,
9222
- DRAW_FRAMEBUFFER: 36009,
9223
- MAX_RENDERBUFFER_SIZE: 34024,
9224
- INVALID_FRAMEBUFFER_OPERATION: 1286,
9225
- UNPACK_FLIP_Y_WEBGL: 37440,
9226
- UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441,
9227
- UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443,
9228
- READ_BUFFER: 3074,
9229
- UNPACK_ROW_LENGTH: 3314,
9230
- UNPACK_SKIP_ROWS: 3315,
9231
- UNPACK_SKIP_PIXELS: 3316,
9232
- PACK_ROW_LENGTH: 3330,
9233
- PACK_SKIP_ROWS: 3331,
9234
- PACK_SKIP_PIXELS: 3332,
9235
- TEXTURE_BINDING_3D: 32874,
9236
- UNPACK_SKIP_IMAGES: 32877,
9237
- UNPACK_IMAGE_HEIGHT: 32878,
9238
- MAX_3D_TEXTURE_SIZE: 32883,
9239
- MAX_ELEMENTS_VERTICES: 33e3,
9240
- MAX_ELEMENTS_INDICES: 33001,
9241
- MAX_TEXTURE_LOD_BIAS: 34045,
9242
- MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657,
9243
- MAX_VERTEX_UNIFORM_COMPONENTS: 35658,
9244
- MAX_ARRAY_TEXTURE_LAYERS: 35071,
9245
- MIN_PROGRAM_TEXEL_OFFSET: 35076,
9246
- MAX_PROGRAM_TEXEL_OFFSET: 35077,
9247
- MAX_VARYING_COMPONENTS: 35659,
9248
- FRAGMENT_SHADER_DERIVATIVE_HINT: 35723,
9249
- RASTERIZER_DISCARD: 35977,
9250
- VERTEX_ARRAY_BINDING: 34229,
9251
- MAX_VERTEX_OUTPUT_COMPONENTS: 37154,
9252
- MAX_FRAGMENT_INPUT_COMPONENTS: 37157,
9253
- MAX_SERVER_WAIT_TIMEOUT: 37137,
9254
- MAX_ELEMENT_INDEX: 36203,
9255
- RED: 6403,
9256
- RGB8: 32849,
9257
- RGBA8: 32856,
9258
- RGB10_A2: 32857,
9259
- TEXTURE_3D: 32879,
9260
- TEXTURE_WRAP_R: 32882,
9261
- TEXTURE_MIN_LOD: 33082,
9262
- TEXTURE_MAX_LOD: 33083,
9263
- TEXTURE_BASE_LEVEL: 33084,
9264
- TEXTURE_MAX_LEVEL: 33085,
9265
- TEXTURE_COMPARE_MODE: 34892,
9266
- TEXTURE_COMPARE_FUNC: 34893,
9267
- SRGB: 35904,
9268
- SRGB8: 35905,
9269
- SRGB8_ALPHA8: 35907,
9270
- COMPARE_REF_TO_TEXTURE: 34894,
9271
- RGBA32F: 34836,
9272
- RGB32F: 34837,
9273
- RGBA16F: 34842,
9274
- RGB16F: 34843,
9275
- TEXTURE_2D_ARRAY: 35866,
9276
- TEXTURE_BINDING_2D_ARRAY: 35869,
9277
- R11F_G11F_B10F: 35898,
9278
- RGB9_E5: 35901,
9279
- RGBA32UI: 36208,
9280
- RGB32UI: 36209,
9281
- RGBA16UI: 36214,
9282
- RGB16UI: 36215,
9283
- RGBA8UI: 36220,
9284
- RGB8UI: 36221,
9285
- RGBA32I: 36226,
9286
- RGB32I: 36227,
9287
- RGBA16I: 36232,
9288
- RGB16I: 36233,
9289
- RGBA8I: 36238,
9290
- RGB8I: 36239,
9291
- RED_INTEGER: 36244,
9292
- RGB_INTEGER: 36248,
9293
- RGBA_INTEGER: 36249,
9294
- R8: 33321,
9295
- RG8: 33323,
9296
- R16F: 33325,
9297
- R32F: 33326,
9298
- RG16F: 33327,
9299
- RG32F: 33328,
9300
- R8I: 33329,
9301
- R8UI: 33330,
9302
- R16I: 33331,
9303
- R16UI: 33332,
9304
- R32I: 33333,
9305
- R32UI: 33334,
9306
- RG8I: 33335,
9307
- RG8UI: 33336,
9308
- RG16I: 33337,
9309
- RG16UI: 33338,
9310
- RG32I: 33339,
9311
- RG32UI: 33340,
9312
- R8_SNORM: 36756,
9313
- RG8_SNORM: 36757,
9314
- RGB8_SNORM: 36758,
9315
- RGBA8_SNORM: 36759,
9316
- RGB10_A2UI: 36975,
9317
- TEXTURE_IMMUTABLE_FORMAT: 37167,
9318
- TEXTURE_IMMUTABLE_LEVELS: 33503,
9319
- UNSIGNED_INT_2_10_10_10_REV: 33640,
9320
- UNSIGNED_INT_10F_11F_11F_REV: 35899,
9321
- UNSIGNED_INT_5_9_9_9_REV: 35902,
9322
- FLOAT_32_UNSIGNED_INT_24_8_REV: 36269,
9323
- UNSIGNED_INT_24_8: 34042,
9324
- HALF_FLOAT: 5131,
9325
- RG: 33319,
9326
- RG_INTEGER: 33320,
9327
- INT_2_10_10_10_REV: 36255,
9328
- CURRENT_QUERY: 34917,
9329
- QUERY_RESULT: 34918,
9330
- QUERY_RESULT_AVAILABLE: 34919,
9331
- ANY_SAMPLES_PASSED: 35887,
9332
- ANY_SAMPLES_PASSED_CONSERVATIVE: 36202,
9333
- MAX_DRAW_BUFFERS: 34852,
9334
- DRAW_BUFFER0: 34853,
9335
- DRAW_BUFFER1: 34854,
9336
- DRAW_BUFFER2: 34855,
9337
- DRAW_BUFFER3: 34856,
9338
- DRAW_BUFFER4: 34857,
9339
- DRAW_BUFFER5: 34858,
9340
- DRAW_BUFFER6: 34859,
9341
- DRAW_BUFFER7: 34860,
9342
- DRAW_BUFFER8: 34861,
9343
- DRAW_BUFFER9: 34862,
9344
- DRAW_BUFFER10: 34863,
9345
- DRAW_BUFFER11: 34864,
9346
- DRAW_BUFFER12: 34865,
9347
- DRAW_BUFFER13: 34866,
9348
- DRAW_BUFFER14: 34867,
9349
- DRAW_BUFFER15: 34868,
9350
- MAX_COLOR_ATTACHMENTS: 36063,
9351
- COLOR_ATTACHMENT1: 36065,
9352
- COLOR_ATTACHMENT2: 36066,
9353
- COLOR_ATTACHMENT3: 36067,
9354
- COLOR_ATTACHMENT4: 36068,
9355
- COLOR_ATTACHMENT5: 36069,
9356
- COLOR_ATTACHMENT6: 36070,
9357
- COLOR_ATTACHMENT7: 36071,
9358
- COLOR_ATTACHMENT8: 36072,
9359
- COLOR_ATTACHMENT9: 36073,
9360
- COLOR_ATTACHMENT10: 36074,
9361
- COLOR_ATTACHMENT11: 36075,
9362
- COLOR_ATTACHMENT12: 36076,
9363
- COLOR_ATTACHMENT13: 36077,
9364
- COLOR_ATTACHMENT14: 36078,
9365
- COLOR_ATTACHMENT15: 36079,
9366
- SAMPLER_3D: 35679,
9367
- SAMPLER_2D_SHADOW: 35682,
9368
- SAMPLER_2D_ARRAY: 36289,
9369
- SAMPLER_2D_ARRAY_SHADOW: 36292,
9370
- SAMPLER_CUBE_SHADOW: 36293,
9371
- INT_SAMPLER_2D: 36298,
9372
- INT_SAMPLER_3D: 36299,
9373
- INT_SAMPLER_CUBE: 36300,
9374
- INT_SAMPLER_2D_ARRAY: 36303,
9375
- UNSIGNED_INT_SAMPLER_2D: 36306,
9376
- UNSIGNED_INT_SAMPLER_3D: 36307,
9377
- UNSIGNED_INT_SAMPLER_CUBE: 36308,
9378
- UNSIGNED_INT_SAMPLER_2D_ARRAY: 36311,
9379
- MAX_SAMPLES: 36183,
9380
- SAMPLER_BINDING: 35097,
9381
- PIXEL_PACK_BUFFER: 35051,
9382
- PIXEL_UNPACK_BUFFER: 35052,
9383
- PIXEL_PACK_BUFFER_BINDING: 35053,
9384
- PIXEL_UNPACK_BUFFER_BINDING: 35055,
9385
- COPY_READ_BUFFER: 36662,
9386
- COPY_WRITE_BUFFER: 36663,
9387
- COPY_READ_BUFFER_BINDING: 36662,
9388
- COPY_WRITE_BUFFER_BINDING: 36663,
9389
- FLOAT_MAT2x3: 35685,
9390
- FLOAT_MAT2x4: 35686,
9391
- FLOAT_MAT3x2: 35687,
9392
- FLOAT_MAT3x4: 35688,
9393
- FLOAT_MAT4x2: 35689,
9394
- FLOAT_MAT4x3: 35690,
9395
- UNSIGNED_INT_VEC2: 36294,
9396
- UNSIGNED_INT_VEC3: 36295,
9397
- UNSIGNED_INT_VEC4: 36296,
9398
- UNSIGNED_NORMALIZED: 35863,
9399
- SIGNED_NORMALIZED: 36764,
9400
- VERTEX_ATTRIB_ARRAY_INTEGER: 35069,
9401
- VERTEX_ATTRIB_ARRAY_DIVISOR: 35070,
9402
- TRANSFORM_FEEDBACK_BUFFER_MODE: 35967,
9403
- MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968,
9404
- TRANSFORM_FEEDBACK_VARYINGS: 35971,
9405
- TRANSFORM_FEEDBACK_BUFFER_START: 35972,
9406
- TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973,
9407
- TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976,
9408
- MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978,
9409
- MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979,
9410
- INTERLEAVED_ATTRIBS: 35980,
9411
- SEPARATE_ATTRIBS: 35981,
9412
- TRANSFORM_FEEDBACK_BUFFER: 35982,
9413
- TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983,
9414
- TRANSFORM_FEEDBACK: 36386,
9415
- TRANSFORM_FEEDBACK_PAUSED: 36387,
9416
- TRANSFORM_FEEDBACK_ACTIVE: 36388,
9417
- TRANSFORM_FEEDBACK_BINDING: 36389,
9418
- FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296,
9419
- FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297,
9420
- FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298,
9421
- FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299,
9422
- FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300,
9423
- FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301,
9424
- FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302,
9425
- FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303,
9426
- FRAMEBUFFER_DEFAULT: 33304,
9427
- DEPTH24_STENCIL8: 35056,
9428
- DRAW_FRAMEBUFFER_BINDING: 36006,
9429
- READ_FRAMEBUFFER_BINDING: 36010,
9430
- RENDERBUFFER_SAMPLES: 36011,
9431
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052,
9432
- FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182,
9433
- UNIFORM_BUFFER: 35345,
9434
- UNIFORM_BUFFER_BINDING: 35368,
9435
- UNIFORM_BUFFER_START: 35369,
9436
- UNIFORM_BUFFER_SIZE: 35370,
9437
- MAX_VERTEX_UNIFORM_BLOCKS: 35371,
9438
- MAX_FRAGMENT_UNIFORM_BLOCKS: 35373,
9439
- MAX_COMBINED_UNIFORM_BLOCKS: 35374,
9440
- MAX_UNIFORM_BUFFER_BINDINGS: 35375,
9441
- MAX_UNIFORM_BLOCK_SIZE: 35376,
9442
- MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377,
9443
- MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379,
9444
- UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380,
9445
- ACTIVE_UNIFORM_BLOCKS: 35382,
9446
- UNIFORM_TYPE: 35383,
9447
- UNIFORM_SIZE: 35384,
9448
- UNIFORM_BLOCK_INDEX: 35386,
9449
- UNIFORM_OFFSET: 35387,
9450
- UNIFORM_ARRAY_STRIDE: 35388,
9451
- UNIFORM_MATRIX_STRIDE: 35389,
9452
- UNIFORM_IS_ROW_MAJOR: 35390,
9453
- UNIFORM_BLOCK_BINDING: 35391,
9454
- UNIFORM_BLOCK_DATA_SIZE: 35392,
9455
- UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394,
9456
- UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395,
9457
- UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396,
9458
- UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398,
9459
- OBJECT_TYPE: 37138,
9460
- SYNC_CONDITION: 37139,
9461
- SYNC_STATUS: 37140,
9462
- SYNC_FLAGS: 37141,
9463
- SYNC_FENCE: 37142,
9464
- SYNC_GPU_COMMANDS_COMPLETE: 37143,
9465
- UNSIGNALED: 37144,
9466
- SIGNALED: 37145,
9467
- ALREADY_SIGNALED: 37146,
9468
- TIMEOUT_EXPIRED: 37147,
9469
- CONDITION_SATISFIED: 37148,
9470
- WAIT_FAILED: 37149,
9471
- SYNC_FLUSH_COMMANDS_BIT: 1,
9472
- COLOR: 6144,
9473
- DEPTH: 6145,
9474
- STENCIL: 6146,
9475
- MIN: 32775,
9476
- MAX: 32776,
9477
- DEPTH_COMPONENT24: 33190,
9478
- STREAM_READ: 35041,
9479
- STREAM_COPY: 35042,
9480
- STATIC_READ: 35045,
9481
- STATIC_COPY: 35046,
9482
- DYNAMIC_READ: 35049,
9483
- DYNAMIC_COPY: 35050,
9484
- DEPTH_COMPONENT32F: 36012,
9485
- DEPTH32F_STENCIL8: 36013,
9486
- INVALID_INDEX: 4294967295,
9487
- TIMEOUT_IGNORED: -1,
9488
- MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447,
9489
- VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 35070,
9490
- UNMASKED_VENDOR_WEBGL: 37445,
9491
- UNMASKED_RENDERER_WEBGL: 37446,
9492
- MAX_TEXTURE_MAX_ANISOTROPY_EXT: 34047,
9493
- TEXTURE_MAX_ANISOTROPY_EXT: 34046,
9494
- COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
9495
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
9496
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
9497
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
9498
- COMPRESSED_R11_EAC: 37488,
9499
- COMPRESSED_SIGNED_R11_EAC: 37489,
9500
- COMPRESSED_RG11_EAC: 37490,
9501
- COMPRESSED_SIGNED_RG11_EAC: 37491,
9502
- COMPRESSED_RGB8_ETC2: 37492,
9503
- COMPRESSED_RGBA8_ETC2_EAC: 37493,
9504
- COMPRESSED_SRGB8_ETC2: 37494,
9505
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
9506
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
9507
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
9508
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
9509
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
9510
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
9511
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
9512
- COMPRESSED_RGB_ETC1_WEBGL: 36196,
9513
- COMPRESSED_RGB_ATC_WEBGL: 35986,
9514
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35986,
9515
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
9516
- UNSIGNED_INT_24_8_WEBGL: 34042,
9517
- HALF_FLOAT_OES: 36193,
9518
- RGBA32F_EXT: 34836,
9519
- RGB32F_EXT: 34837,
9520
- FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 33297,
9521
- UNSIGNED_NORMALIZED_EXT: 35863,
9522
- MIN_EXT: 32775,
9523
- MAX_EXT: 32776,
9524
- SRGB_EXT: 35904,
9525
- SRGB_ALPHA_EXT: 35906,
9526
- SRGB8_ALPHA8_EXT: 35907,
9527
- FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 33296,
9528
- FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 35723,
9529
- COLOR_ATTACHMENT0_WEBGL: 36064,
9530
- COLOR_ATTACHMENT1_WEBGL: 36065,
9531
- COLOR_ATTACHMENT2_WEBGL: 36066,
9532
- COLOR_ATTACHMENT3_WEBGL: 36067,
9533
- COLOR_ATTACHMENT4_WEBGL: 36068,
9534
- COLOR_ATTACHMENT5_WEBGL: 36069,
9535
- COLOR_ATTACHMENT6_WEBGL: 36070,
9536
- COLOR_ATTACHMENT7_WEBGL: 36071,
9537
- COLOR_ATTACHMENT8_WEBGL: 36072,
9538
- COLOR_ATTACHMENT9_WEBGL: 36073,
9539
- COLOR_ATTACHMENT10_WEBGL: 36074,
9540
- COLOR_ATTACHMENT11_WEBGL: 36075,
9541
- COLOR_ATTACHMENT12_WEBGL: 36076,
9542
- COLOR_ATTACHMENT13_WEBGL: 36077,
9543
- COLOR_ATTACHMENT14_WEBGL: 36078,
9544
- COLOR_ATTACHMENT15_WEBGL: 36079,
9545
- DRAW_BUFFER0_WEBGL: 34853,
9546
- DRAW_BUFFER1_WEBGL: 34854,
9547
- DRAW_BUFFER2_WEBGL: 34855,
9548
- DRAW_BUFFER3_WEBGL: 34856,
9549
- DRAW_BUFFER4_WEBGL: 34857,
9550
- DRAW_BUFFER5_WEBGL: 34858,
9551
- DRAW_BUFFER6_WEBGL: 34859,
9552
- DRAW_BUFFER7_WEBGL: 34860,
9553
- DRAW_BUFFER8_WEBGL: 34861,
9554
- DRAW_BUFFER9_WEBGL: 34862,
9555
- DRAW_BUFFER10_WEBGL: 34863,
9556
- DRAW_BUFFER11_WEBGL: 34864,
9557
- DRAW_BUFFER12_WEBGL: 34865,
9558
- DRAW_BUFFER13_WEBGL: 34866,
9559
- DRAW_BUFFER14_WEBGL: 34867,
9560
- DRAW_BUFFER15_WEBGL: 34868,
9561
- MAX_COLOR_ATTACHMENTS_WEBGL: 36063,
9562
- MAX_DRAW_BUFFERS_WEBGL: 34852,
9563
- VERTEX_ARRAY_BINDING_OES: 34229,
9564
- QUERY_COUNTER_BITS_EXT: 34916,
9565
- CURRENT_QUERY_EXT: 34917,
9566
- QUERY_RESULT_EXT: 34918,
9567
- QUERY_RESULT_AVAILABLE_EXT: 34919,
9568
- TIME_ELAPSED_EXT: 35007,
9569
- TIMESTAMP_EXT: 36392,
9570
- GPU_DISJOINT_EXT: 36795
9571
- };
9572
-
9573
9432
  // ../../node_modules/d3-array/src/ascending.js
9574
9433
  function ascending(a, b) {
9575
9434
  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
@@ -11466,8 +11325,118 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11466
11325
  var import_layers3 = __toESM(require_layers());
11467
11326
  var import_geo_layers7 = __toESM(require_geo_layers());
11468
11327
 
11469
- // src/layers/carto-tile-layer.ts
11470
- var import_core = __toESM(require_core2());
11328
+ // src/layers/h3-tile-layer.ts
11329
+ var import_core3 = __toESM(require_core());
11330
+ var import_geo_layers3 = __toESM(require_geo_layers());
11331
+
11332
+ // src/layers/h3-tileset-2d.ts
11333
+ var import_geo_layers = __toESM(require_geo_layers());
11334
+ var import_h3_js = __toESM(require_h3_js());
11335
+ function getHexagonsInBoundingBox({
11336
+ west,
11337
+ north,
11338
+ east,
11339
+ south
11340
+ }, resolution) {
11341
+ const longitudeSpan = Math.abs(east - west);
11342
+ if (longitudeSpan > 180) {
11343
+ const nSegments = Math.ceil(longitudeSpan / 180);
11344
+ let h3Indices2 = [];
11345
+ for (let s = 0; s < nSegments; s++) {
11346
+ const segmentEast = east + s * 180;
11347
+ const segmentWest = Math.min(segmentEast + 179.9999999, west);
11348
+ h3Indices2 = h3Indices2.concat(getHexagonsInBoundingBox({
11349
+ west: segmentWest,
11350
+ north,
11351
+ east: segmentEast,
11352
+ south
11353
+ }, resolution));
11354
+ }
11355
+ return [...new Set(h3Indices2)];
11356
+ }
11357
+ const oversample = 2;
11358
+ const h3Indices = (0, import_h3_js.polygonToCells)([[[west, north], [west, south], [east, south], [east, north], [west, north]]], resolution + oversample, true);
11359
+ return oversample ? [...new Set(h3Indices.map((i) => (0, import_h3_js.cellToParent)(i, resolution)))] : h3Indices;
11360
+ }
11361
+ function tileToBoundingBox(index) {
11362
+ const coordinates = (0, import_h3_js.cellToBoundary)(index);
11363
+ const latitudes = coordinates.map((c) => c[0]);
11364
+ const longitudes = coordinates.map((c) => c[1]);
11365
+ const west = Math.min(...longitudes);
11366
+ const south = Math.min(...latitudes);
11367
+ const east = Math.max(...longitudes);
11368
+ const north = Math.max(...latitudes);
11369
+ return {
11370
+ west,
11371
+ south,
11372
+ east,
11373
+ north
11374
+ };
11375
+ }
11376
+ var BIAS = 2;
11377
+ function getHexagonResolution(viewport) {
11378
+ const hexagonScaleFactor = 2 / 3 * viewport.zoom;
11379
+ const latitudeScaleFactor = Math.log(1 / Math.cos(Math.PI * viewport.latitude / 180));
11380
+ return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));
11381
+ }
11382
+ var H3Tileset2D = class extends import_geo_layers._Tileset2D {
11383
+ getTileIndices({
11384
+ viewport,
11385
+ minZoom,
11386
+ maxZoom
11387
+ }) {
11388
+ if (viewport.latitude === void 0)
11389
+ return [];
11390
+ const [east, south, west, north] = viewport.getBounds();
11391
+ let z = getHexagonResolution(viewport);
11392
+ let indices;
11393
+ if (typeof minZoom === "number" && Number.isFinite(minZoom) && z < minZoom) {
11394
+ return [];
11395
+ }
11396
+ if (typeof maxZoom === "number" && Number.isFinite(maxZoom) && z > maxZoom) {
11397
+ z = maxZoom;
11398
+ const center = (0, import_h3_js.latLngToCell)(viewport.latitude, viewport.longitude, maxZoom);
11399
+ indices = (0, import_h3_js.gridDisk)(center, 1);
11400
+ } else {
11401
+ indices = getHexagonsInBoundingBox({
11402
+ west,
11403
+ north,
11404
+ east,
11405
+ south
11406
+ }, z);
11407
+ }
11408
+ return indices.map((i) => ({
11409
+ i
11410
+ }));
11411
+ }
11412
+ getTileId({
11413
+ i
11414
+ }) {
11415
+ return i;
11416
+ }
11417
+ getTileMetadata({
11418
+ i
11419
+ }) {
11420
+ return {
11421
+ bbox: tileToBoundingBox(i)
11422
+ };
11423
+ }
11424
+ getTileZoom({
11425
+ i
11426
+ }) {
11427
+ return (0, import_h3_js.getResolution)(i);
11428
+ }
11429
+ getParentIndex(index) {
11430
+ const resolution = (0, import_h3_js.getResolution)(index.i);
11431
+ const i = (0, import_h3_js.cellToParent)(index.i, resolution - 1);
11432
+ return {
11433
+ i
11434
+ };
11435
+ }
11436
+ };
11437
+
11438
+ // src/layers/spatial-index-tile-layer.ts
11439
+ var import_core2 = __toESM(require_core2());
11471
11440
 
11472
11441
  // src/layers/schema/fast-pbf.ts
11473
11442
  function readPackedTypedArray(TypedArray, pbf, obj) {
@@ -11477,25 +11446,162 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11477
11446
  return obj.value;
11478
11447
  }
11479
11448
 
11480
- // src/layers/schema/carto-tile.ts
11481
- var KeyValueObjectReader = class {
11449
+ // src/layers/schema/carto-raster-tile.ts
11450
+ var ARRAY_TYPES = {
11451
+ uint8: Uint8Array,
11452
+ uint16: Uint16Array,
11453
+ uint32: Uint32Array,
11454
+ uint64: BigUint64Array,
11455
+ int8: Int8Array,
11456
+ int16: Int16Array,
11457
+ int32: Int32Array,
11458
+ int64: BigInt64Array,
11459
+ float32: Float32Array,
11460
+ float64: Float64Array
11461
+ };
11462
+ var BandReader = class {
11482
11463
  static read(pbf, end) {
11483
- return pbf.readFields(KeyValueObjectReader._readField, {
11484
- key: "",
11485
- value: ""
11464
+ return pbf.readFields(BandReader._readField, {
11465
+ name: "",
11466
+ type: "",
11467
+ data: null
11486
11468
  }, end);
11487
11469
  }
11488
11470
  static _readField(tag, obj, pbf) {
11489
11471
  if (tag === 1)
11490
- obj.key = pbf.readString();
11472
+ obj.name = pbf.readString();
11491
11473
  else if (tag === 2)
11492
- obj.value = pbf.readString();
11493
- }
11494
- };
11495
- var PropertiesReader = class {
11496
- static read(pbf, end) {
11497
- return pbf.readFields(PropertiesReader._readField, {}, end);
11498
- }
11474
+ obj.type = pbf.readString();
11475
+ else if (tag === 3) {
11476
+ const TypedArray = ARRAY_TYPES[obj.type];
11477
+ if (!TypedArray) {
11478
+ throw Error(`Invalid data type: ${obj.type}`);
11479
+ }
11480
+ obj.data = {};
11481
+ readPackedTypedArray(TypedArray, pbf, obj.data);
11482
+ }
11483
+ }
11484
+ };
11485
+ var TileReader = class {
11486
+ static read(pbf, end) {
11487
+ return pbf.readFields(TileReader._readField, {
11488
+ blockWidth: 0,
11489
+ blockHeight: 0,
11490
+ bands: []
11491
+ }, end);
11492
+ }
11493
+ static _readField(tag, obj, pbf) {
11494
+ if (tag === 1)
11495
+ obj.blockWidth = pbf.readVarint();
11496
+ else if (tag === 2)
11497
+ obj.blockHeight = pbf.readVarint();
11498
+ else if (tag === 3)
11499
+ obj.bands.push(BandReader.read(pbf, pbf.readVarint() + pbf.pos));
11500
+ }
11501
+ };
11502
+
11503
+ // src/layers/schema/tile-loader-utils.ts
11504
+ var import_pbf = __toESM(require_pbf());
11505
+ function parsePbf(buffer, TileReader4) {
11506
+ const pbf = new import_pbf.default(buffer);
11507
+ const tile = TileReader4.read(pbf);
11508
+ return tile;
11509
+ }
11510
+
11511
+ // src/utils.ts
11512
+ var import_core = __toESM(require_core());
11513
+ function assert(condition, message) {
11514
+ import_core.log.assert(condition, message);
11515
+ }
11516
+ function createBinaryProxy(data, index) {
11517
+ const {
11518
+ properties,
11519
+ numericProps
11520
+ } = data;
11521
+ return new Proxy(properties[index] || {}, {
11522
+ get(target, property, receiver) {
11523
+ if (property in numericProps) {
11524
+ return numericProps[property].value[index];
11525
+ }
11526
+ return target[property];
11527
+ },
11528
+ has(target, property) {
11529
+ return property in numericProps || property in target;
11530
+ }
11531
+ });
11532
+ }
11533
+ function getWorkerUrl(id4, version) {
11534
+ return `https://unpkg.com/@deck.gl/carto@${version}/dist/${id4}-worker.js`;
11535
+ }
11536
+
11537
+ // src/layers/schema/carto-raster-tile-loader.ts
11538
+ var VERSION = true ? "8.10.0-alpha.5" : "latest";
11539
+ var id = "cartoRasterTile";
11540
+ var DEFAULT_OPTIONS = {
11541
+ cartoRasterTile: {
11542
+ workerUrl: getWorkerUrl(id, VERSION)
11543
+ }
11544
+ };
11545
+ var CartoRasterTileLoader = {
11546
+ name: "CARTO Raster Tile",
11547
+ version: VERSION,
11548
+ id,
11549
+ module: "carto",
11550
+ extensions: ["pbf"],
11551
+ mimeTypes: ["application/vnd.carto-raster-tile"],
11552
+ category: "geometry",
11553
+ parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
11554
+ parseSync: parseCartoRasterTile,
11555
+ worker: true,
11556
+ options: DEFAULT_OPTIONS
11557
+ };
11558
+ function parseCartoRasterTile(arrayBuffer, options) {
11559
+ if (!arrayBuffer)
11560
+ return null;
11561
+ const tile = parsePbf(arrayBuffer, TileReader);
11562
+ const {
11563
+ bands,
11564
+ blockHeight,
11565
+ blockWidth
11566
+ } = tile;
11567
+ const numericProps = {};
11568
+ for (let i = 0; i < bands.length; i++) {
11569
+ const {
11570
+ name,
11571
+ data
11572
+ } = bands[i];
11573
+ numericProps[name] = data;
11574
+ }
11575
+ return {
11576
+ blockWidth,
11577
+ blockHeight,
11578
+ cells: {
11579
+ numericProps,
11580
+ properties: []
11581
+ }
11582
+ };
11583
+ }
11584
+ var carto_raster_tile_loader_default = CartoRasterTileLoader;
11585
+
11586
+ // src/layers/schema/carto-tile.ts
11587
+ var KeyValueObjectReader = class {
11588
+ static read(pbf, end) {
11589
+ return pbf.readFields(KeyValueObjectReader._readField, {
11590
+ key: "",
11591
+ value: null
11592
+ }, end);
11593
+ }
11594
+ static _readField(tag, obj, pbf) {
11595
+ if (tag === 1)
11596
+ obj.key = pbf.readString();
11597
+ else if (tag === 2)
11598
+ obj.value = pbf.readString();
11599
+ }
11600
+ };
11601
+ var PropertiesReader = class {
11602
+ static read(pbf, end) {
11603
+ return pbf.readFields(PropertiesReader._readField, {}, end);
11604
+ }
11499
11605
  static _readField(tag, obj, pbf) {
11500
11606
  if (tag === 1) {
11501
11607
  const {
@@ -11677,9 +11783,9 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11677
11783
  obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
11678
11784
  }
11679
11785
  };
11680
- var TileReader = class {
11786
+ var TileReader2 = class {
11681
11787
  static read(pbf, end) {
11682
- return pbf.readFields(TileReader._readField, {
11788
+ return pbf.readFields(TileReader2._readField, {
11683
11789
  points: null,
11684
11790
  lines: null,
11685
11791
  polygons: null
@@ -11695,1044 +11801,530 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11695
11801
  }
11696
11802
  };
11697
11803
 
11698
- // src/layers/schema/tile-loader-utils.ts
11699
- var import_pbf = __toESM(require_pbf());
11700
- function parsePbf(buffer, TileReader4) {
11701
- const pbf = new import_pbf.default(buffer);
11702
- const tile = TileReader4.read(pbf);
11703
- return tile;
11704
- }
11705
-
11706
- // src/layers/schema/carto-vector-tile-loader.ts
11707
- var CartoVectorTileLoader = {
11708
- name: "CARTO Vector Tile",
11709
- version: "1",
11710
- id: "cartoVectorTile",
11711
- module: "carto",
11712
- extensions: ["pbf"],
11713
- mimeTypes: ["application/vnd.carto-vector-tile"],
11714
- category: "geometry",
11715
- worker: false,
11716
- parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
11717
- parseSync: parseCartoVectorTile,
11718
- options: {}
11804
+ // src/layers/schema/carto-spatial-tile.ts
11805
+ var IndicesReader = class {
11806
+ static read(pbf, end) {
11807
+ return pbf.readFields(IndicesReader._readField, {
11808
+ value: []
11809
+ }, end);
11810
+ }
11811
+ static _readField(tag, obj, pbf) {
11812
+ if (tag === 1)
11813
+ readPackedTypedArray(BigUint64Array, pbf, obj);
11814
+ }
11719
11815
  };
11720
- function parseCartoVectorTile(arrayBuffer, options) {
11721
- if (!arrayBuffer)
11722
- return null;
11723
- const tile = parsePbf(arrayBuffer, TileReader);
11724
- return tile;
11725
- }
11726
- var carto_vector_tile_loader_default = CartoVectorTileLoader;
11727
-
11728
- // src/layers/carto-tile-layer.ts
11729
- var import_extensions = __toESM(require_extensions());
11730
- var import_geo_layers = __toESM(require_geo_layers());
11731
- var import_layers = __toESM(require_layers());
11732
-
11733
- // ../../node_modules/@loaders.gl/gis/dist/esm/lib/binary-to-geojson.js
11734
- function binaryToGeojson(data, options) {
11735
- const globalFeatureId = options === null || options === void 0 ? void 0 : options.globalFeatureId;
11736
- if (globalFeatureId !== void 0) {
11737
- return getSingleFeature(data, globalFeatureId);
11816
+ var CellsReader = class {
11817
+ static read(pbf, end) {
11818
+ return pbf.readFields(CellsReader._readField, {
11819
+ indices: null,
11820
+ properties: [],
11821
+ numericProps: {}
11822
+ }, end);
11738
11823
  }
11739
- return parseFeatures(data, options === null || options === void 0 ? void 0 : options.type);
11740
- }
11741
- function getSingleFeature(data, globalFeatureId) {
11742
- const dataArray = normalizeInput(data);
11743
- for (const data2 of dataArray) {
11744
- let lastIndex = 0;
11745
- let lastValue = data2.featureIds.value[0];
11746
- for (let i = 0; i < data2.featureIds.value.length; i++) {
11747
- const currValue = data2.featureIds.value[i];
11748
- if (currValue === lastValue) {
11749
- continue;
11750
- }
11751
- if (globalFeatureId === data2.globalFeatureIds.value[lastIndex]) {
11752
- return parseFeature(data2, lastIndex, i);
11753
- }
11754
- lastIndex = i;
11755
- lastValue = currValue;
11756
- }
11757
- if (globalFeatureId === data2.globalFeatureIds.value[lastIndex]) {
11758
- return parseFeature(data2, lastIndex, data2.featureIds.value.length);
11824
+ static _readField(tag, obj, pbf) {
11825
+ if (tag === 1)
11826
+ obj.indices = IndicesReader.read(pbf, pbf.readVarint() + pbf.pos);
11827
+ else if (tag === 2)
11828
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
11829
+ else if (tag === 3) {
11830
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
11831
+ obj.numericProps[entry.key] = entry.value;
11759
11832
  }
11760
11833
  }
11761
- throw new Error("featureId:".concat(globalFeatureId, " not found"));
11834
+ };
11835
+ var TileReader3 = class {
11836
+ static read(pbf, end) {
11837
+ return pbf.readFields(TileReader3._readField, {
11838
+ scheme: 0,
11839
+ cells: null
11840
+ }, end);
11841
+ }
11842
+ static _readField(tag, obj, pbf) {
11843
+ if (tag === 1)
11844
+ obj.scheme = pbf.readVarint();
11845
+ else if (tag === 2)
11846
+ obj.cells = CellsReader.read(pbf, pbf.readVarint() + pbf.pos);
11847
+ }
11848
+ };
11849
+
11850
+ // ../../node_modules/quadbin/dist/esm/index.js
11851
+ var import_tile_cover = __toESM(require_tile_cover());
11852
+ var B = [
11853
+ 0x5555555555555555n,
11854
+ 0x3333333333333333n,
11855
+ 0x0f0f0f0f0f0f0f0fn,
11856
+ 0x00ff00ff00ff00ffn,
11857
+ 0x0000ffff0000ffffn,
11858
+ 0x00000000ffffffffn
11859
+ ];
11860
+ var S = [0n, 1n, 2n, 4n, 8n, 16n];
11861
+ function hexToBigInt(hex2) {
11862
+ return BigInt(`0x${hex2}`);
11762
11863
  }
11763
- function parseFeatures(data, type) {
11764
- const dataArray = normalizeInput(data, type);
11765
- return parseFeatureCollection(dataArray);
11864
+ function bigIntToHex(index) {
11865
+ return index.toString(16);
11766
11866
  }
11767
- function binaryToGeometry(data, startIndex, endIndex) {
11768
- switch (data.type) {
11769
- case "Point":
11770
- return pointToGeoJson(data, startIndex, endIndex);
11771
- case "LineString":
11772
- return lineStringToGeoJson(data, startIndex, endIndex);
11773
- case "Polygon":
11774
- return polygonToGeoJson(data, startIndex, endIndex);
11775
- default:
11776
- const unexpectedInput = data;
11777
- throw new Error("Unsupported geometry type: ".concat(unexpectedInput === null || unexpectedInput === void 0 ? void 0 : unexpectedInput.type));
11867
+ function tileToCell(tile) {
11868
+ if (tile.z < 0 || tile.z > 26) {
11869
+ throw new Error("Wrong zoom");
11778
11870
  }
11779
- }
11780
- function normalizeInput(data, type) {
11781
- const isHeterogeneousType = Boolean(data.points || data.lines || data.polygons);
11782
- if (!isHeterogeneousType) {
11783
- data.type = type || parseType(data);
11784
- return [data];
11785
- }
11786
- const features = [];
11787
- if (data.points) {
11788
- data.points.type = "Point";
11789
- features.push(data.points);
11790
- }
11791
- if (data.lines) {
11792
- data.lines.type = "LineString";
11793
- features.push(data.lines);
11794
- }
11795
- if (data.polygons) {
11796
- data.polygons.type = "Polygon";
11797
- features.push(data.polygons);
11871
+ const z = BigInt(tile.z);
11872
+ let x = BigInt(tile.x) << 32n - z;
11873
+ let y = BigInt(tile.y) << 32n - z;
11874
+ for (let i = 0; i < 5; i++) {
11875
+ const s = S[5 - i];
11876
+ const b = B[4 - i];
11877
+ x = (x | x << s) & b;
11878
+ y = (y | y << s) & b;
11798
11879
  }
11799
- return features;
11880
+ const quadbin = 0x4000000000000000n | 1n << 59n | z << 52n | (x | y << 1n) >> 12n | 0xfffffffffffffn >> z * 2n;
11881
+ return quadbin;
11800
11882
  }
11801
- function parseFeatureCollection(dataArray) {
11802
- const features = [];
11803
- for (const data of dataArray) {
11804
- if (data.featureIds.value.length === 0) {
11805
- continue;
11806
- }
11807
- let lastIndex = 0;
11808
- let lastValue = data.featureIds.value[0];
11809
- for (let i = 0; i < data.featureIds.value.length; i++) {
11810
- const currValue = data.featureIds.value[i];
11811
- if (currValue === lastValue) {
11812
- continue;
11813
- }
11814
- features.push(parseFeature(data, lastIndex, i));
11815
- lastIndex = i;
11816
- lastValue = currValue;
11817
- }
11818
- features.push(parseFeature(data, lastIndex, data.featureIds.value.length));
11883
+ function cellToTile(quadbin) {
11884
+ const mode = quadbin >> 59n & 7n;
11885
+ const modeDep = quadbin >> 57n & 3n;
11886
+ const z = quadbin >> 52n & 0x1fn;
11887
+ const q = (quadbin & 0xfffffffffffffn) << 12n;
11888
+ if (mode !== 1n && modeDep !== 0n) {
11889
+ throw new Error("Wrong mode");
11819
11890
  }
11820
- return features;
11821
- }
11822
- function parseFeature(data, startIndex, endIndex) {
11823
- const geometry = binaryToGeometry(data, startIndex, endIndex);
11824
- const properties = parseProperties(data, startIndex, endIndex);
11825
- const fields = parseFields(data, startIndex, endIndex);
11826
- return {
11827
- type: "Feature",
11828
- geometry,
11829
- properties,
11830
- ...fields
11831
- };
11832
- }
11833
- function parseFields(data) {
11834
- let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
11835
- let endIndex = arguments.length > 2 ? arguments[2] : void 0;
11836
- return data.fields && data.fields[data.featureIds.value[startIndex]];
11837
- }
11838
- function parseProperties(data) {
11839
- let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
11840
- let endIndex = arguments.length > 2 ? arguments[2] : void 0;
11841
- const properties = Object.assign({}, data.properties[data.featureIds.value[startIndex]]);
11842
- for (const key in data.numericProps) {
11843
- properties[key] = data.numericProps[key].value[startIndex];
11891
+ let x = q;
11892
+ let y = q >> 1n;
11893
+ for (let i = 0; i < 6; i++) {
11894
+ const s = S[i];
11895
+ const b = B[i];
11896
+ x = (x | x >> s) & b;
11897
+ y = (y | y >> s) & b;
11844
11898
  }
11845
- return properties;
11899
+ x = x >> 32n - z;
11900
+ y = y >> 32n - z;
11901
+ return { z: Number(z), x: Number(x), y: Number(y) };
11846
11902
  }
11847
- function polygonToGeoJson(data) {
11848
- let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -Infinity;
11849
- let endIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Infinity;
11850
- const {
11851
- positions
11852
- } = data;
11853
- const polygonIndices = data.polygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
11854
- const primitivePolygonIndices = data.primitivePolygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
11855
- const multi = polygonIndices.length > 2;
11856
- if (!multi) {
11857
- const coordinates2 = [];
11858
- for (let i = 0; i < primitivePolygonIndices.length - 1; i++) {
11859
- const startRingIndex = primitivePolygonIndices[i];
11860
- const endRingIndex = primitivePolygonIndices[i + 1];
11861
- const ringCoordinates = ringToGeoJson(positions, startRingIndex, endRingIndex);
11862
- coordinates2.push(ringCoordinates);
11863
- }
11864
- return {
11865
- type: "Polygon",
11866
- coordinates: coordinates2
11867
- };
11868
- }
11869
- const coordinates = [];
11870
- for (let i = 0; i < polygonIndices.length - 1; i++) {
11871
- const startPolygonIndex = polygonIndices[i];
11872
- const endPolygonIndex = polygonIndices[i + 1];
11873
- const polygonCoordinates = polygonToGeoJson(data, startPolygonIndex, endPolygonIndex).coordinates;
11874
- coordinates.push(polygonCoordinates);
11875
- }
11876
- return {
11877
- type: "MultiPolygon",
11878
- coordinates
11879
- };
11903
+ function getResolution2(quadbin) {
11904
+ return quadbin >> 52n & 0x1fn;
11880
11905
  }
11881
- function lineStringToGeoJson(data) {
11882
- let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -Infinity;
11883
- let endIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Infinity;
11884
- const {
11885
- positions
11886
- } = data;
11887
- const pathIndices = data.pathIndices.value.filter((x) => x >= startIndex && x <= endIndex);
11888
- const multi = pathIndices.length > 2;
11889
- if (!multi) {
11890
- const coordinates2 = ringToGeoJson(positions, pathIndices[0], pathIndices[1]);
11891
- return {
11892
- type: "LineString",
11893
- coordinates: coordinates2
11894
- };
11895
- }
11896
- const coordinates = [];
11897
- for (let i = 0; i < pathIndices.length - 1; i++) {
11898
- const ringCoordinates = ringToGeoJson(positions, pathIndices[i], pathIndices[i + 1]);
11899
- coordinates.push(ringCoordinates);
11900
- }
11901
- return {
11902
- type: "MultiLineString",
11903
- coordinates
11904
- };
11906
+ function cellToParent2(quadbin) {
11907
+ const zparent = getResolution2(quadbin) - 1n;
11908
+ const parent = quadbin & ~(0x1fn << 52n) | zparent << 52n | 0xfffffffffffffn >> zparent * 2n;
11909
+ return parent;
11905
11910
  }
11906
- function pointToGeoJson(data, startIndex, endIndex) {
11911
+
11912
+ // src/layers/schema/spatialjson-utils.ts
11913
+ function binaryToSpatialjson(binary) {
11907
11914
  const {
11908
- positions
11909
- } = data;
11910
- const coordinates = ringToGeoJson(positions, startIndex, endIndex);
11911
- const multi = coordinates.length > 1;
11912
- if (multi) {
11913
- return {
11914
- type: "MultiPoint",
11915
- coordinates
11915
+ cells,
11916
+ scheme
11917
+ } = binary;
11918
+ const count = cells.indices.value.length;
11919
+ const spatial = [];
11920
+ for (let i = 0; i < count; i++) {
11921
+ const id4 = scheme === "h3" ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];
11922
+ const properties = {
11923
+ ...cells.properties[i]
11916
11924
  };
11917
- }
11918
- return {
11919
- type: "Point",
11920
- coordinates: coordinates[0]
11921
- };
11922
- }
11923
- function ringToGeoJson(positions, startIndex, endIndex) {
11924
- startIndex = startIndex || 0;
11925
- endIndex = endIndex || positions.value.length / positions.size;
11926
- const ringCoordinates = [];
11927
- for (let j = startIndex; j < endIndex; j++) {
11928
- const coord = Array();
11929
- for (let k = j * positions.size; k < (j + 1) * positions.size; k++) {
11930
- coord.push(Number(positions.value[k]));
11925
+ for (const key of Object.keys(cells.numericProps)) {
11926
+ properties[key] = cells.numericProps[key].value[i];
11931
11927
  }
11932
- ringCoordinates.push(coord);
11928
+ spatial.push({
11929
+ id: id4,
11930
+ properties
11931
+ });
11933
11932
  }
11934
- return ringCoordinates;
11933
+ return spatial;
11935
11934
  }
11936
- function parseType(data) {
11937
- if (data.pathIndices) {
11938
- return "LineString";
11939
- }
11940
- if (data.polygonIndices) {
11941
- return "Polygon";
11935
+
11936
+ // src/layers/schema/carto-spatial-tile-loader.ts
11937
+ var VERSION2 = true ? "8.10.0-alpha.5" : "latest";
11938
+ var id2 = "cartoSpatialTile";
11939
+ var DEFAULT_OPTIONS2 = {
11940
+ cartoSpatialTile: {
11941
+ scheme: "quadbin",
11942
+ workerUrl: getWorkerUrl(id2, VERSION2)
11942
11943
  }
11943
- return "Point";
11944
+ };
11945
+ var CartoSpatialTileLoader = {
11946
+ name: "CARTO Spatial Tile",
11947
+ version: VERSION2,
11948
+ id: id2,
11949
+ module: "carto",
11950
+ extensions: ["pbf"],
11951
+ mimeTypes: ["application/vnd.carto-spatial-tile"],
11952
+ category: "geometry",
11953
+ parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
11954
+ parseSync: parseCartoSpatialTile,
11955
+ worker: true,
11956
+ options: DEFAULT_OPTIONS2
11957
+ };
11958
+ function parseCartoSpatialTile(arrayBuffer, options) {
11959
+ if (!arrayBuffer)
11960
+ return null;
11961
+ const tile = parsePbf(arrayBuffer, TileReader3);
11962
+ const {
11963
+ cells
11964
+ } = tile;
11965
+ const scheme = options?.cartoSpatialTile?.scheme;
11966
+ const data = {
11967
+ cells,
11968
+ scheme
11969
+ };
11970
+ return binaryToSpatialjson(data);
11944
11971
  }
11972
+ var carto_spatial_tile_loader_default = CartoSpatialTileLoader;
11945
11973
 
11946
- // src/layers/carto-tile-layer.ts
11947
- (0, import_core.registerLoaders)([carto_vector_tile_loader_default]);
11948
- var defaultTileFormat = TILE_FORMATS.BINARY;
11974
+ // src/layers/spatial-index-tile-layer.ts
11975
+ var import_geo_layers2 = __toESM(require_geo_layers());
11976
+ (0, import_core2.registerLoaders)([carto_raster_tile_loader_default, carto_spatial_tile_loader_default]);
11977
+ function isFeatureIdDefined(value) {
11978
+ return value !== void 0 && value !== null && value !== "";
11979
+ }
11949
11980
  var defaultProps = {
11950
- ...import_geo_layers.MVTLayer.defaultProps,
11951
- formatTiles: defaultTileFormat
11981
+ aggregationResLevel: 4
11952
11982
  };
11953
- var CartoTileLayer = class extends import_geo_layers.MVTLayer {
11954
- initializeState() {
11955
- super.initializeState();
11956
- const binary = this.props.formatTiles === TILE_FORMATS.BINARY;
11957
- this.setState({
11958
- binary
11959
- });
11960
- }
11961
- getTileData(tile) {
11962
- const url = (0, import_geo_layers._getURLFromTemplate)(this.state.data, tile);
11963
- if (!url) {
11964
- return Promise.reject("Invalid URL");
11965
- }
11966
- let loadOptions = this.getLoadOptions();
11967
- const {
11968
- fetch: fetch2,
11969
- formatTiles
11970
- } = this.props;
11983
+ var SpatialIndexTileLayer = class extends import_geo_layers2.TileLayer {
11984
+ updateState(params) {
11971
11985
  const {
11972
- signal
11973
- } = tile;
11974
- if (formatTiles === TILE_FORMATS.BINARY) {
11975
- loadOptions = {
11976
- ...loadOptions,
11977
- mimeType: "application/vnd.carto-vector-tile"
11978
- };
11986
+ props,
11987
+ oldProps
11988
+ } = params;
11989
+ if (props.aggregationResLevel !== oldProps.aggregationResLevel) {
11990
+ this.setState({
11991
+ tileset: null
11992
+ });
11979
11993
  }
11980
- return fetch2(url, {
11981
- propName: "data",
11982
- layer: this,
11983
- loadOptions,
11984
- signal
11985
- });
11994
+ super.updateState(params);
11986
11995
  }
11987
- renderSubLayers(props) {
11988
- if (props.data === null) {
11989
- return null;
11990
- }
11991
- const tileBbox = props.tile.bbox;
11996
+ _updateAutoHighlight(info) {
11992
11997
  const {
11993
- west,
11994
- south,
11995
- east,
11996
- north
11997
- } = tileBbox;
11998
- const subLayerProps = {
11999
- ...props,
12000
- autoHighlight: false,
12001
- extensions: [new import_extensions.ClipExtension(), ...props.extensions || []],
12002
- clipBounds: [west, south, east, north]
12003
- };
12004
- const subLayer = new import_layers.GeoJsonLayer(subLayerProps);
12005
- return subLayer;
12006
- }
12007
- getPickingInfo(params) {
12008
- const info = super.getPickingInfo(params);
12009
- if (this.state.binary && info.index !== -1) {
12010
- const {
12011
- data
12012
- } = params.sourceLayer.props;
12013
- info.object = binaryToGeojson(data, {
12014
- globalFeatureId: info.index
12015
- });
12016
- }
12017
- return info;
12018
- }
12019
- };
12020
- __publicField(CartoTileLayer, "layerName", "CartoTileLayer");
12021
- __publicField(CartoTileLayer, "defaultProps", defaultProps);
12022
-
12023
- // src/layers/h3-tile-layer.ts
12024
- var import_core3 = __toESM(require_core());
12025
- var import_geo_layers4 = __toESM(require_geo_layers());
12026
-
12027
- // src/layers/h3-tileset-2d.ts
12028
- var import_geo_layers2 = __toESM(require_geo_layers());
12029
- var import_h3_js = __toESM(require_h3_js());
12030
- function getHexagonsInBoundingBox({
12031
- west,
12032
- north,
12033
- east,
12034
- south
12035
- }, resolution) {
12036
- const longitudeSpan = Math.abs(east - west);
12037
- if (longitudeSpan > 180) {
12038
- const nSegments = Math.ceil(longitudeSpan / 180);
12039
- let h3Indices2 = [];
12040
- for (let s = 0; s < nSegments; s++) {
12041
- const segmentEast = east + s * 180;
12042
- const segmentWest = Math.min(segmentEast + 179.9999999, west);
12043
- h3Indices2 = h3Indices2.concat(getHexagonsInBoundingBox({
12044
- west: segmentWest,
12045
- north,
12046
- east: segmentEast,
12047
- south
12048
- }, resolution));
12049
- }
12050
- return [...new Set(h3Indices2)];
12051
- }
12052
- const oversample = 2;
12053
- const h3Indices = (0, import_h3_js.polygonToCells)([[[west, north], [west, south], [east, south], [east, north], [west, north]]], resolution + oversample, true);
12054
- return oversample ? [...new Set(h3Indices.map((i) => (0, import_h3_js.cellToParent)(i, resolution)))] : h3Indices;
12055
- }
12056
- function tileToBoundingBox(index) {
12057
- const coordinates = (0, import_h3_js.cellToBoundary)(index);
12058
- const latitudes = coordinates.map((c) => c[0]);
12059
- const longitudes = coordinates.map((c) => c[1]);
12060
- const west = Math.min(...longitudes);
12061
- const south = Math.min(...latitudes);
12062
- const east = Math.max(...longitudes);
12063
- const north = Math.max(...latitudes);
12064
- return {
12065
- west,
12066
- south,
12067
- east,
12068
- north
12069
- };
12070
- }
12071
- var BIAS = 2;
12072
- function getHexagonResolution(viewport) {
12073
- const hexagonScaleFactor = 2 / 3 * viewport.zoom;
12074
- const latitudeScaleFactor = Math.log(1 / Math.cos(Math.PI * viewport.latitude / 180));
12075
- return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));
12076
- }
12077
- var H3Tileset2D = class extends import_geo_layers2._Tileset2D {
12078
- getTileIndices({
12079
- viewport,
12080
- minZoom,
12081
- maxZoom
12082
- }) {
12083
- if (viewport.latitude === void 0)
12084
- return [];
12085
- const [east, south, west, north] = viewport.getBounds();
12086
- let z = getHexagonResolution(viewport);
12087
- let indices;
12088
- if (typeof minZoom === "number" && Number.isFinite(minZoom) && z < minZoom) {
12089
- return [];
11998
+ hoveredFeatureId
11999
+ } = this.state;
12000
+ const hoveredFeature = info.object;
12001
+ let newHoveredFeatureId;
12002
+ if (hoveredFeature) {
12003
+ newHoveredFeatureId = hoveredFeature.id;
12090
12004
  }
12091
- if (typeof maxZoom === "number" && Number.isFinite(maxZoom) && z > maxZoom) {
12092
- z = maxZoom;
12093
- const center = (0, import_h3_js.latLngToCell)(viewport.latitude, viewport.longitude, maxZoom);
12094
- indices = (0, import_h3_js.gridDisk)(center, 1);
12095
- } else {
12096
- indices = getHexagonsInBoundingBox({
12097
- west,
12098
- north,
12099
- east,
12100
- south
12101
- }, z);
12005
+ if (hoveredFeatureId !== newHoveredFeatureId) {
12006
+ let {
12007
+ highlightColor
12008
+ } = this.props;
12009
+ if (typeof highlightColor === "function") {
12010
+ highlightColor = highlightColor(info);
12011
+ }
12012
+ this.setState({
12013
+ highlightColor,
12014
+ hoveredFeatureId: newHoveredFeatureId
12015
+ });
12102
12016
  }
12103
- return indices.map((i) => ({
12104
- i
12105
- }));
12106
- }
12107
- getTileId({
12108
- i
12109
- }) {
12110
- return i;
12111
12017
  }
12112
- getTileMetadata({
12113
- i
12114
- }) {
12018
+ getSubLayerPropsByTile(tile) {
12115
12019
  return {
12116
- bbox: tileToBoundingBox(i)
12020
+ highlightedObjectIndex: this.getHighlightedObjectIndex(tile),
12021
+ highlightColor: this.state.highlightColor
12117
12022
  };
12118
12023
  }
12119
- getTileZoom({
12120
- i
12121
- }) {
12122
- return (0, import_h3_js.getResolution)(i);
12024
+ getHighlightedObjectIndex(tile) {
12025
+ const {
12026
+ hoveredFeatureId
12027
+ } = this.state;
12028
+ const data = tile.content;
12029
+ const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);
12030
+ if (!isFeatureIdPresent || !Array.isArray(data) || !this._featureInTile(tile, hoveredFeatureId)) {
12031
+ return -1;
12032
+ }
12033
+ return data.findIndex((feature) => feature.id === hoveredFeatureId);
12123
12034
  }
12124
- getParentIndex(index) {
12125
- const resolution = (0, import_h3_js.getResolution)(index.i);
12126
- const i = (0, import_h3_js.cellToParent)(index.i, resolution - 1);
12127
- return {
12128
- i
12035
+ _featureInTile(tile, featureId) {
12036
+ const {
12037
+ getTileZoom,
12038
+ getParentIndex
12039
+ } = this.state.tileset;
12040
+ const tileZoom = getTileZoom(tile.index);
12041
+ const KEY = tile.index.q ? "q" : "i";
12042
+ let featureIndex = {
12043
+ [KEY]: featureId
12129
12044
  };
12045
+ let featureZoom = getTileZoom(featureIndex);
12046
+ while (!(featureZoom <= tileZoom)) {
12047
+ featureIndex = getParentIndex(featureIndex);
12048
+ featureZoom = getTileZoom(featureIndex);
12049
+ }
12050
+ return featureIndex[KEY] === tile.index[KEY];
12130
12051
  }
12131
12052
  };
12132
-
12133
- // src/layers/spatial-index-tile-layer.ts
12134
- var import_core2 = __toESM(require_core2());
12135
-
12136
- // src/layers/schema/carto-raster-tile.ts
12137
- var ARRAY_TYPES = {
12138
- uint8: Uint8Array,
12139
- uint16: Uint16Array,
12140
- uint32: Uint32Array,
12141
- uint64: BigUint64Array,
12142
- int8: Int8Array,
12143
- int16: Int16Array,
12144
- int32: Int32Array,
12145
- int64: BigInt64Array,
12146
- float32: Float32Array,
12147
- float64: Float64Array
12053
+ __publicField(SpatialIndexTileLayer, "layerName", "SpatialIndexTileLayer");
12054
+ __publicField(SpatialIndexTileLayer, "defaultProps", defaultProps);
12055
+
12056
+ // src/sources/common.ts
12057
+ var SOURCE_DEFAULTS = {
12058
+ apiBaseUrl: "https://gcp-us-east1.api.carto.com",
12059
+ clientId: "deck-gl-carto",
12060
+ format: "tilejson",
12061
+ formatTiles: "binary",
12062
+ headers: {}
12148
12063
  };
12149
- var BandReader = class {
12150
- static read(pbf, end) {
12151
- return pbf.readFields(BandReader._readField, {
12152
- name: "",
12153
- type: "",
12154
- data: null
12155
- }, end);
12156
- }
12157
- static _readField(tag, obj, pbf) {
12158
- if (tag === 1)
12159
- obj.name = pbf.readString();
12160
- else if (tag === 2)
12161
- obj.type = pbf.readString();
12162
- else if (tag === 3) {
12163
- const TypedArray = ARRAY_TYPES[obj.type];
12164
- if (!TypedArray) {
12165
- throw Error(`Invalid data type: ${obj.type}`);
12064
+ var DEFAULT_CLIENT = "deck-gl-carto";
12065
+ var V3_MINOR_VERSION = "3.2";
12066
+ var MAX_GET_LENGTH = 8192;
12067
+ var DEFAULT_PARAMETERS = {
12068
+ client: DEFAULT_CLIENT,
12069
+ v: V3_MINOR_VERSION
12070
+ };
12071
+ var DEFAULT_HEADERS = {
12072
+ Accept: "application/json",
12073
+ "Content-Type": "application/json"
12074
+ };
12075
+ var TilejsonPropType = {
12076
+ type: "object",
12077
+ value: null,
12078
+ validate: (value, propType) => propType.optional && value === null || typeof value === "object" && Array.isArray(value.tiles) && value.tiles.every((url) => typeof url === "string"),
12079
+ compare: 2,
12080
+ async: true
12081
+ };
12082
+
12083
+ // src/layers/utils.ts
12084
+ function injectAccessToken(loadOptions, accessToken) {
12085
+ if (!loadOptions?.fetch?.headers?.Authorization) {
12086
+ loadOptions.fetch = {
12087
+ ...loadOptions.fetch,
12088
+ headers: {
12089
+ ...loadOptions.fetch?.headers,
12090
+ Authorization: `Bearer ${accessToken}`
12166
12091
  }
12167
- obj.data = {};
12168
- readPackedTypedArray(TypedArray, pbf, obj.data);
12169
- }
12092
+ };
12170
12093
  }
12094
+ }
12095
+
12096
+ // src/layers/h3-tile-layer.ts
12097
+ var renderSubLayers = (props) => {
12098
+ const {
12099
+ data
12100
+ } = props;
12101
+ const {
12102
+ index
12103
+ } = props.tile;
12104
+ if (!data || !data.length)
12105
+ return null;
12106
+ return new import_geo_layers3.H3HexagonLayer(props, {
12107
+ getHexagon: (d) => d.id,
12108
+ centerHexagon: index,
12109
+ highPrecision: true
12110
+ });
12171
12111
  };
12172
- var TileReader2 = class {
12173
- static read(pbf, end) {
12174
- return pbf.readFields(TileReader2._readField, {
12175
- blockWidth: 0,
12176
- blockHeight: 0,
12177
- bands: []
12178
- }, end);
12112
+ var defaultProps2 = {
12113
+ aggregationResLevel: 4,
12114
+ data: TilejsonPropType
12115
+ };
12116
+ var H3TileLayer = class extends import_core3.CompositeLayer {
12117
+ initializeState() {
12118
+ import_geo_layers3.H3HexagonLayer._checkH3Lib();
12119
+ }
12120
+ getLoadOptions() {
12121
+ const loadOptions = super.getLoadOptions() || {};
12122
+ const tileJSON = this.props.data;
12123
+ injectAccessToken(loadOptions, tileJSON.accessToken);
12124
+ loadOptions.cartoSpatialTile = {
12125
+ ...loadOptions.cartoSpatialTile,
12126
+ scheme: "h3"
12127
+ };
12128
+ return loadOptions;
12179
12129
  }
12180
- static _readField(tag, obj, pbf) {
12181
- if (tag === 1)
12182
- obj.blockWidth = pbf.readVarint();
12183
- else if (tag === 2)
12184
- obj.blockHeight = pbf.readVarint();
12185
- else if (tag === 3)
12186
- obj.bands.push(BandReader.read(pbf, pbf.readVarint() + pbf.pos));
12130
+ renderLayers() {
12131
+ const tileJSON = this.props.data;
12132
+ if (!tileJSON)
12133
+ return null;
12134
+ const {
12135
+ tiles: data
12136
+ } = tileJSON;
12137
+ let {
12138
+ minresolution,
12139
+ maxresolution
12140
+ } = tileJSON;
12141
+ if (this.props.minZoom) {
12142
+ minresolution = Math.max(minresolution, getHexagonResolution({
12143
+ zoom: this.props.minZoom,
12144
+ latitude: 0
12145
+ }));
12146
+ }
12147
+ if (this.props.maxZoom) {
12148
+ maxresolution = Math.min(maxresolution, getHexagonResolution({
12149
+ zoom: this.props.maxZoom,
12150
+ latitude: 0
12151
+ }));
12152
+ }
12153
+ return [new SpatialIndexTileLayer(this.props, {
12154
+ id: `h3-tile-layer-${this.props.id}`,
12155
+ data,
12156
+ TilesetClass: H3Tileset2D,
12157
+ renderSubLayers,
12158
+ minZoom: minresolution,
12159
+ maxZoom: maxresolution,
12160
+ loadOptions: this.getLoadOptions()
12161
+ })];
12187
12162
  }
12188
12163
  };
12164
+ __publicField(H3TileLayer, "layerName", "H3TileLayer");
12165
+ __publicField(H3TileLayer, "defaultProps", defaultProps2);
12189
12166
 
12190
- // src/layers/schema/carto-raster-tile-loader.ts
12191
- var CartoRasterTileLoader = {
12192
- name: "CARTO Raster Tile",
12193
- version: "1",
12194
- id: "cartoRasterTile",
12195
- module: "carto",
12196
- extensions: ["pbf"],
12197
- mimeTypes: ["application/vnd.carto-raster-tile"],
12198
- category: "geometry",
12199
- worker: false,
12200
- parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
12201
- parseSync: parseCartoRasterTile,
12202
- options: {}
12203
- };
12204
- function parseCartoRasterTile(arrayBuffer, options) {
12205
- if (!arrayBuffer)
12206
- return null;
12207
- const tile = parsePbf(arrayBuffer, TileReader2);
12167
+ // src/layers/quadbin-tile-layer.ts
12168
+ var import_core4 = __toESM(require_core());
12169
+
12170
+ // src/layers/quadbin-layer.ts
12171
+ var import_geo_layers4 = __toESM(require_geo_layers());
12172
+
12173
+ // ../../node_modules/@math.gl/web-mercator/dist/esm/web-mercator-utils.js
12174
+ var PI = Math.PI;
12175
+ var PI_4 = PI / 4;
12176
+ var DEGREES_TO_RADIANS = PI / 180;
12177
+ var RADIANS_TO_DEGREES = 180 / PI;
12178
+ var TILE_SIZE = 512;
12179
+ function worldToLngLat(xy) {
12180
+ const [x, y] = xy;
12181
+ const lambda2 = x / TILE_SIZE * (2 * PI) - PI;
12182
+ const phi2 = 2 * (Math.atan(Math.exp(y / TILE_SIZE * (2 * PI) - PI)) - PI_4);
12183
+ return [lambda2 * RADIANS_TO_DEGREES, phi2 * RADIANS_TO_DEGREES];
12184
+ }
12185
+
12186
+ // ../../node_modules/@math.gl/web-mercator/dist/esm/get-bounds.js
12187
+ var DEGREES_TO_RADIANS2 = Math.PI / 180;
12188
+
12189
+ // src/layers/quadbin-utils.ts
12190
+ var TILE_SIZE2 = 512;
12191
+ function quadbinToOffset(quadbin) {
12208
12192
  const {
12209
- bands,
12210
- blockHeight,
12211
- blockWidth
12212
- } = tile;
12213
- const numericProps = {};
12214
- for (let i = 0; i < bands.length; i++) {
12215
- const {
12216
- name,
12217
- data
12218
- } = bands[i];
12219
- numericProps[name] = data;
12220
- }
12221
- return {
12222
- blockWidth,
12223
- blockHeight,
12224
- cells: {
12225
- numericProps,
12226
- properties: []
12227
- }
12228
- };
12193
+ x,
12194
+ y,
12195
+ z
12196
+ } = cellToTile(quadbin);
12197
+ const scale = TILE_SIZE2 / (1 << z);
12198
+ return [x * scale, TILE_SIZE2 - y * scale, scale];
12199
+ }
12200
+ function quadbinToWorldBounds(quadbin, coverage) {
12201
+ const [xOffset, yOffset, scale] = quadbinToOffset(quadbin);
12202
+ return [[xOffset, yOffset], [xOffset + coverage * scale, yOffset - coverage * scale]];
12203
+ }
12204
+ function getQuadbinPolygon(quadbin, coverage = 1) {
12205
+ const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin, coverage);
12206
+ const [w, n] = worldToLngLat(topLeft);
12207
+ const [e, s] = worldToLngLat(bottomRight);
12208
+ return [e, n, e, s, w, s, w, n, e, n];
12229
12209
  }
12230
- var carto_raster_tile_loader_default = CartoRasterTileLoader;
12231
12210
 
12232
- // src/layers/schema/carto-spatial-tile.ts
12233
- var IndicesReader = class {
12234
- static read(pbf, end) {
12235
- return pbf.readFields(IndicesReader._readField, {
12236
- value: []
12237
- }, end);
12211
+ // src/layers/quadbin-layer.ts
12212
+ var defaultProps3 = {
12213
+ getQuadbin: {
12214
+ type: "accessor",
12215
+ value: (d) => d.quadbin
12238
12216
  }
12239
- static _readField(tag, obj, pbf) {
12240
- if (tag === 1)
12241
- readPackedTypedArray(BigUint64Array, pbf, obj);
12217
+ };
12218
+ var QuadbinLayer = class extends import_geo_layers4._GeoCellLayer {
12219
+ indexToBounds() {
12220
+ const {
12221
+ data,
12222
+ extruded,
12223
+ getQuadbin
12224
+ } = this.props;
12225
+ const coverage = extruded ? 0.99 : 1;
12226
+ return {
12227
+ data,
12228
+ _normalize: false,
12229
+ positionFormat: "XY",
12230
+ getPolygon: (x, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),
12231
+ updateTriggers: {
12232
+ getPolygon: coverage
12233
+ }
12234
+ };
12242
12235
  }
12243
12236
  };
12244
- var CellsReader = class {
12245
- static read(pbf, end) {
12246
- return pbf.readFields(CellsReader._readField, {
12247
- indices: null,
12248
- properties: [],
12249
- numericProps: {}
12250
- }, end);
12237
+ __publicField(QuadbinLayer, "layerName", "QuadbinLayer");
12238
+ __publicField(QuadbinLayer, "defaultProps", defaultProps3);
12239
+
12240
+ // src/layers/quadbin-tileset-2d.ts
12241
+ var import_geo_layers5 = __toESM(require_geo_layers());
12242
+ var QuadbinTileset2D = class extends import_geo_layers5._Tileset2D {
12243
+ getTileIndices(opts) {
12244
+ return super.getTileIndices(opts).map(tileToCell).map((q) => ({
12245
+ q,
12246
+ i: bigIntToHex(q)
12247
+ }));
12251
12248
  }
12252
- static _readField(tag, obj, pbf) {
12253
- if (tag === 1)
12254
- obj.indices = IndicesReader.read(pbf, pbf.readVarint() + pbf.pos);
12255
- else if (tag === 2)
12256
- obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
12257
- else if (tag === 3) {
12258
- const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
12259
- obj.numericProps[entry.key] = entry.value;
12260
- }
12249
+ getTileId({
12250
+ q,
12251
+ i
12252
+ }) {
12253
+ return i || bigIntToHex(q);
12261
12254
  }
12262
- };
12263
- var TileReader3 = class {
12264
- static read(pbf, end) {
12265
- return pbf.readFields(TileReader3._readField, {
12266
- scheme: 0,
12267
- cells: null
12268
- }, end);
12255
+ getTileMetadata({
12256
+ q
12257
+ }) {
12258
+ return super.getTileMetadata(cellToTile(q));
12269
12259
  }
12270
- static _readField(tag, obj, pbf) {
12271
- if (tag === 1)
12272
- obj.scheme = pbf.readVarint();
12273
- else if (tag === 2)
12274
- obj.cells = CellsReader.read(pbf, pbf.readVarint() + pbf.pos);
12260
+ getTileZoom({
12261
+ q
12262
+ }) {
12263
+ return Number(getResolution2(q));
12264
+ }
12265
+ getParentIndex({
12266
+ q
12267
+ }) {
12268
+ return {
12269
+ q: cellToParent2(q)
12270
+ };
12275
12271
  }
12276
12272
  };
12277
12273
 
12278
- // ../../node_modules/quadbin/dist/esm/index.js
12279
- var import_tile_cover = __toESM(require_tile_cover());
12280
- var B = [
12281
- 0x5555555555555555n,
12282
- 0x3333333333333333n,
12283
- 0x0f0f0f0f0f0f0f0fn,
12284
- 0x00ff00ff00ff00ffn,
12285
- 0x0000ffff0000ffffn,
12286
- 0x00000000ffffffffn
12287
- ];
12288
- var S = [0n, 1n, 2n, 4n, 8n, 16n];
12289
- function hexToBigInt(hex2) {
12290
- return BigInt(`0x${hex2}`);
12291
- }
12292
- function bigIntToHex(index) {
12293
- return index.toString(16);
12294
- }
12295
- function tileToCell(tile) {
12296
- if (tile.z < 0 || tile.z > 26) {
12297
- throw new Error("Wrong zoom");
12274
+ // src/layers/quadbin-tile-layer.ts
12275
+ var renderSubLayers2 = (props) => {
12276
+ const {
12277
+ data
12278
+ } = props;
12279
+ if (!data || !data.length)
12280
+ return null;
12281
+ const isBigInt = typeof data[0].id === "bigint";
12282
+ return new QuadbinLayer(props, {
12283
+ getQuadbin: isBigInt ? (d) => d.id : (d) => hexToBigInt(d.id)
12284
+ });
12285
+ };
12286
+ var defaultProps4 = {
12287
+ aggregationResLevel: 6,
12288
+ data: TilejsonPropType
12289
+ };
12290
+ var QuadbinTileLayer = class extends import_core4.CompositeLayer {
12291
+ getLoadOptions() {
12292
+ const loadOptions = super.getLoadOptions() || {};
12293
+ const tileJSON = this.props.data;
12294
+ injectAccessToken(loadOptions, tileJSON.accessToken);
12295
+ loadOptions.cartoSpatialTile = {
12296
+ ...loadOptions.cartoSpatialTile,
12297
+ scheme: "quadbin"
12298
+ };
12299
+ return loadOptions;
12298
12300
  }
12299
- const z = BigInt(tile.z);
12300
- let x = BigInt(tile.x) << 32n - z;
12301
- let y = BigInt(tile.y) << 32n - z;
12302
- for (let i = 0; i < 5; i++) {
12303
- const s = S[5 - i];
12304
- const b = B[4 - i];
12305
- x = (x | x << s) & b;
12306
- y = (y | y << s) & b;
12307
- }
12308
- const quadbin = 0x4000000000000000n | 1n << 59n | z << 52n | (x | y << 1n) >> 12n | 0xfffffffffffffn >> z * 2n;
12309
- return quadbin;
12310
- }
12311
- function cellToTile(quadbin) {
12312
- const mode = quadbin >> 59n & 7n;
12313
- const modeDep = quadbin >> 57n & 3n;
12314
- const z = quadbin >> 52n & 0x1fn;
12315
- const q = (quadbin & 0xfffffffffffffn) << 12n;
12316
- if (mode !== 1n && modeDep !== 0n) {
12317
- throw new Error("Wrong mode");
12318
- }
12319
- let x = q;
12320
- let y = q >> 1n;
12321
- for (let i = 0; i < 6; i++) {
12322
- const s = S[i];
12323
- const b = B[i];
12324
- x = (x | x >> s) & b;
12325
- y = (y | y >> s) & b;
12326
- }
12327
- x = x >> 32n - z;
12328
- y = y >> 32n - z;
12329
- return { z: Number(z), x: Number(x), y: Number(y) };
12330
- }
12331
- function getResolution2(quadbin) {
12332
- return quadbin >> 52n & 0x1fn;
12333
- }
12334
- function cellToParent2(quadbin) {
12335
- const zparent = getResolution2(quadbin) - 1n;
12336
- const parent = quadbin & ~(0x1fn << 52n) | zparent << 52n | 0xfffffffffffffn >> zparent * 2n;
12337
- return parent;
12338
- }
12339
-
12340
- // src/layers/schema/spatialjson-utils.ts
12341
- function binaryToSpatialjson(binary) {
12342
- const {
12343
- cells,
12344
- scheme
12345
- } = binary;
12346
- const count = cells.indices.value.length;
12347
- const spatial = [];
12348
- for (let i = 0; i < count; i++) {
12349
- const id = scheme === "h3" ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];
12350
- const properties = {
12351
- ...cells.properties[i]
12352
- };
12353
- for (const key of Object.keys(cells.numericProps)) {
12354
- properties[key] = cells.numericProps[key].value[i];
12355
- }
12356
- spatial.push({
12357
- id,
12358
- properties
12359
- });
12360
- }
12361
- return spatial;
12362
- }
12363
-
12364
- // src/layers/schema/carto-spatial-tile-loader.ts
12365
- var CartoSpatialTileLoader = {
12366
- name: "CARTO Spatial Tile",
12367
- version: "1",
12368
- id: "cartoSpatialTile",
12369
- module: "carto",
12370
- extensions: ["pbf"],
12371
- mimeTypes: ["application/vnd.carto-spatial-tile"],
12372
- category: "geometry",
12373
- worker: false,
12374
- parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
12375
- parseSync: parseCartoSpatialTile,
12376
- options: {
12377
- cartoSpatialTile: {
12378
- scheme: "quadbin"
12379
- }
12380
- }
12381
- };
12382
- function parseCartoSpatialTile(arrayBuffer, options) {
12383
- if (!arrayBuffer)
12384
- return null;
12385
- const tile = parsePbf(arrayBuffer, TileReader3);
12386
- const {
12387
- cells
12388
- } = tile;
12389
- const scheme = options?.cartoSpatialTile?.scheme;
12390
- const data = {
12391
- cells,
12392
- scheme
12393
- };
12394
- return binaryToSpatialjson(data);
12395
- }
12396
- var carto_spatial_tile_loader_default = CartoSpatialTileLoader;
12397
-
12398
- // src/layers/spatial-index-tile-layer.ts
12399
- var import_geo_layers3 = __toESM(require_geo_layers());
12400
- (0, import_core2.registerLoaders)([carto_raster_tile_loader_default, carto_spatial_tile_loader_default]);
12401
- function isFeatureIdDefined(value) {
12402
- return value !== void 0 && value !== null && value !== "";
12403
- }
12404
- var defaultProps2 = {
12405
- aggregationResLevel: 4
12406
- };
12407
- var SpatialIndexTileLayer = class extends import_geo_layers3.TileLayer {
12408
- updateState(params) {
12409
- const {
12410
- props,
12411
- oldProps
12412
- } = params;
12413
- if (props.aggregationResLevel !== oldProps.aggregationResLevel) {
12414
- this.setState({
12415
- tileset: null
12416
- });
12417
- }
12418
- super.updateState(params);
12419
- }
12420
- _updateAutoHighlight(info) {
12421
- const {
12422
- hoveredFeatureId
12423
- } = this.state;
12424
- const hoveredFeature = info.object;
12425
- let newHoveredFeatureId;
12426
- if (hoveredFeature) {
12427
- newHoveredFeatureId = hoveredFeature.id;
12428
- }
12429
- if (hoveredFeatureId !== newHoveredFeatureId) {
12430
- let {
12431
- highlightColor
12432
- } = this.props;
12433
- if (typeof highlightColor === "function") {
12434
- highlightColor = highlightColor(info);
12435
- }
12436
- this.setState({
12437
- highlightColor,
12438
- hoveredFeatureId: newHoveredFeatureId
12439
- });
12440
- }
12441
- }
12442
- getSubLayerPropsByTile(tile) {
12443
- return {
12444
- highlightedObjectIndex: this.getHighlightedObjectIndex(tile),
12445
- highlightColor: this.state.highlightColor
12446
- };
12447
- }
12448
- getHighlightedObjectIndex(tile) {
12449
- const {
12450
- hoveredFeatureId
12451
- } = this.state;
12452
- const data = tile.content;
12453
- const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);
12454
- if (!isFeatureIdPresent || !Array.isArray(data) || !this._featureInTile(tile, hoveredFeatureId)) {
12455
- return -1;
12456
- }
12457
- return data.findIndex((feature) => feature.id === hoveredFeatureId);
12458
- }
12459
- _featureInTile(tile, featureId) {
12460
- const {
12461
- getTileZoom,
12462
- getParentIndex
12463
- } = this.state.tileset;
12464
- const tileZoom = getTileZoom(tile.index);
12465
- const KEY = tile.index.q ? "q" : "i";
12466
- let featureIndex = {
12467
- [KEY]: featureId
12468
- };
12469
- let featureZoom = getTileZoom(featureIndex);
12470
- while (!(featureZoom <= tileZoom)) {
12471
- featureIndex = getParentIndex(featureIndex);
12472
- featureZoom = getTileZoom(featureIndex);
12473
- }
12474
- return featureIndex[KEY] === tile.index[KEY];
12475
- }
12476
- };
12477
- __publicField(SpatialIndexTileLayer, "layerName", "SpatialIndexTileLayer");
12478
- __publicField(SpatialIndexTileLayer, "defaultProps", defaultProps2);
12479
-
12480
- // src/layers/h3-tile-layer.ts
12481
- var renderSubLayers = (props) => {
12482
- const {
12483
- data
12484
- } = props;
12485
- const {
12486
- index
12487
- } = props.tile;
12488
- if (!data || !data.length)
12489
- return null;
12490
- return new import_geo_layers4.H3HexagonLayer(props, {
12491
- getHexagon: (d) => d.id,
12492
- centerHexagon: index,
12493
- highPrecision: true
12494
- });
12495
- };
12496
- var defaultProps3 = {
12497
- aggregationResLevel: 4
12498
- };
12499
- var H3TileLayer = class extends import_core3.CompositeLayer {
12500
- initializeState() {
12501
- import_geo_layers4.H3HexagonLayer._checkH3Lib();
12502
- this.setState({
12503
- data: null,
12504
- tileJSON: null
12505
- });
12506
- }
12507
- updateState({
12508
- changeFlags
12509
- }) {
12510
- if (changeFlags.dataChanged) {
12511
- let {
12512
- data
12513
- } = this.props;
12514
- const tileJSON = data;
12515
- data = tileJSON.tiles;
12516
- this.setState({
12517
- data,
12518
- tileJSON
12519
- });
12520
- }
12521
- }
12522
- renderLayers() {
12523
- const {
12524
- data,
12525
- tileJSON
12526
- } = this.state;
12527
- let minresolution = parseInt(tileJSON.minresolution);
12528
- let maxresolution = parseInt(tileJSON.maxresolution);
12529
- if (this.props.minZoom) {
12530
- minresolution = Math.max(minresolution, getHexagonResolution({
12531
- zoom: this.props.minZoom,
12532
- latitude: 0
12533
- }));
12534
- }
12535
- if (this.props.maxZoom) {
12536
- maxresolution = Math.min(maxresolution, getHexagonResolution({
12537
- zoom: this.props.maxZoom,
12538
- latitude: 0
12539
- }));
12540
- }
12541
- return [new SpatialIndexTileLayer(this.props, {
12542
- id: `h3-tile-layer-${this.props.id}`,
12543
- data,
12544
- TilesetClass: H3Tileset2D,
12545
- renderSubLayers,
12546
- minZoom: minresolution,
12547
- maxZoom: maxresolution,
12548
- loadOptions: {
12549
- ...this.getLoadOptions(),
12550
- cartoSpatialTile: {
12551
- scheme: "h3"
12552
- },
12553
- mimeType: "application/vnd.carto-spatial-tile"
12554
- }
12555
- })];
12556
- }
12557
- };
12558
- __publicField(H3TileLayer, "layerName", "H3TileLayer");
12559
- __publicField(H3TileLayer, "defaultProps", defaultProps3);
12560
-
12561
- // src/layers/quadbin-tile-layer.ts
12562
- var import_core4 = __toESM(require_core());
12563
-
12564
- // src/layers/quadbin-layer.ts
12565
- var import_geo_layers5 = __toESM(require_geo_layers());
12566
-
12567
- // ../../node_modules/@math.gl/web-mercator/dist/esm/web-mercator-utils.js
12568
- var PI = Math.PI;
12569
- var PI_4 = PI / 4;
12570
- var DEGREES_TO_RADIANS = PI / 180;
12571
- var RADIANS_TO_DEGREES = 180 / PI;
12572
- var TILE_SIZE = 512;
12573
- function worldToLngLat(xy) {
12574
- const [x, y] = xy;
12575
- const lambda2 = x / TILE_SIZE * (2 * PI) - PI;
12576
- const phi2 = 2 * (Math.atan(Math.exp(y / TILE_SIZE * (2 * PI) - PI)) - PI_4);
12577
- return [lambda2 * RADIANS_TO_DEGREES, phi2 * RADIANS_TO_DEGREES];
12578
- }
12579
-
12580
- // ../../node_modules/@math.gl/web-mercator/dist/esm/get-bounds.js
12581
- var DEGREES_TO_RADIANS2 = Math.PI / 180;
12582
-
12583
- // src/layers/quadbin-utils.ts
12584
- var TILE_SIZE2 = 512;
12585
- function quadbinToOffset(quadbin) {
12586
- const {
12587
- x,
12588
- y,
12589
- z
12590
- } = cellToTile(quadbin);
12591
- const scale = TILE_SIZE2 / (1 << z);
12592
- return [x * scale, TILE_SIZE2 - y * scale, scale];
12593
- }
12594
- function quadbinToWorldBounds(quadbin, coverage) {
12595
- const [xOffset, yOffset, scale] = quadbinToOffset(quadbin);
12596
- return [[xOffset, yOffset], [xOffset + coverage * scale, yOffset - coverage * scale]];
12597
- }
12598
- function getQuadbinPolygon(quadbin, coverage = 1) {
12599
- const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin, coverage);
12600
- const [w, n] = worldToLngLat(topLeft);
12601
- const [e, s] = worldToLngLat(bottomRight);
12602
- return [e, n, e, s, w, s, w, n, e, n];
12603
- }
12604
-
12605
- // src/layers/quadbin-layer.ts
12606
- var defaultProps4 = {
12607
- getQuadbin: {
12608
- type: "accessor",
12609
- value: (d) => d.quadbin
12610
- }
12611
- };
12612
- var QuadbinLayer = class extends import_geo_layers5._GeoCellLayer {
12613
- indexToBounds() {
12614
- const {
12615
- data,
12616
- extruded,
12617
- getQuadbin
12618
- } = this.props;
12619
- const coverage = extruded ? 0.99 : 1;
12620
- return {
12621
- data,
12622
- _normalize: false,
12623
- positionFormat: "XY",
12624
- getPolygon: (x, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),
12625
- updateTriggers: {
12626
- getPolygon: coverage
12627
- }
12628
- };
12629
- }
12630
- };
12631
- __publicField(QuadbinLayer, "layerName", "QuadbinLayer");
12632
- __publicField(QuadbinLayer, "defaultProps", defaultProps4);
12633
-
12634
- // src/layers/quadbin-tileset-2d.ts
12635
- var import_geo_layers6 = __toESM(require_geo_layers());
12636
- var QuadbinTileset2D = class extends import_geo_layers6._Tileset2D {
12637
- getTileIndices(opts) {
12638
- return super.getTileIndices(opts).map(tileToCell).map((q) => ({
12639
- q,
12640
- i: bigIntToHex(q)
12641
- }));
12642
- }
12643
- getTileId({
12644
- q,
12645
- i
12646
- }) {
12647
- return i || bigIntToHex(q);
12648
- }
12649
- getTileMetadata({
12650
- q
12651
- }) {
12652
- return super.getTileMetadata(cellToTile(q));
12653
- }
12654
- getTileZoom({
12655
- q
12656
- }) {
12657
- return Number(getResolution2(q));
12658
- }
12659
- getParentIndex({
12660
- q
12661
- }) {
12662
- return {
12663
- q: cellToParent2(q)
12664
- };
12665
- }
12666
- };
12667
-
12668
- // src/layers/quadbin-tile-layer.ts
12669
- var renderSubLayers2 = (props) => {
12670
- const {
12671
- data
12672
- } = props;
12673
- if (!data || !data.length)
12674
- return null;
12675
- const isBigInt = typeof data[0].id === "bigint";
12676
- return new QuadbinLayer(props, {
12677
- getQuadbin: isBigInt ? (d) => d.id : (d) => hexToBigInt(d.id)
12678
- });
12679
- };
12680
- var defaultProps5 = {
12681
- aggregationResLevel: 6
12682
- };
12683
- var QuadbinTileLayer = class extends import_core4.CompositeLayer {
12684
- initializeState() {
12685
- this.setState({
12686
- data: null,
12687
- tileJSON: null
12688
- });
12689
- }
12690
- updateState({
12691
- changeFlags
12692
- }) {
12693
- if (changeFlags.dataChanged) {
12694
- let {
12695
- data
12696
- } = this.props;
12697
- const tileJSON = data;
12698
- data = tileJSON.tiles;
12699
- this.setState({
12700
- data,
12701
- tileJSON
12702
- });
12703
- }
12704
- }
12705
- renderLayers() {
12706
- const {
12707
- data,
12708
- tileJSON
12709
- } = this.state;
12710
- const maxZoom = parseInt(tileJSON?.maxresolution);
12711
- return [new SpatialIndexTileLayer(this.props, {
12712
- id: `quadbin-tile-layer-${this.props.id}`,
12713
- data,
12714
- TilesetClass: QuadbinTileset2D,
12715
- renderSubLayers: renderSubLayers2,
12716
- maxZoom,
12717
- loadOptions: {
12718
- ...this.getLoadOptions(),
12719
- cartoSpatialTile: {
12720
- scheme: "quadbin"
12721
- },
12722
- mimeType: "application/vnd.carto-spatial-tile"
12723
- }
12724
- })];
12301
+ renderLayers() {
12302
+ const tileJSON = this.props.data;
12303
+ if (!tileJSON)
12304
+ return null;
12305
+ const {
12306
+ tiles: data,
12307
+ maxresolution: maxZoom
12308
+ } = tileJSON;
12309
+ return [new SpatialIndexTileLayer(this.props, {
12310
+ id: `quadbin-tile-layer-${this.props.id}`,
12311
+ data,
12312
+ TilesetClass: QuadbinTileset2D,
12313
+ renderSubLayers: renderSubLayers2,
12314
+ maxZoom,
12315
+ loadOptions: this.getLoadOptions()
12316
+ })];
12725
12317
  }
12726
12318
  };
12727
12319
  __publicField(QuadbinTileLayer, "layerName", "QuadbinTileLayer");
12728
- __publicField(QuadbinTileLayer, "defaultProps", defaultProps5);
12320
+ __publicField(QuadbinTileLayer, "defaultProps", defaultProps4);
12729
12321
 
12730
12322
  // src/layers/raster-tile-layer.ts
12731
- var import_core7 = __toESM(require_core());
12323
+ var import_core6 = __toESM(require_core());
12732
12324
 
12733
12325
  // src/layers/raster-layer.ts
12734
- var import_core6 = __toESM(require_core());
12735
- var import_layers2 = __toESM(require_layers());
12326
+ var import_core5 = __toESM(require_core());
12327
+ var import_layers = __toESM(require_layers());
12736
12328
 
12737
12329
  // src/layers/raster-layer-vertex.glsl.ts
12738
12330
  var raster_layer_vertex_glsl_default = `#version 300 es
@@ -12802,209 +12394,567 @@ void main(void) {
12802
12394
  strokeOffsetRatio -= halfOffset;
12803
12395
  }
12804
12396
  }
12805
-
12806
- geometry.pickingColor = instancePickingColors;
12807
-
12808
- // project center of column
12809
- vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
12810
- vec3 pos = vec3(offset, project_size(elevation));
12811
- DECKGL_FILTER_SIZE(pos, geometry);
12812
-
12813
- geometry.position.xyz += pos;
12814
- gl_Position = project_common_position_to_clipspace(geometry.position);
12815
-
12816
- geometry.normal = project_normal(normals);
12817
- DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
12818
-
12819
- // Light calculations
12820
- if (extruded && !isStroke) {
12821
- #ifdef FLAT_SHADING
12822
- position_commonspace = geometry.position;
12823
- vColor = vec4(color.rgb, color.a * opacity);
12824
- #else
12825
- vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);
12826
- vColor = vec4(lightColor, color.a * opacity);
12827
- #endif
12828
- } else {
12829
- vColor = vec4(color.rgb, color.a * opacity);
12397
+
12398
+ geometry.pickingColor = instancePickingColors;
12399
+
12400
+ // project center of column
12401
+ vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
12402
+ vec3 pos = vec3(offset, project_size(elevation));
12403
+ DECKGL_FILTER_SIZE(pos, geometry);
12404
+
12405
+ geometry.position.xyz += pos;
12406
+ gl_Position = project_common_position_to_clipspace(geometry.position);
12407
+
12408
+ geometry.normal = project_normal(normals);
12409
+ DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
12410
+
12411
+ // Light calculations
12412
+ if (extruded && !isStroke) {
12413
+ #ifdef FLAT_SHADING
12414
+ position_commonspace = geometry.position;
12415
+ vColor = vec4(color.rgb, color.a * opacity);
12416
+ #else
12417
+ vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);
12418
+ vColor = vec4(lightColor, color.a * opacity);
12419
+ #endif
12420
+ } else {
12421
+ vColor = vec4(color.rgb, color.a * opacity);
12422
+ }
12423
+
12424
+ DECKGL_FILTER_COLOR(vColor, geometry);
12425
+ }
12426
+ `;
12427
+
12428
+ // src/layers/raster-layer.ts
12429
+ var defaultProps5 = {
12430
+ ...import_layers.ColumnLayer.defaultProps,
12431
+ extruded: false,
12432
+ diskResolution: 4,
12433
+ vertices: [[-0.5, -0.5], [0.5, -0.5], [0.5, 0.5], [-0.5, 0.5]]
12434
+ };
12435
+ var RasterColumnLayer = class extends import_layers.ColumnLayer {
12436
+ getShaders() {
12437
+ const shaders = super.getShaders();
12438
+ return {
12439
+ ...shaders,
12440
+ vs: raster_layer_vertex_glsl_default
12441
+ };
12442
+ }
12443
+ initializeState() {
12444
+ const attributeManager = this.getAttributeManager();
12445
+ attributeManager.addInstanced({
12446
+ instanceElevations: {
12447
+ size: 1,
12448
+ transition: true,
12449
+ accessor: "getElevation"
12450
+ },
12451
+ instanceFillColors: {
12452
+ size: this.props.colorFormat.length,
12453
+ type: 5121,
12454
+ normalized: true,
12455
+ transition: true,
12456
+ accessor: "getFillColor",
12457
+ defaultValue: [0, 0, 0, 255]
12458
+ },
12459
+ instanceLineColors: {
12460
+ size: this.props.colorFormat.length,
12461
+ type: 5121,
12462
+ normalized: true,
12463
+ transition: true,
12464
+ accessor: "getLineColor",
12465
+ defaultValue: [255, 255, 255, 255]
12466
+ }
12467
+ });
12468
+ }
12469
+ };
12470
+ __publicField(RasterColumnLayer, "layerName", "RasterColumnLayer");
12471
+ var RasterLayer = class extends import_core5.CompositeLayer {
12472
+ renderLayers() {
12473
+ const {
12474
+ data,
12475
+ getElevation,
12476
+ getFillColor,
12477
+ getLineColor,
12478
+ getLineWidth,
12479
+ tileIndex,
12480
+ updateTriggers
12481
+ } = this.props;
12482
+ if (!data || !tileIndex)
12483
+ return null;
12484
+ const {
12485
+ blockWidth,
12486
+ blockHeight
12487
+ } = data;
12488
+ assert(blockWidth === blockHeight, `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`);
12489
+ const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
12490
+ const offset = [xOffset, yOffset, scale / blockWidth];
12491
+ const CellLayer = this.getSubLayerClass("column", RasterColumnLayer);
12492
+ return new CellLayer(this.props, this.getSubLayerProps({
12493
+ id: "cell",
12494
+ updateTriggers,
12495
+ getElevation: this.getSubLayerAccessor(getElevation),
12496
+ getFillColor: this.getSubLayerAccessor(getFillColor),
12497
+ getLineColor: this.getSubLayerAccessor(getLineColor),
12498
+ getLineWidth: this.getSubLayerAccessor(getLineWidth)
12499
+ }), {
12500
+ data: {
12501
+ data,
12502
+ length: blockWidth * blockHeight
12503
+ },
12504
+ offset
12505
+ });
12506
+ }
12507
+ getSubLayerAccessor(accessor) {
12508
+ if (typeof accessor !== "function") {
12509
+ return super.getSubLayerAccessor(accessor);
12510
+ }
12511
+ return (object, info) => {
12512
+ const {
12513
+ data,
12514
+ index
12515
+ } = info;
12516
+ const binaryData = data.data;
12517
+ const proxy = createBinaryProxy(binaryData.cells, index);
12518
+ return accessor({
12519
+ properties: proxy
12520
+ }, info);
12521
+ };
12522
+ }
12523
+ };
12524
+ __publicField(RasterLayer, "layerName", "RasterLayer");
12525
+ __publicField(RasterLayer, "defaultProps", defaultProps5);
12526
+
12527
+ // src/layers/raster-tile-layer.ts
12528
+ var renderSubLayers3 = (props) => {
12529
+ const tileIndex = props.tile?.index?.q;
12530
+ if (!tileIndex)
12531
+ return null;
12532
+ return new RasterLayer(props, {
12533
+ tileIndex
12534
+ });
12535
+ };
12536
+ var defaultProps6 = {
12537
+ data: TilejsonPropType
12538
+ };
12539
+ var RasterTileLayer = class extends import_core6.CompositeLayer {
12540
+ getLoadOptions() {
12541
+ const loadOptions = super.getLoadOptions() || {};
12542
+ const tileJSON = this.props.data;
12543
+ injectAccessToken(loadOptions, tileJSON.accessToken);
12544
+ return loadOptions;
12545
+ }
12546
+ renderLayers() {
12547
+ const tileJSON = this.props.data;
12548
+ if (!tileJSON)
12549
+ return null;
12550
+ const {
12551
+ tiles: data,
12552
+ minzoom: minZoom,
12553
+ maxzoom: maxZoom
12554
+ } = tileJSON;
12555
+ return [new SpatialIndexTileLayer(this.props, {
12556
+ id: `raster-tile-layer-${this.props.id}`,
12557
+ data,
12558
+ TilesetClass: QuadbinTileset2D,
12559
+ renderSubLayers: renderSubLayers3,
12560
+ minZoom,
12561
+ maxZoom,
12562
+ loadOptions: this.getLoadOptions()
12563
+ })];
12564
+ }
12565
+ };
12566
+ __publicField(RasterTileLayer, "layerName", "RasterTileLayer");
12567
+ __publicField(RasterTileLayer, "defaultProps", defaultProps6);
12568
+
12569
+ // src/layers/vector-tile-layer.ts
12570
+ var import_core7 = __toESM(require_core2());
12571
+
12572
+ // src/layers/schema/carto-vector-tile-loader.ts
12573
+ var import_earcut = __toESM(require_earcut());
12574
+ var VERSION3 = true ? "8.10.0-alpha.5" : "latest";
12575
+ var id3 = "cartoVectorTile";
12576
+ var DEFAULT_OPTIONS3 = {
12577
+ cartoVectorTile: {
12578
+ workerUrl: getWorkerUrl(id3, VERSION3)
12579
+ }
12580
+ };
12581
+ var CartoVectorTileLoader = {
12582
+ name: "CARTO Vector Tile",
12583
+ version: VERSION3,
12584
+ id: id3,
12585
+ module: "carto",
12586
+ extensions: ["pbf"],
12587
+ mimeTypes: ["application/vnd.carto-vector-tile"],
12588
+ category: "geometry",
12589
+ parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
12590
+ parseSync: parseCartoVectorTile,
12591
+ worker: true,
12592
+ options: DEFAULT_OPTIONS3
12593
+ };
12594
+ function triangulatePolygon(polygons, target, {
12595
+ startPosition,
12596
+ endPosition,
12597
+ indices
12598
+ }) {
12599
+ const coordLength = polygons.positions.size;
12600
+ const start = startPosition * coordLength;
12601
+ const end = endPosition * coordLength;
12602
+ const polygonPositions = polygons.positions.value.subarray(start, end);
12603
+ const holes = indices.slice(1).map((n) => n - startPosition);
12604
+ const triangles = (0, import_earcut.default)(polygonPositions, holes, coordLength);
12605
+ for (let t = 0, tl = triangles.length; t < tl; ++t) {
12606
+ target.push(startPosition + triangles[t]);
12607
+ }
12608
+ }
12609
+ function triangulate(polygons) {
12610
+ const {
12611
+ polygonIndices,
12612
+ positions,
12613
+ primitivePolygonIndices
12614
+ } = polygons;
12615
+ const triangles = [];
12616
+ let rangeStart = 0;
12617
+ for (let i = 0; i < polygonIndices.value.length - 1; i++) {
12618
+ const startPosition = polygonIndices.value[i];
12619
+ const endPosition = polygonIndices.value[i + 1];
12620
+ const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
12621
+ const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
12622
+ rangeStart = rangeEnd;
12623
+ triangulatePolygon(polygons, triangles, {
12624
+ startPosition,
12625
+ endPosition,
12626
+ indices
12627
+ });
12628
+ }
12629
+ polygons.triangles = {
12630
+ value: new Uint32Array(triangles),
12631
+ size: 1
12632
+ };
12633
+ }
12634
+ function parseCartoVectorTile(arrayBuffer, options) {
12635
+ if (!arrayBuffer)
12636
+ return null;
12637
+ const tile = parsePbf(arrayBuffer, TileReader2);
12638
+ if (tile.polygons && !tile.polygons.triangles) {
12639
+ triangulate(tile.polygons);
12640
+ }
12641
+ return tile;
12642
+ }
12643
+ var carto_vector_tile_loader_default = CartoVectorTileLoader;
12644
+
12645
+ // src/layers/vector-tile-layer.ts
12646
+ var import_extensions = __toESM(require_extensions());
12647
+ var import_geo_layers6 = __toESM(require_geo_layers());
12648
+ var import_layers2 = __toESM(require_layers());
12649
+
12650
+ // ../../node_modules/@loaders.gl/gis/dist/esm/lib/binary-to-geojson.js
12651
+ function binaryToGeojson(data, options) {
12652
+ const globalFeatureId = options === null || options === void 0 ? void 0 : options.globalFeatureId;
12653
+ if (globalFeatureId !== void 0) {
12654
+ return getSingleFeature(data, globalFeatureId);
12655
+ }
12656
+ return parseFeatures(data, options === null || options === void 0 ? void 0 : options.type);
12657
+ }
12658
+ function getSingleFeature(data, globalFeatureId) {
12659
+ const dataArray = normalizeInput(data);
12660
+ for (const data2 of dataArray) {
12661
+ let lastIndex = 0;
12662
+ let lastValue = data2.featureIds.value[0];
12663
+ for (let i = 0; i < data2.featureIds.value.length; i++) {
12664
+ const currValue = data2.featureIds.value[i];
12665
+ if (currValue === lastValue) {
12666
+ continue;
12667
+ }
12668
+ if (globalFeatureId === data2.globalFeatureIds.value[lastIndex]) {
12669
+ return parseFeature(data2, lastIndex, i);
12670
+ }
12671
+ lastIndex = i;
12672
+ lastValue = currValue;
12673
+ }
12674
+ if (globalFeatureId === data2.globalFeatureIds.value[lastIndex]) {
12675
+ return parseFeature(data2, lastIndex, data2.featureIds.value.length);
12676
+ }
12677
+ }
12678
+ throw new Error("featureId:".concat(globalFeatureId, " not found"));
12679
+ }
12680
+ function parseFeatures(data, type) {
12681
+ const dataArray = normalizeInput(data, type);
12682
+ return parseFeatureCollection(dataArray);
12683
+ }
12684
+ function binaryToGeometry(data, startIndex, endIndex) {
12685
+ switch (data.type) {
12686
+ case "Point":
12687
+ return pointToGeoJson(data, startIndex, endIndex);
12688
+ case "LineString":
12689
+ return lineStringToGeoJson(data, startIndex, endIndex);
12690
+ case "Polygon":
12691
+ return polygonToGeoJson(data, startIndex, endIndex);
12692
+ default:
12693
+ const unexpectedInput = data;
12694
+ throw new Error("Unsupported geometry type: ".concat(unexpectedInput === null || unexpectedInput === void 0 ? void 0 : unexpectedInput.type));
12695
+ }
12696
+ }
12697
+ function normalizeInput(data, type) {
12698
+ const isHeterogeneousType = Boolean(data.points || data.lines || data.polygons);
12699
+ if (!isHeterogeneousType) {
12700
+ data.type = type || parseType(data);
12701
+ return [data];
12702
+ }
12703
+ const features = [];
12704
+ if (data.points) {
12705
+ data.points.type = "Point";
12706
+ features.push(data.points);
12707
+ }
12708
+ if (data.lines) {
12709
+ data.lines.type = "LineString";
12710
+ features.push(data.lines);
12711
+ }
12712
+ if (data.polygons) {
12713
+ data.polygons.type = "Polygon";
12714
+ features.push(data.polygons);
12715
+ }
12716
+ return features;
12717
+ }
12718
+ function parseFeatureCollection(dataArray) {
12719
+ const features = [];
12720
+ for (const data of dataArray) {
12721
+ if (data.featureIds.value.length === 0) {
12722
+ continue;
12723
+ }
12724
+ let lastIndex = 0;
12725
+ let lastValue = data.featureIds.value[0];
12726
+ for (let i = 0; i < data.featureIds.value.length; i++) {
12727
+ const currValue = data.featureIds.value[i];
12728
+ if (currValue === lastValue) {
12729
+ continue;
12730
+ }
12731
+ features.push(parseFeature(data, lastIndex, i));
12732
+ lastIndex = i;
12733
+ lastValue = currValue;
12734
+ }
12735
+ features.push(parseFeature(data, lastIndex, data.featureIds.value.length));
12736
+ }
12737
+ return features;
12830
12738
  }
12831
-
12832
- DECKGL_FILTER_COLOR(vColor, geometry);
12833
- }
12834
- `;
12835
-
12836
- // src/utils.ts
12837
- var import_core5 = __toESM(require_core());
12838
- function assert2(condition, message) {
12839
- import_core5.log.assert(condition, message);
12739
+ function parseFeature(data, startIndex, endIndex) {
12740
+ const geometry = binaryToGeometry(data, startIndex, endIndex);
12741
+ const properties = parseProperties(data, startIndex, endIndex);
12742
+ const fields = parseFields(data, startIndex, endIndex);
12743
+ return {
12744
+ type: "Feature",
12745
+ geometry,
12746
+ properties,
12747
+ ...fields
12748
+ };
12840
12749
  }
12841
- function createBinaryProxy(data, index) {
12750
+ function parseFields(data) {
12751
+ let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
12752
+ let endIndex = arguments.length > 2 ? arguments[2] : void 0;
12753
+ return data.fields && data.fields[data.featureIds.value[startIndex]];
12754
+ }
12755
+ function parseProperties(data) {
12756
+ let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
12757
+ let endIndex = arguments.length > 2 ? arguments[2] : void 0;
12758
+ const properties = Object.assign({}, data.properties[data.featureIds.value[startIndex]]);
12759
+ for (const key in data.numericProps) {
12760
+ properties[key] = data.numericProps[key].value[startIndex];
12761
+ }
12762
+ return properties;
12763
+ }
12764
+ function polygonToGeoJson(data) {
12765
+ let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -Infinity;
12766
+ let endIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Infinity;
12842
12767
  const {
12843
- properties,
12844
- numericProps
12768
+ positions
12845
12769
  } = data;
12846
- return new Proxy(properties[index] || {}, {
12847
- get(target, property, receiver) {
12848
- if (property in numericProps) {
12849
- return numericProps[property].value[index];
12850
- }
12851
- return target[property];
12852
- },
12853
- has(target, property) {
12854
- return property in numericProps || property in target;
12770
+ const polygonIndices = data.polygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
12771
+ const primitivePolygonIndices = data.primitivePolygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
12772
+ const multi = polygonIndices.length > 2;
12773
+ if (!multi) {
12774
+ const coordinates2 = [];
12775
+ for (let i = 0; i < primitivePolygonIndices.length - 1; i++) {
12776
+ const startRingIndex = primitivePolygonIndices[i];
12777
+ const endRingIndex = primitivePolygonIndices[i + 1];
12778
+ const ringCoordinates = ringToGeoJson(positions, startRingIndex, endRingIndex);
12779
+ coordinates2.push(ringCoordinates);
12855
12780
  }
12856
- });
12857
- }
12858
-
12859
- // src/layers/raster-layer.ts
12860
- var defaultProps6 = {
12861
- ...import_layers2.ColumnLayer.defaultProps,
12862
- extruded: false,
12863
- diskResolution: 4,
12864
- vertices: [[-0.5, -0.5], [0.5, -0.5], [0.5, 0.5], [-0.5, 0.5]]
12865
- };
12866
- var RasterColumnLayer = class extends import_layers2.ColumnLayer {
12867
- getShaders() {
12868
- const shaders = super.getShaders();
12869
12781
  return {
12870
- ...shaders,
12871
- vs: raster_layer_vertex_glsl_default
12782
+ type: "Polygon",
12783
+ coordinates: coordinates2
12872
12784
  };
12873
12785
  }
12874
- initializeState() {
12875
- const attributeManager = this.getAttributeManager();
12876
- attributeManager.addInstanced({
12877
- instanceElevations: {
12878
- size: 1,
12879
- transition: true,
12880
- accessor: "getElevation"
12881
- },
12882
- instanceFillColors: {
12883
- size: this.props.colorFormat.length,
12884
- type: esm_default.UNSIGNED_BYTE,
12885
- normalized: true,
12886
- transition: true,
12887
- accessor: "getFillColor",
12888
- defaultValue: [0, 0, 0, 255]
12889
- },
12890
- instanceLineColors: {
12891
- size: this.props.colorFormat.length,
12892
- type: esm_default.UNSIGNED_BYTE,
12893
- normalized: true,
12894
- transition: true,
12895
- accessor: "getLineColor",
12896
- defaultValue: [255, 255, 255, 255]
12897
- }
12898
- });
12786
+ const coordinates = [];
12787
+ for (let i = 0; i < polygonIndices.length - 1; i++) {
12788
+ const startPolygonIndex = polygonIndices[i];
12789
+ const endPolygonIndex = polygonIndices[i + 1];
12790
+ const polygonCoordinates = polygonToGeoJson(data, startPolygonIndex, endPolygonIndex).coordinates;
12791
+ coordinates.push(polygonCoordinates);
12899
12792
  }
12900
- };
12901
- __publicField(RasterColumnLayer, "layerName", "RasterColumnLayer");
12902
- var RasterLayer = class extends import_core6.CompositeLayer {
12903
- renderLayers() {
12904
- const {
12905
- data,
12906
- getElevation,
12907
- getFillColor,
12908
- getLineColor,
12909
- getLineWidth,
12910
- tileIndex,
12911
- updateTriggers
12912
- } = this.props;
12913
- if (!data || !tileIndex)
12914
- return null;
12915
- const {
12916
- blockWidth,
12917
- blockHeight
12918
- } = data;
12919
- assert2(blockWidth === blockHeight, `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`);
12920
- const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
12921
- const offset = [xOffset, yOffset, scale / blockWidth];
12922
- const CellLayer = this.getSubLayerClass("column", RasterColumnLayer);
12923
- return new CellLayer(this.props, this.getSubLayerProps({
12924
- id: "cell",
12925
- updateTriggers,
12926
- getElevation: this.getSubLayerAccessor(getElevation),
12927
- getFillColor: this.getSubLayerAccessor(getFillColor),
12928
- getLineColor: this.getSubLayerAccessor(getLineColor),
12929
- getLineWidth: this.getSubLayerAccessor(getLineWidth)
12930
- }), {
12931
- data: {
12932
- data,
12933
- length: blockWidth * blockHeight
12934
- },
12935
- offset
12936
- });
12793
+ return {
12794
+ type: "MultiPolygon",
12795
+ coordinates
12796
+ };
12797
+ }
12798
+ function lineStringToGeoJson(data) {
12799
+ let startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -Infinity;
12800
+ let endIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Infinity;
12801
+ const {
12802
+ positions
12803
+ } = data;
12804
+ const pathIndices = data.pathIndices.value.filter((x) => x >= startIndex && x <= endIndex);
12805
+ const multi = pathIndices.length > 2;
12806
+ if (!multi) {
12807
+ const coordinates2 = ringToGeoJson(positions, pathIndices[0], pathIndices[1]);
12808
+ return {
12809
+ type: "LineString",
12810
+ coordinates: coordinates2
12811
+ };
12937
12812
  }
12938
- getSubLayerAccessor(accessor) {
12939
- if (typeof accessor !== "function") {
12940
- return super.getSubLayerAccessor(accessor);
12941
- }
12942
- return (object, info) => {
12943
- const {
12944
- data,
12945
- index
12946
- } = info;
12947
- const binaryData = data.data;
12948
- const proxy = createBinaryProxy(binaryData.cells, index);
12949
- return accessor({
12950
- properties: proxy
12951
- }, info);
12813
+ const coordinates = [];
12814
+ for (let i = 0; i < pathIndices.length - 1; i++) {
12815
+ const ringCoordinates = ringToGeoJson(positions, pathIndices[i], pathIndices[i + 1]);
12816
+ coordinates.push(ringCoordinates);
12817
+ }
12818
+ return {
12819
+ type: "MultiLineString",
12820
+ coordinates
12821
+ };
12822
+ }
12823
+ function pointToGeoJson(data, startIndex, endIndex) {
12824
+ const {
12825
+ positions
12826
+ } = data;
12827
+ const coordinates = ringToGeoJson(positions, startIndex, endIndex);
12828
+ const multi = coordinates.length > 1;
12829
+ if (multi) {
12830
+ return {
12831
+ type: "MultiPoint",
12832
+ coordinates
12952
12833
  };
12953
12834
  }
12954
- };
12955
- __publicField(RasterLayer, "layerName", "RasterLayer");
12956
- __publicField(RasterLayer, "defaultProps", defaultProps6);
12835
+ return {
12836
+ type: "Point",
12837
+ coordinates: coordinates[0]
12838
+ };
12839
+ }
12840
+ function ringToGeoJson(positions, startIndex, endIndex) {
12841
+ startIndex = startIndex || 0;
12842
+ endIndex = endIndex || positions.value.length / positions.size;
12843
+ const ringCoordinates = [];
12844
+ for (let j = startIndex; j < endIndex; j++) {
12845
+ const coord = Array();
12846
+ for (let k = j * positions.size; k < (j + 1) * positions.size; k++) {
12847
+ coord.push(Number(positions.value[k]));
12848
+ }
12849
+ ringCoordinates.push(coord);
12850
+ }
12851
+ return ringCoordinates;
12852
+ }
12853
+ function parseType(data) {
12854
+ if (data.pathIndices) {
12855
+ return "LineString";
12856
+ }
12857
+ if (data.polygonIndices) {
12858
+ return "Polygon";
12859
+ }
12860
+ return "Point";
12861
+ }
12957
12862
 
12958
- // src/layers/raster-tile-layer.ts
12959
- var renderSubLayers3 = (props) => {
12960
- const tileIndex = props.tile?.index?.q;
12961
- if (!tileIndex)
12962
- return null;
12963
- return new RasterLayer(props, {
12964
- tileIndex
12965
- });
12863
+ // src/layers/vector-tile-layer.ts
12864
+ (0, import_core7.registerLoaders)([carto_vector_tile_loader_default]);
12865
+ var defaultTileFormat = TILE_FORMATS.BINARY;
12866
+ var defaultProps7 = {
12867
+ ...import_geo_layers6.MVTLayer.defaultProps,
12868
+ data: TilejsonPropType,
12869
+ formatTiles: defaultTileFormat
12966
12870
  };
12967
- var RasterTileLayer = class extends import_core7.CompositeLayer {
12871
+ var VectorTileLayer = class extends import_geo_layers6.MVTLayer {
12968
12872
  initializeState() {
12873
+ super.initializeState();
12874
+ const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;
12969
12875
  this.setState({
12970
- data: null,
12971
- tileJSON: null
12876
+ binary
12972
12877
  });
12973
12878
  }
12974
- updateState({
12975
- changeFlags
12976
- }) {
12977
- if (changeFlags.dataChanged) {
12978
- let {
12979
- data
12980
- } = this.props;
12981
- const tileJSON = data;
12982
- data = tileJSON.tiles;
12879
+ updateState(parameters) {
12880
+ const {
12881
+ props
12882
+ } = parameters;
12883
+ if (props.data) {
12884
+ super.updateState(parameters);
12885
+ const formatTiles = new URL(props.data.tiles[0]).searchParams.get("formatTiles");
12886
+ const mvt = formatTiles === TILE_FORMATS.MVT;
12983
12887
  this.setState({
12984
- data,
12985
- tileJSON
12888
+ mvt
12986
12889
  });
12987
12890
  }
12988
12891
  }
12989
- renderLayers() {
12892
+ getLoadOptions() {
12893
+ const loadOptions = super.getLoadOptions() || {};
12894
+ const tileJSON = this.props.data;
12895
+ injectAccessToken(loadOptions, tileJSON.accessToken);
12896
+ loadOptions.gis = {
12897
+ format: "binary"
12898
+ };
12899
+ return loadOptions;
12900
+ }
12901
+ getTileData(tile) {
12902
+ const url = (0, import_geo_layers6._getURLFromTemplate)(this.state.data, tile);
12903
+ if (!url) {
12904
+ return Promise.reject("Invalid URL");
12905
+ }
12906
+ const loadOptions = this.getLoadOptions();
12990
12907
  const {
12991
- data,
12992
- tileJSON
12993
- } = this.state;
12994
- const minZoom = parseInt(tileJSON?.minzoom);
12995
- const maxZoom = parseInt(tileJSON?.maxzoom);
12996
- return [new SpatialIndexTileLayer(this.props, {
12997
- id: `raster-tile-layer-${this.props.id}`,
12998
- data,
12999
- TilesetClass: QuadbinTileset2D,
13000
- renderSubLayers: renderSubLayers3,
13001
- minZoom,
13002
- maxZoom
13003
- })];
12908
+ fetch: fetch2
12909
+ } = this.props;
12910
+ const {
12911
+ signal
12912
+ } = tile;
12913
+ return fetch2(url, {
12914
+ propName: "data",
12915
+ layer: this,
12916
+ loadOptions,
12917
+ signal
12918
+ });
12919
+ }
12920
+ renderSubLayers(props) {
12921
+ if (props.data === null) {
12922
+ return null;
12923
+ }
12924
+ if (this.state.mvt) {
12925
+ return super.renderSubLayers(props);
12926
+ }
12927
+ const tileBbox = props.tile.bbox;
12928
+ const {
12929
+ west,
12930
+ south,
12931
+ east,
12932
+ north
12933
+ } = tileBbox;
12934
+ const subLayerProps = {
12935
+ ...props,
12936
+ autoHighlight: false,
12937
+ extensions: [new import_extensions.ClipExtension(), ...props.extensions || []],
12938
+ clipBounds: [west, south, east, north]
12939
+ };
12940
+ const subLayer = new import_layers2.GeoJsonLayer(subLayerProps);
12941
+ return subLayer;
12942
+ }
12943
+ getPickingInfo(params) {
12944
+ const info = super.getPickingInfo(params);
12945
+ if (this.state.binary && info.index !== -1) {
12946
+ const {
12947
+ data
12948
+ } = params.sourceLayer.props;
12949
+ info.object = binaryToGeojson(data, {
12950
+ globalFeatureId: info.index
12951
+ });
12952
+ }
12953
+ return info;
13004
12954
  }
13005
12955
  };
13006
- __publicField(RasterTileLayer, "layerName", "RasterTileLayer");
13007
- __publicField(RasterTileLayer, "defaultProps", {});
12956
+ __publicField(VectorTileLayer, "layerName", "VectorTileLayer");
12957
+ __publicField(VectorTileLayer, "defaultProps", defaultProps7);
13008
12958
 
13009
12959
  // src/api/layer-map.ts
13010
12960
  var SCALE_FUNCS = {
@@ -13086,7 +13036,7 @@ void main(void) {
13086
13036
  elevationPercentile: ["elevationLowerPercentile", "elevationUpperPercentile"],
13087
13037
  percentile: ["lowerPercentile", "upperPercentile"]
13088
13038
  };
13089
- var defaultProps7 = {
13039
+ var defaultProps8 = {
13090
13040
  lineMiterLimit: 2,
13091
13041
  lineWidthUnits: "pixels",
13092
13042
  pointRadiusUnits: "pixels",
@@ -13187,12 +13137,12 @@ void main(void) {
13187
13137
  }
13188
13138
  };
13189
13139
  const layer = layerTypeDefs[type];
13190
- assert2(layer, `Unsupported layer type: ${type}`);
13140
+ assert(layer, `Unsupported layer type: ${type}`);
13191
13141
  return {
13192
13142
  ...layer,
13193
13143
  propMap: mergePropMaps(basePropMap, layer.propMap),
13194
13144
  defaultProps: {
13195
- ...defaultProps7,
13145
+ ...defaultProps8,
13196
13146
  ...layer.defaultProps
13197
13147
  }
13198
13148
  };
@@ -13207,10 +13157,7 @@ void main(void) {
13207
13157
  if (scheme === "quadbin") {
13208
13158
  return QuadbinTileLayer;
13209
13159
  }
13210
- if (formatTiles === "mvt") {
13211
- return import_geo_layers7.MVTLayer;
13212
- }
13213
- return CartoTileLayer;
13160
+ return VectorTileLayer;
13214
13161
  }
13215
13162
  function getTileLayer(dataset, basePropMap) {
13216
13163
  const {
@@ -13226,7 +13173,7 @@ void main(void) {
13226
13173
  Layer: layerFromTileDataset(formatTiles, scheme),
13227
13174
  propMap: basePropMap,
13228
13175
  defaultProps: {
13229
- ...defaultProps7,
13176
+ ...defaultProps8,
13230
13177
  ...aggregationExp && {
13231
13178
  aggregationExp
13232
13179
  },
@@ -13485,7 +13432,7 @@ void main(void) {
13485
13432
  }
13486
13433
  };
13487
13434
  __publicField(EnhancedTextLayer, "layerName", "EnhancedTextLayer");
13488
- var defaultProps8 = {
13435
+ var defaultProps9 = {
13489
13436
  ...import_layers4.TextLayer.defaultProps,
13490
13437
  getRadius: {
13491
13438
  type: "accessor",
@@ -13552,7 +13499,7 @@ void main(void) {
13552
13499
  }
13553
13500
  return backgroundPadding;
13554
13501
  }
13555
- renderTextLayer(id, {
13502
+ renderTextLayer(id4, {
13556
13503
  updateTriggers: updateTriggersOverride = {},
13557
13504
  ...props
13558
13505
  }) {
@@ -13573,7 +13520,7 @@ void main(void) {
13573
13520
  updateTriggers
13574
13521
  } = this.props;
13575
13522
  return new EnhancedTextLayer(this.getSubLayerProps({
13576
- id,
13523
+ id: id4,
13577
13524
  data,
13578
13525
  characterSet,
13579
13526
  fontFamily,
@@ -13611,33 +13558,30 @@ void main(void) {
13611
13558
  } = this.props;
13612
13559
  const getPixelOffset = this.calculatePixelOffset(false);
13613
13560
  const backgroundPadding = this.calculateBackgroundPadding();
13614
- const out = [
13615
- this.renderTextLayer(`${updateTriggers.getText}-primary`, {
13616
- backgroundPadding,
13617
- getText,
13618
- getPixelOffset,
13619
- background: true
13620
- }),
13621
- Boolean(getSecondaryText) && this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {
13622
- getText: getSecondaryText,
13623
- getPixelOffset: this.calculatePixelOffset(true),
13624
- getAlignmentBaseline: "top",
13625
- ...getSecondaryColor && {
13626
- getColor: getSecondaryColor
13627
- },
13628
- ...secondarySizeScale && {
13629
- sizeScale: secondarySizeScale
13630
- },
13631
- ...secondaryOutlineColor && {
13632
- outlineColor: secondaryOutlineColor
13633
- }
13634
- })
13635
- ];
13561
+ const out = [this.renderTextLayer(`${updateTriggers.getText}-primary`, {
13562
+ backgroundPadding,
13563
+ getText,
13564
+ getPixelOffset,
13565
+ background: true
13566
+ }), Boolean(getSecondaryText) && this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {
13567
+ getText: getSecondaryText,
13568
+ getPixelOffset: this.calculatePixelOffset(true),
13569
+ getAlignmentBaseline: "top",
13570
+ ...getSecondaryColor && {
13571
+ getColor: getSecondaryColor
13572
+ },
13573
+ ...secondarySizeScale && {
13574
+ sizeScale: secondarySizeScale
13575
+ },
13576
+ ...secondaryOutlineColor && {
13577
+ outlineColor: secondaryOutlineColor
13578
+ }
13579
+ })];
13636
13580
  return out;
13637
13581
  }
13638
13582
  };
13639
13583
  __publicField(PointLabelLayer, "layerName", "PointLabelLayer");
13640
- __publicField(PointLabelLayer, "defaultProps", defaultProps8);
13584
+ __publicField(PointLabelLayer, "defaultProps", defaultProps9);
13641
13585
 
13642
13586
  // src/api/parseMap.ts
13643
13587
  var import_core9 = __toESM(require_core());
@@ -13649,7 +13593,7 @@ void main(void) {
13649
13593
  datasets,
13650
13594
  token
13651
13595
  } = json;
13652
- assert2(keplerMapConfig.version === "v1", "Only support Kepler v1");
13596
+ assert(keplerMapConfig.version === "v1", "Only support Kepler v1");
13653
13597
  const {
13654
13598
  mapState,
13655
13599
  mapStyle
@@ -13669,7 +13613,7 @@ void main(void) {
13669
13613
  mapStyle,
13670
13614
  token,
13671
13615
  layers: layers.reverse().map(({
13672
- id,
13616
+ id: id4,
13673
13617
  type,
13674
13618
  config,
13675
13619
  visualChannels
@@ -13679,24 +13623,24 @@ void main(void) {
13679
13623
  dataId
13680
13624
  } = config;
13681
13625
  const dataset = datasets.find((d) => d.id === dataId);
13682
- assert2(dataset, `No dataset matching dataId: ${dataId}`);
13626
+ assert(dataset, `No dataset matching dataId: ${dataId}`);
13683
13627
  const {
13684
13628
  data
13685
13629
  } = dataset;
13686
- assert2(data, `No data loaded for dataId: ${dataId}`);
13630
+ assert(data, `No data loaded for dataId: ${dataId}`);
13687
13631
  const {
13688
13632
  Layer,
13689
13633
  propMap,
13690
- defaultProps: defaultProps10
13634
+ defaultProps: defaultProps11
13691
13635
  } = getLayer(type, config, dataset);
13692
13636
  const styleProps = createStyleProps(config, propMap);
13693
13637
  return new Layer({
13694
- id,
13638
+ id: id4,
13695
13639
  data,
13696
- ...defaultProps10,
13640
+ ...defaultProps11,
13697
13641
  ...createInteractionProps(interactionConfig),
13698
13642
  ...styleProps,
13699
- ...createChannelProps(id, type, config, visualChannels, data),
13643
+ ...createChannelProps(id4, type, config, visualChannels, data),
13700
13644
  ...createParametersProp(layerBlending, styleProps.parameters || {}),
13701
13645
  ...createLoadOptions(token)
13702
13646
  });
@@ -13709,11 +13653,11 @@ void main(void) {
13709
13653
  }
13710
13654
  function createParametersProp(layerBlending, parameters) {
13711
13655
  if (layerBlending === "additive") {
13712
- parameters.blendFunc = [esm_default.SRC_ALPHA, esm_default.DST_ALPHA];
13713
- parameters.blendEquation = esm_default.FUNC_ADD;
13656
+ parameters.blendFunc = [770, 772];
13657
+ parameters.blendEquation = 32774;
13714
13658
  } else if (layerBlending === "subtractive") {
13715
- parameters.blendFunc = [esm_default.ONE, esm_default.ONE_MINUS_DST_COLOR, esm_default.SRC_ALPHA, esm_default.DST_ALPHA];
13716
- parameters.blendEquation = [esm_default.FUNC_SUBTRACT, esm_default.FUNC_ADD];
13659
+ parameters.blendFunc = [1, 775, 770, 772];
13660
+ parameters.blendEquation = [32778, 32774];
13717
13661
  }
13718
13662
  return Object.keys(parameters).length ? {
13719
13663
  parameters
@@ -13761,7 +13705,7 @@ void main(void) {
13761
13705
  result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];
13762
13706
  return result;
13763
13707
  }
13764
- function createChannelProps(id, type, config, visualChannels, data) {
13708
+ function createChannelProps(id4, type, config, visualChannels, data) {
13765
13709
  const {
13766
13710
  colorField,
13767
13711
  colorScale,
@@ -13802,16 +13746,10 @@ void main(void) {
13802
13746
  colorAggregation: aggregation,
13803
13747
  colorRange: range2
13804
13748
  } = visConfig;
13805
- result.getFillColor = getColorAccessor(
13806
- colorField,
13807
- colorScale,
13808
- {
13809
- aggregation,
13810
- range: range2
13811
- },
13812
- visConfig.opacity,
13813
- data
13814
- );
13749
+ result.getFillColor = getColorAccessor(colorField, colorScale, {
13750
+ aggregation,
13751
+ range: range2
13752
+ }, visConfig.opacity, data);
13815
13753
  }
13816
13754
  if (type === "point") {
13817
13755
  const altitude = config.columns?.altitude;
@@ -13834,13 +13772,7 @@ void main(void) {
13834
13772
  }
13835
13773
  }
13836
13774
  if (radiusField || sizeField) {
13837
- result.getPointRadius = getSizeAccessor(
13838
- radiusField || sizeField,
13839
- radiusScale || sizeScale,
13840
- visConfig.sizeAggregation,
13841
- visConfig.radiusRange || visConfig.sizeRange,
13842
- data
13843
- );
13775
+ result.getPointRadius = getSizeAccessor(radiusField || sizeField, radiusScale || sizeScale, visConfig.sizeAggregation, visConfig.radiusRange || visConfig.sizeRange, data);
13844
13776
  }
13845
13777
  if (strokeColorField) {
13846
13778
  const fallbackOpacity = type === "point" ? visConfig.opacity : 1;
@@ -13849,25 +13781,13 @@ void main(void) {
13849
13781
  strokeColorAggregation: aggregation,
13850
13782
  strokeColorRange: range2
13851
13783
  } = visConfig;
13852
- result.getLineColor = getColorAccessor(
13853
- strokeColorField,
13854
- strokeColorScale,
13855
- {
13856
- aggregation,
13857
- range: range2
13858
- },
13859
- opacity,
13860
- data
13861
- );
13784
+ result.getLineColor = getColorAccessor(strokeColorField, strokeColorScale, {
13785
+ aggregation,
13786
+ range: range2
13787
+ }, opacity, data);
13862
13788
  }
13863
13789
  if (heightField && visConfig.enable3d) {
13864
- result.getElevation = getSizeAccessor(
13865
- heightField,
13866
- heightScale,
13867
- visConfig.heightAggregation,
13868
- visConfig.heightRange || visConfig.sizeRange,
13869
- data
13870
- );
13790
+ result.getElevation = getSizeAccessor(heightField, heightScale, visConfig.heightAggregation, visConfig.heightRange || visConfig.sizeRange, data);
13871
13791
  }
13872
13792
  if (visConfig.customMarkers) {
13873
13793
  const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);
@@ -13914,7 +13834,7 @@ void main(void) {
13914
13834
  }
13915
13835
  if (textLabel && textLabel.length && textLabel[0].field) {
13916
13836
  const [mainLabel, secondaryLabel] = textLabel;
13917
- const collisionGroup = id;
13837
+ const collisionGroup = id4;
13918
13838
  ({
13919
13839
  alignment: result.getTextAlignmentBaseline,
13920
13840
  anchor: result.getTextAnchor,
@@ -13975,9 +13895,9 @@ void main(void) {
13975
13895
 
13976
13896
  // src/api/maps-v3-client.ts
13977
13897
  var import_core10 = __toESM(require_core());
13978
- var MAX_GET_LENGTH = 8192;
13979
- var DEFAULT_CLIENT = "deck-gl-carto";
13980
- var V3_MINOR_VERSION = "3.1";
13898
+ var MAX_GET_LENGTH2 = 8192;
13899
+ var DEFAULT_CLIENT2 = "deck-gl-carto";
13900
+ var V3_MINOR_VERSION2 = "3.2";
13981
13901
  async function request2({
13982
13902
  method,
13983
13903
  url,
@@ -14043,15 +13963,6 @@ void main(void) {
14043
13963
  body,
14044
13964
  errorContext
14045
13965
  }) {
14046
- if (format2 === FORMATS.NDJSON) {
14047
- return request2({
14048
- method,
14049
- url,
14050
- accessToken,
14051
- body,
14052
- errorContext
14053
- });
14054
- }
14055
13966
  const data = await requestJson({
14056
13967
  method,
14057
13968
  url,
@@ -14072,8 +13983,8 @@ void main(void) {
14072
13983
  queryParameters
14073
13984
  }) {
14074
13985
  const parameters = {
14075
- client: clientId || DEFAULT_CLIENT,
14076
- v: V3_MINOR_VERSION
13986
+ client: clientId || DEFAULT_CLIENT2,
13987
+ v: V3_MINOR_VERSION2
14077
13988
  };
14078
13989
  const sourceName = type === MAP_TYPES.QUERY ? "q" : "name";
14079
13990
  parameters[sourceName] = source;
@@ -14140,7 +14051,7 @@ void main(void) {
14140
14051
  type,
14141
14052
  source
14142
14053
  };
14143
- if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {
14054
+ if (url.length > MAX_GET_LENGTH2 && type === MAP_TYPES.QUERY) {
14144
14055
  return await requestJson({
14145
14056
  method: "POST",
14146
14057
  url: baseUrl2,
@@ -14174,20 +14085,20 @@ void main(void) {
14174
14085
  aggregationExp,
14175
14086
  aggregationResLevel
14176
14087
  }) {
14177
- assert2(connection, "Must define connection");
14178
- assert2(type, "Must define a type");
14179
- assert2(source, "Must define a source");
14180
- assert2(credentials2.apiVersion === API_VERSIONS.V3, "Method only available for v3");
14181
- assert2(credentials2.apiBaseUrl, "Must define apiBaseUrl");
14182
- assert2(credentials2.accessToken, "Must define an accessToken");
14088
+ assert(connection, "Must define connection");
14089
+ assert(type, "Must define a type");
14090
+ assert(source, "Must define a source");
14091
+ assert(credentials2.apiVersion === API_VERSIONS.V3, "Method only available for v3");
14092
+ assert(credentials2.apiBaseUrl, "Must define apiBaseUrl");
14093
+ assert(credentials2.accessToken, "Must define an accessToken");
14183
14094
  if (columns) {
14184
- assert2(COLUMNS_SUPPORT.includes(type), `The columns parameter is not supported by type ${type}`);
14095
+ assert(COLUMNS_SUPPORT.includes(type), `The columns parameter is not supported by type ${type}`);
14185
14096
  }
14186
14097
  if (geoColumn) {
14187
- assert2(GEO_COLUMN_SUPPORT.includes(type), `The geoColumn parameter is not supported by type ${type}`);
14098
+ assert(GEO_COLUMN_SUPPORT.includes(type), `The geoColumn parameter is not supported by type ${type}`);
14188
14099
  } else {
14189
- assert2(!aggregationExp, "Have aggregationExp, but geoColumn parameter is missing");
14190
- assert2(!aggregationResLevel, "Have aggregationResLevel, but geoColumn parameter is missing");
14100
+ assert(!aggregationExp, "Have aggregationExp, but geoColumn parameter is missing");
14101
+ assert(!aggregationResLevel, "Have aggregationResLevel, but geoColumn parameter is missing");
14191
14102
  }
14192
14103
  }
14193
14104
  async function fetchLayerData({
@@ -14295,9 +14206,9 @@ void main(void) {
14295
14206
  if (format2) {
14296
14207
  mapFormat = format2;
14297
14208
  url = getUrlFromMetadata(metadata, format2);
14298
- assert2(url, `Format ${format2} not available`);
14209
+ assert(url, `Format ${format2} not available`);
14299
14210
  } else {
14300
- const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.NDJSON, FORMATS.TILEJSON];
14211
+ const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.TILEJSON];
14301
14212
  for (const f of prioritizedFormats) {
14302
14213
  url = getUrlFromMetadata(metadata, f);
14303
14214
  if (url) {
@@ -14305,7 +14216,7 @@ void main(void) {
14305
14216
  break;
14306
14217
  }
14307
14218
  }
14308
- assert2(url && mapFormat, "Unsupported data formats received from backend.");
14219
+ assert(url && mapFormat, "Unsupported data formats received from backend.");
14309
14220
  }
14310
14221
  if (format2 === FORMATS.TILEJSON && formatTiles) {
14311
14222
  import_core10.log.assert(Object.values(TILE_FORMATS).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
@@ -14396,7 +14307,7 @@ void main(void) {
14396
14307
  url += `?${encodeParameter("q", source)}`;
14397
14308
  }
14398
14309
  let stats;
14399
- if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {
14310
+ if (url.length > MAX_GET_LENGTH2 && type === MAP_TYPES.QUERY) {
14400
14311
  stats = await requestJson({
14401
14312
  method: "POST",
14402
14313
  url: baseUrl2,
@@ -14481,16 +14392,16 @@ void main(void) {
14481
14392
  const {
14482
14393
  accessToken
14483
14394
  } = localCreds;
14484
- assert2(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: "XXXX-XXXX-XXXX"})');
14485
- assert2(localCreds.apiVersion === API_VERSIONS.V3, "Method only available for v3");
14486
- assert2(localCreds.apiBaseUrl, "Must define apiBaseUrl");
14395
+ assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: "XXXX-XXXX-XXXX"})');
14396
+ assert(localCreds.apiVersion === API_VERSIONS.V3, "Method only available for v3");
14397
+ assert(localCreds.apiBaseUrl, "Must define apiBaseUrl");
14487
14398
  if (!localCreds.mapsUrl) {
14488
14399
  localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);
14489
14400
  }
14490
14401
  if (autoRefresh || onNewData) {
14491
- assert2(onNewData, "Must define `onNewData` when using autoRefresh");
14492
- assert2(typeof onNewData === "function", "`onNewData` must be a function");
14493
- assert2(typeof autoRefresh === "number" && autoRefresh > 0, "`autoRefresh` must be a positive number");
14402
+ assert(onNewData, "Must define `onNewData` when using autoRefresh");
14403
+ assert(typeof onNewData === "function", "`onNewData` must be a function");
14404
+ assert(typeof autoRefresh === "number" && autoRefresh > 0, "`autoRefresh` must be a positive number");
14494
14405
  }
14495
14406
  const url = `${localCreds.mapsUrl}/public/${cartoMapId}`;
14496
14407
  const errorContext = {
@@ -14554,7 +14465,7 @@ void main(void) {
14554
14465
  }
14555
14466
 
14556
14467
  // src/layers/carto-layer.ts
14557
- var defaultProps9 = {
14468
+ var defaultProps10 = {
14558
14469
  data: null,
14559
14470
  type: null,
14560
14471
  onDataLoad: {
@@ -14699,14 +14610,14 @@ void main(void) {
14699
14610
  }
14700
14611
  }
14701
14612
  _getSubLayerAndProps() {
14702
- assert2(this.state);
14613
+ assert(this.state);
14703
14614
  const {
14704
14615
  data,
14705
14616
  apiVersion
14706
14617
  } = this.state;
14707
14618
  const {
14708
14619
  uniqueIdProperty
14709
- } = defaultProps9;
14620
+ } = defaultProps10;
14710
14621
  const {
14711
14622
  data: _notUsed,
14712
14623
  ...propsNoData
@@ -14723,7 +14634,7 @@ void main(void) {
14723
14634
  return [layerFromTileDataset(props.formatTiles, data.scheme, props.type), props];
14724
14635
  }
14725
14636
  renderLayers() {
14726
- assert2(this.state);
14637
+ assert(this.state);
14727
14638
  const {
14728
14639
  apiVersion,
14729
14640
  data
@@ -14761,7 +14672,7 @@ void main(void) {
14761
14672
  }
14762
14673
  };
14763
14674
  __publicField(CartoLayer, "layerName", "CartoLayer");
14764
- __publicField(CartoLayer, "defaultProps", defaultProps9);
14675
+ __publicField(CartoLayer, "defaultProps", defaultProps10);
14765
14676
 
14766
14677
  // src/basemap.ts
14767
14678
  var baseUrl = "https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json";
@@ -14885,6 +14796,296 @@ void main(void) {
14885
14796
  };
14886
14797
  }
14887
14798
 
14799
+ // src/sources/utils.ts
14800
+ async function requestWithParameters({
14801
+ baseUrl: baseUrl2,
14802
+ parameters,
14803
+ headers: customHeaders,
14804
+ errorContext
14805
+ }) {
14806
+ let url = baseUrl2;
14807
+ if (parameters) {
14808
+ const allParameters = {
14809
+ ...DEFAULT_PARAMETERS,
14810
+ ...parameters
14811
+ };
14812
+ const encodedParameters = Object.entries(allParameters).map(([key, value]) => {
14813
+ return encodeParameter(key, value);
14814
+ });
14815
+ url += `?${encodedParameters.join("&")}`;
14816
+ }
14817
+ const headers = {
14818
+ ...DEFAULT_HEADERS,
14819
+ ...customHeaders
14820
+ };
14821
+ try {
14822
+ let response;
14823
+ if (url.length > MAX_GET_LENGTH) {
14824
+ response = await fetch(url, {
14825
+ method: "POST",
14826
+ body: JSON.stringify(parameters),
14827
+ headers
14828
+ });
14829
+ } else {
14830
+ response = await fetch(url, {
14831
+ headers
14832
+ });
14833
+ }
14834
+ let json;
14835
+ try {
14836
+ json = await response.json();
14837
+ } catch {
14838
+ json = {
14839
+ error: ""
14840
+ };
14841
+ }
14842
+ if (!response.ok) {
14843
+ throw new CartoAPIError(json.error, errorContext, response);
14844
+ }
14845
+ return json;
14846
+ } catch (error) {
14847
+ throw new CartoAPIError(error, errorContext);
14848
+ }
14849
+ }
14850
+ function buildApiEndpoint({
14851
+ apiBaseUrl,
14852
+ connectionName,
14853
+ endpoint,
14854
+ mapsUrl: mapsUrl2
14855
+ }) {
14856
+ return `${mapsUrl2 || buildMapsUrlFromBase(apiBaseUrl)}/${connectionName}/${endpoint}`;
14857
+ }
14858
+
14859
+ // src/sources/base-source.ts
14860
+ async function cartoBaseSource(endpoint, options, urlParameters) {
14861
+ const mergedOptions = {
14862
+ ...SOURCE_DEFAULTS,
14863
+ ...options,
14864
+ endpoint
14865
+ };
14866
+ const baseUrl2 = buildApiEndpoint(mergedOptions);
14867
+ const {
14868
+ accessToken,
14869
+ format: format2
14870
+ } = mergedOptions;
14871
+ const headers = {
14872
+ Authorization: `Bearer ${options.accessToken}`,
14873
+ ...options.headers
14874
+ };
14875
+ const errorContext = {
14876
+ requestType: "Map instantiation",
14877
+ connection: options.connectionName,
14878
+ type: endpoint,
14879
+ source: JSON.stringify(urlParameters, void 0, 2)
14880
+ };
14881
+ const mapInstantiation2 = await requestWithParameters({
14882
+ baseUrl: baseUrl2,
14883
+ parameters: urlParameters,
14884
+ headers,
14885
+ errorContext
14886
+ });
14887
+ const dataUrl = mapInstantiation2[format2].url[0];
14888
+ errorContext.requestType = "Map data";
14889
+ if (format2 === "tilejson") {
14890
+ const tilejson = await requestWithParameters({
14891
+ baseUrl: dataUrl,
14892
+ headers,
14893
+ errorContext
14894
+ });
14895
+ return {
14896
+ ...tilejson,
14897
+ accessToken
14898
+ };
14899
+ }
14900
+ return await requestWithParameters({
14901
+ baseUrl: dataUrl,
14902
+ headers,
14903
+ errorContext
14904
+ });
14905
+ }
14906
+
14907
+ // src/sources/h3-query-source.ts
14908
+ var cartoH3QuerySource = async function(options) {
14909
+ const {
14910
+ aggregationExp,
14911
+ aggregationResLevel = 4,
14912
+ sqlQuery,
14913
+ spatialDataColumn = "h3:h3",
14914
+ queryParameters
14915
+ } = options;
14916
+ const urlParameters = {
14917
+ aggregationExp,
14918
+ q: sqlQuery
14919
+ };
14920
+ if (aggregationResLevel) {
14921
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
14922
+ }
14923
+ if (spatialDataColumn) {
14924
+ urlParameters.geo_column = spatialDataColumn;
14925
+ }
14926
+ if (queryParameters) {
14927
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
14928
+ }
14929
+ return cartoBaseSource("query", options, urlParameters);
14930
+ };
14931
+
14932
+ // src/sources/h3-table-source.ts
14933
+ var cartoH3TableSource = async function(options) {
14934
+ const {
14935
+ aggregationExp,
14936
+ aggregationResLevel = 4,
14937
+ columns,
14938
+ spatialDataColumn = "h3:h3",
14939
+ tableName
14940
+ } = options;
14941
+ const urlParameters = {
14942
+ aggregationExp,
14943
+ name: tableName
14944
+ };
14945
+ if (aggregationResLevel) {
14946
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
14947
+ }
14948
+ if (columns) {
14949
+ urlParameters.columns = columns.join(",");
14950
+ }
14951
+ if (spatialDataColumn) {
14952
+ urlParameters.geo_column = spatialDataColumn;
14953
+ }
14954
+ return cartoBaseSource("table", options, urlParameters);
14955
+ };
14956
+
14957
+ // src/sources/h3-tileset-source.ts
14958
+ var cartoH3TilesetSource = async function(options) {
14959
+ const {
14960
+ tableName
14961
+ } = options;
14962
+ const urlParameters = {
14963
+ name: tableName
14964
+ };
14965
+ return cartoBaseSource("tileset", options, urlParameters);
14966
+ };
14967
+
14968
+ // src/sources/raster-source.ts
14969
+ var cartoRasterSource = async function(options) {
14970
+ const {
14971
+ tableName
14972
+ } = options;
14973
+ const urlParameters = {
14974
+ name: tableName
14975
+ };
14976
+ return cartoBaseSource("raster", options, urlParameters);
14977
+ };
14978
+
14979
+ // src/sources/quadbin-query-source.ts
14980
+ var cartoQuadbinQuerySource = async function(options) {
14981
+ const {
14982
+ aggregationExp,
14983
+ aggregationResLevel = 6,
14984
+ sqlQuery,
14985
+ spatialDataColumn = "quadbin:quadbin",
14986
+ queryParameters
14987
+ } = options;
14988
+ const urlParameters = {
14989
+ aggregationExp,
14990
+ q: sqlQuery
14991
+ };
14992
+ if (aggregationResLevel) {
14993
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
14994
+ }
14995
+ if (spatialDataColumn) {
14996
+ urlParameters.geo_column = spatialDataColumn;
14997
+ }
14998
+ if (queryParameters) {
14999
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
15000
+ }
15001
+ return cartoBaseSource("query", options, urlParameters);
15002
+ };
15003
+
15004
+ // src/sources/quadbin-table-source.ts
15005
+ var cartoQuadbinTableSource = async function(options) {
15006
+ const {
15007
+ aggregationExp,
15008
+ aggregationResLevel = 6,
15009
+ columns,
15010
+ spatialDataColumn = "quadbin:quadbin",
15011
+ tableName
15012
+ } = options;
15013
+ const urlParameters = {
15014
+ aggregationExp,
15015
+ name: tableName
15016
+ };
15017
+ if (aggregationResLevel) {
15018
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
15019
+ }
15020
+ if (columns) {
15021
+ urlParameters.columns = columns.join(",");
15022
+ }
15023
+ if (spatialDataColumn) {
15024
+ urlParameters.geo_column = spatialDataColumn;
15025
+ }
15026
+ return cartoBaseSource("table", options, urlParameters);
15027
+ };
15028
+
15029
+ // src/sources/quadbin-tileset-source.ts
15030
+ var cartoQuadbinTilesetSource = async function(options) {
15031
+ const {
15032
+ tableName
15033
+ } = options;
15034
+ const urlParameters = {
15035
+ name: tableName
15036
+ };
15037
+ return cartoBaseSource("tileset", options, urlParameters);
15038
+ };
15039
+
15040
+ // src/sources/vector-query-source.ts
15041
+ var cartoVectorQuerySource = async function(options) {
15042
+ const {
15043
+ spatialDataColumn,
15044
+ sqlQuery,
15045
+ queryParameters
15046
+ } = options;
15047
+ const urlParameters = {
15048
+ q: sqlQuery
15049
+ };
15050
+ if (spatialDataColumn) {
15051
+ urlParameters.geo_column = spatialDataColumn;
15052
+ }
15053
+ if (queryParameters) {
15054
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
15055
+ }
15056
+ return cartoBaseSource("query", options, urlParameters);
15057
+ };
15058
+
15059
+ // src/sources/vector-table-source.ts
15060
+ var cartoVectorTableSource = async function(options) {
15061
+ const {
15062
+ columns,
15063
+ spatialDataColumn,
15064
+ tableName
15065
+ } = options;
15066
+ const urlParameters = {
15067
+ name: tableName
15068
+ };
15069
+ if (columns) {
15070
+ urlParameters.columns = columns.join(",");
15071
+ }
15072
+ if (spatialDataColumn) {
15073
+ urlParameters.geo_column = spatialDataColumn;
15074
+ }
15075
+ return cartoBaseSource("table", options, urlParameters);
15076
+ };
15077
+
15078
+ // src/sources/vector-tileset-source.ts
15079
+ var cartoVectorTilesetSource = async function(options) {
15080
+ const {
15081
+ tableName
15082
+ } = options;
15083
+ const urlParameters = {
15084
+ name: tableName
15085
+ };
15086
+ return cartoBaseSource("tileset", options, urlParameters);
15087
+ };
15088
+
14888
15089
  // ../layers/bundle/peer-dependency.ts
14889
15090
  var peer_dependency_exports = {};
14890
15091
  var import_layers5 = __toESM(require_layers());