@deck.gl/carto 9.0.0-beta.2 → 9.0.0-beta.3

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 (432) hide show
  1. package/dist/api/carto-api-error.js +47 -0
  2. package/dist/{esm/api → api}/common.js +4 -5
  3. package/dist/api/endpoints.js +22 -0
  4. package/dist/api/fetch-map.js +187 -0
  5. package/dist/api/index.js +3 -0
  6. package/dist/api/layer-map.js +373 -0
  7. package/dist/api/parse-map.js +250 -0
  8. package/dist/api/query.js +24 -0
  9. package/dist/api/request-with-parameters.js +53 -0
  10. package/dist/api/types.js +12 -0
  11. package/dist/basemap.js +9 -0
  12. package/dist/cartoRasterTile-worker.js +2 -2
  13. package/dist/cartoSpatialTile-worker.js +7 -7
  14. package/dist/cartoVectorTile-worker.js +3 -3
  15. package/dist/dist.dev.js +1226 -1077
  16. package/dist/index.cjs +2685 -0
  17. package/dist/index.cjs.map +7 -0
  18. package/dist/index.d.ts +37 -0
  19. package/{typed → dist}/index.d.ts.map +1 -1
  20. package/dist/index.js +34 -0
  21. package/dist/layers/h3-tile-layer.js +64 -0
  22. package/dist/layers/h3-tileset-2d.js +99 -0
  23. package/dist/layers/point-label-layer.js +150 -0
  24. package/dist/layers/quadbin-layer.js +21 -0
  25. package/dist/layers/quadbin-tile-layer.js +47 -0
  26. package/dist/layers/quadbin-tileset-2d.js +27 -0
  27. package/dist/layers/quadbin-utils.js +21 -0
  28. package/dist/{esm/layers → layers}/raster-layer-vertex.glsl.js +0 -1
  29. package/dist/layers/raster-layer.js +97 -0
  30. package/dist/layers/raster-tile-layer.js +43 -0
  31. package/dist/layers/schema/carto-properties-tile-loader.js +21 -0
  32. package/dist/layers/schema/carto-properties-tile.js +14 -0
  33. package/dist/layers/schema/carto-raster-tile-loader.js +36 -0
  34. package/dist/layers/schema/carto-raster-tile.js +46 -0
  35. package/dist/layers/schema/carto-spatial-tile-loader.js +35 -0
  36. package/dist/layers/schema/carto-spatial-tile.js +38 -0
  37. package/dist/layers/schema/carto-tile.js +187 -0
  38. package/dist/layers/schema/carto-vector-tile-loader.js +65 -0
  39. package/dist/layers/schema/fast-pbf.js +7 -0
  40. package/dist/layers/schema/spatialjson-utils.js +15 -0
  41. package/dist/layers/schema/tile-loader-utils.js +6 -0
  42. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts +1 -1
  43. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts.map +1 -1
  44. package/dist/layers/spatial-index-tile-layer.js +64 -0
  45. package/dist/layers/utils.js +74 -0
  46. package/dist/layers/vector-tile-layer.js +98 -0
  47. package/dist/sources/base-source.js +52 -0
  48. package/{typed → dist}/sources/boundary-query-source.d.ts +1 -1
  49. package/{typed → dist}/sources/boundary-query-source.d.ts.map +1 -1
  50. package/dist/sources/boundary-query-source.js +13 -0
  51. package/dist/sources/boundary-table-source.js +13 -0
  52. package/dist/sources/h3-query-source.js +18 -0
  53. package/dist/sources/h3-table-source.js +18 -0
  54. package/dist/sources/h3-tileset-source.js +6 -0
  55. package/dist/sources/index.js +13 -0
  56. package/dist/sources/quadbin-query-source.js +18 -0
  57. package/dist/sources/quadbin-table-source.js +18 -0
  58. package/dist/sources/quadbin-tileset-source.js +6 -0
  59. package/dist/sources/raster-source.js +6 -0
  60. package/dist/sources/types.js +1 -0
  61. package/dist/sources/vector-query-source.js +10 -0
  62. package/dist/sources/vector-table-source.js +10 -0
  63. package/dist/sources/vector-tileset-source.js +6 -0
  64. package/dist/style/color-bins-style.js +21 -0
  65. package/dist/style/color-categories-style.js +25 -0
  66. package/dist/style/color-continuous-style.js +21 -0
  67. package/dist/style/palette.js +62 -0
  68. package/dist/style/utils.js +11 -0
  69. package/dist/utils.js +41 -0
  70. package/dist/workers/cartoRasterTile.js +3 -0
  71. package/dist/workers/cartoSpatialTile.js +3 -0
  72. package/dist/workers/cartoVectorTile.js +3 -0
  73. package/dist.min.js +28 -42
  74. package/package.json +21 -14
  75. package/src/api/fetch-map.ts +1 -1
  76. package/src/api/query.ts +1 -1
  77. package/src/index.ts +4 -4
  78. package/src/layers/spatial-index-tile-layer.ts +3 -2
  79. package/src/sources/boundary-query-source.ts +1 -1
  80. package/dist/es5/api/carto-api-error.js +0 -83
  81. package/dist/es5/api/carto-api-error.js.map +0 -1
  82. package/dist/es5/api/common.js +0 -25
  83. package/dist/es5/api/common.js.map +0 -1
  84. package/dist/es5/api/endpoints.js +0 -61
  85. package/dist/es5/api/endpoints.js.map +0 -1
  86. package/dist/es5/api/fetch-map.js +0 -566
  87. package/dist/es5/api/fetch-map.js.map +0 -1
  88. package/dist/es5/api/index.js +0 -30
  89. package/dist/es5/api/index.js.map +0 -1
  90. package/dist/es5/api/layer-map.js +0 -634
  91. package/dist/es5/api/layer-map.js.map +0 -1
  92. package/dist/es5/api/parse-map.js +0 -347
  93. package/dist/es5/api/parse-map.js.map +0 -1
  94. package/dist/es5/api/query.js +0 -81
  95. package/dist/es5/api/query.js.map +0 -1
  96. package/dist/es5/api/request-with-parameters.js +0 -150
  97. package/dist/es5/api/request-with-parameters.js.map +0 -1
  98. package/dist/es5/api/types.js +0 -21
  99. package/dist/es5/api/types.js.map +0 -1
  100. package/dist/es5/basemap.js +0 -17
  101. package/dist/es5/basemap.js.map +0 -1
  102. package/dist/es5/index.js +0 -205
  103. package/dist/es5/index.js.map +0 -1
  104. package/dist/es5/layers/h3-tile-layer.js +0 -128
  105. package/dist/es5/layers/h3-tile-layer.js.map +0 -1
  106. package/dist/es5/layers/h3-tileset-2d.js +0 -172
  107. package/dist/es5/layers/h3-tileset-2d.js.map +0 -1
  108. package/dist/es5/layers/point-label-layer.js +0 -263
  109. package/dist/es5/layers/point-label-layer.js.map +0 -1
  110. package/dist/es5/layers/quadbin-layer.js +0 -72
  111. package/dist/es5/layers/quadbin-layer.js.map +0 -1
  112. package/dist/es5/layers/quadbin-tile-layer.js +0 -103
  113. package/dist/es5/layers/quadbin-tile-layer.js.map +0 -1
  114. package/dist/es5/layers/quadbin-tileset-2d.js +0 -76
  115. package/dist/es5/layers/quadbin-tileset-2d.js.map +0 -1
  116. package/dist/es5/layers/quadbin-utils.js +0 -60
  117. package/dist/es5/layers/quadbin-utils.js.map +0 -1
  118. package/dist/es5/layers/raster-layer-vertex.glsl.js +0 -9
  119. package/dist/es5/layers/raster-layer-vertex.glsl.js.map +0 -1
  120. package/dist/es5/layers/raster-layer.js +0 -174
  121. package/dist/es5/layers/raster-layer.js.map +0 -1
  122. package/dist/es5/layers/raster-tile-layer.js +0 -91
  123. package/dist/es5/layers/raster-tile-layer.js.map +0 -1
  124. package/dist/es5/layers/schema/carto-properties-tile-loader.js +0 -60
  125. package/dist/es5/layers/schema/carto-properties-tile-loader.js.map +0 -1
  126. package/dist/es5/layers/schema/carto-properties-tile.js +0 -38
  127. package/dist/es5/layers/schema/carto-properties-tile.js.map +0 -1
  128. package/dist/es5/layers/schema/carto-raster-tile-loader.js +0 -89
  129. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +0 -1
  130. package/dist/es5/layers/schema/carto-raster-tile.js +0 -79
  131. package/dist/es5/layers/schema/carto-raster-tile.js.map +0 -1
  132. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +0 -81
  133. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  134. package/dist/es5/layers/schema/carto-spatial-tile.js +0 -80
  135. package/dist/es5/layers/schema/carto-spatial-tile.js.map +0 -1
  136. package/dist/es5/layers/schema/carto-tile.js +0 -269
  137. package/dist/es5/layers/schema/carto-tile.js.map +0 -1
  138. package/dist/es5/layers/schema/carto-vector-tile-loader.js +0 -120
  139. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +0 -1
  140. package/dist/es5/layers/schema/fast-pbf.js +0 -14
  141. package/dist/es5/layers/schema/fast-pbf.js.map +0 -1
  142. package/dist/es5/layers/schema/spatialjson-utils.js +0 -42
  143. package/dist/es5/layers/schema/spatialjson-utils.js.map +0 -1
  144. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  145. package/dist/es5/layers/schema/tile-loader-utils.js.map +0 -1
  146. package/dist/es5/layers/spatial-index-tile-layer.js +0 -126
  147. package/dist/es5/layers/spatial-index-tile-layer.js.map +0 -1
  148. package/dist/es5/layers/utils.js +0 -131
  149. package/dist/es5/layers/utils.js.map +0 -1
  150. package/dist/es5/layers/vector-tile-layer.js +0 -248
  151. package/dist/es5/layers/vector-tile-layer.js.map +0 -1
  152. package/dist/es5/sources/base-source.js +0 -128
  153. package/dist/es5/sources/base-source.js.map +0 -1
  154. package/dist/es5/sources/boundary-query-source.js +0 -51
  155. package/dist/es5/sources/boundary-query-source.js.map +0 -1
  156. package/dist/es5/sources/boundary-table-source.js +0 -51
  157. package/dist/es5/sources/boundary-table-source.js.map +0 -1
  158. package/dist/es5/sources/h3-query-source.js +0 -56
  159. package/dist/es5/sources/h3-query-source.js.map +0 -1
  160. package/dist/es5/sources/h3-table-source.js +0 -56
  161. package/dist/es5/sources/h3-table-source.js.map +0 -1
  162. package/dist/es5/sources/h3-tileset-source.js +0 -43
  163. package/dist/es5/sources/h3-tileset-source.js.map +0 -1
  164. package/dist/es5/sources/index.js +0 -110
  165. package/dist/es5/sources/index.js.map +0 -1
  166. package/dist/es5/sources/quadbin-query-source.js +0 -56
  167. package/dist/es5/sources/quadbin-query-source.js.map +0 -1
  168. package/dist/es5/sources/quadbin-table-source.js +0 -56
  169. package/dist/es5/sources/quadbin-table-source.js.map +0 -1
  170. package/dist/es5/sources/quadbin-tileset-source.js +0 -43
  171. package/dist/es5/sources/quadbin-tileset-source.js.map +0 -1
  172. package/dist/es5/sources/raster-source.js +0 -43
  173. package/dist/es5/sources/raster-source.js.map +0 -1
  174. package/dist/es5/sources/types.js +0 -2
  175. package/dist/es5/sources/types.js.map +0 -1
  176. package/dist/es5/sources/vector-query-source.js +0 -51
  177. package/dist/es5/sources/vector-query-source.js.map +0 -1
  178. package/dist/es5/sources/vector-table-source.js +0 -51
  179. package/dist/es5/sources/vector-table-source.js.map +0 -1
  180. package/dist/es5/sources/vector-tileset-source.js +0 -43
  181. package/dist/es5/sources/vector-tileset-source.js.map +0 -1
  182. package/dist/es5/style/color-bins-style.js +0 -37
  183. package/dist/es5/style/color-bins-style.js.map +0 -1
  184. package/dist/es5/style/color-categories-style.js +0 -65
  185. package/dist/es5/style/color-categories-style.js.map +0 -1
  186. package/dist/es5/style/color-continuous-style.js +0 -37
  187. package/dist/es5/style/color-continuous-style.js.map +0 -1
  188. package/dist/es5/style/palette.js +0 -81
  189. package/dist/es5/style/palette.js.map +0 -1
  190. package/dist/es5/style/utils.js +0 -28
  191. package/dist/es5/style/utils.js.map +0 -1
  192. package/dist/es5/utils.js +0 -65
  193. package/dist/es5/utils.js.map +0 -1
  194. package/dist/es5/workers/cartoRasterTile.js +0 -10
  195. package/dist/es5/workers/cartoRasterTile.js.map +0 -1
  196. package/dist/es5/workers/cartoSpatialTile.js +0 -10
  197. package/dist/es5/workers/cartoSpatialTile.js.map +0 -1
  198. package/dist/es5/workers/cartoVectorTile.js +0 -10
  199. package/dist/es5/workers/cartoVectorTile.js.map +0 -1
  200. package/dist/esm/api/carto-api-error.js +0 -46
  201. package/dist/esm/api/carto-api-error.js.map +0 -1
  202. package/dist/esm/api/common.js.map +0 -1
  203. package/dist/esm/api/endpoints.js +0 -41
  204. package/dist/esm/api/endpoints.js.map +0 -1
  205. package/dist/esm/api/fetch-map.js +0 -298
  206. package/dist/esm/api/fetch-map.js.map +0 -1
  207. package/dist/esm/api/index.js +0 -4
  208. package/dist/esm/api/index.js.map +0 -1
  209. package/dist/esm/api/layer-map.js +0 -520
  210. package/dist/esm/api/layer-map.js.map +0 -1
  211. package/dist/esm/api/parse-map.js +0 -343
  212. package/dist/esm/api/parse-map.js.map +0 -1
  213. package/dist/esm/api/query.js +0 -40
  214. package/dist/esm/api/query.js.map +0 -1
  215. package/dist/esm/api/request-with-parameters.js +0 -82
  216. package/dist/esm/api/request-with-parameters.js.map +0 -1
  217. package/dist/esm/api/types.js +0 -14
  218. package/dist/esm/api/types.js.map +0 -1
  219. package/dist/esm/basemap.js +0 -10
  220. package/dist/esm/basemap.js.map +0 -1
  221. package/dist/esm/index.js +0 -35
  222. package/dist/esm/index.js.map +0 -1
  223. package/dist/esm/layers/h3-tile-layer.js +0 -77
  224. package/dist/esm/layers/h3-tile-layer.js.map +0 -1
  225. package/dist/esm/layers/h3-tileset-2d.js +0 -119
  226. package/dist/esm/layers/h3-tileset-2d.js.map +0 -1
  227. package/dist/esm/layers/point-label-layer.js +0 -194
  228. package/dist/esm/layers/point-label-layer.js.map +0 -1
  229. package/dist/esm/layers/quadbin-layer.js +0 -31
  230. package/dist/esm/layers/quadbin-layer.js.map +0 -1
  231. package/dist/esm/layers/quadbin-tile-layer.js +0 -51
  232. package/dist/esm/layers/quadbin-tile-layer.js.map +0 -1
  233. package/dist/esm/layers/quadbin-tileset-2d.js +0 -39
  234. package/dist/esm/layers/quadbin-tileset-2d.js.map +0 -1
  235. package/dist/esm/layers/quadbin-utils.js +0 -23
  236. package/dist/esm/layers/quadbin-utils.js.map +0 -1
  237. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +0 -1
  238. package/dist/esm/layers/raster-layer.js +0 -108
  239. package/dist/esm/layers/raster-layer.js.map +0 -1
  240. package/dist/esm/layers/raster-tile-layer.js +0 -48
  241. package/dist/esm/layers/raster-tile-layer.js.map +0 -1
  242. package/dist/esm/layers/schema/carto-properties-tile-loader.js +0 -23
  243. package/dist/esm/layers/schema/carto-properties-tile-loader.js.map +0 -1
  244. package/dist/esm/layers/schema/carto-properties-tile.js +0 -18
  245. package/dist/esm/layers/schema/carto-properties-tile.js.map +0 -1
  246. package/dist/esm/layers/schema/carto-raster-tile-loader.js +0 -54
  247. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +0 -1
  248. package/dist/esm/layers/schema/carto-raster-tile.js +0 -51
  249. package/dist/esm/layers/schema/carto-raster-tile.js.map +0 -1
  250. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +0 -44
  251. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  252. package/dist/esm/layers/schema/carto-spatial-tile.js +0 -47
  253. package/dist/esm/layers/schema/carto-spatial-tile.js.map +0 -1
  254. package/dist/esm/layers/schema/carto-tile.js +0 -197
  255. package/dist/esm/layers/schema/carto-tile.js.map +0 -1
  256. package/dist/esm/layers/schema/carto-vector-tile-loader.js +0 -82
  257. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +0 -1
  258. package/dist/esm/layers/schema/fast-pbf.js +0 -7
  259. package/dist/esm/layers/schema/fast-pbf.js.map +0 -1
  260. package/dist/esm/layers/schema/spatialjson-utils.js +0 -27
  261. package/dist/esm/layers/schema/spatialjson-utils.js.map +0 -1
  262. package/dist/esm/layers/schema/tile-loader-utils.js +0 -7
  263. package/dist/esm/layers/schema/tile-loader-utils.js.map +0 -1
  264. package/dist/esm/layers/spatial-index-tile-layer.js +0 -86
  265. package/dist/esm/layers/spatial-index-tile-layer.js.map +0 -1
  266. package/dist/esm/layers/utils.js +0 -85
  267. package/dist/esm/layers/utils.js.map +0 -1
  268. package/dist/esm/layers/vector-tile-layer.js +0 -143
  269. package/dist/esm/layers/vector-tile-layer.js.map +0 -1
  270. package/dist/esm/sources/base-source.js +0 -72
  271. package/dist/esm/sources/base-source.js.map +0 -1
  272. package/dist/esm/sources/boundary-query-source.js +0 -21
  273. package/dist/esm/sources/boundary-query-source.js.map +0 -1
  274. package/dist/esm/sources/boundary-table-source.js +0 -21
  275. package/dist/esm/sources/boundary-table-source.js.map +0 -1
  276. package/dist/esm/sources/h3-query-source.js +0 -27
  277. package/dist/esm/sources/h3-query-source.js.map +0 -1
  278. package/dist/esm/sources/h3-table-source.js +0 -27
  279. package/dist/esm/sources/h3-table-source.js.map +0 -1
  280. package/dist/esm/sources/h3-tileset-source.js +0 -11
  281. package/dist/esm/sources/h3-tileset-source.js.map +0 -1
  282. package/dist/esm/sources/index.js +0 -14
  283. package/dist/esm/sources/index.js.map +0 -1
  284. package/dist/esm/sources/quadbin-query-source.js +0 -27
  285. package/dist/esm/sources/quadbin-query-source.js.map +0 -1
  286. package/dist/esm/sources/quadbin-table-source.js +0 -27
  287. package/dist/esm/sources/quadbin-table-source.js.map +0 -1
  288. package/dist/esm/sources/quadbin-tileset-source.js +0 -11
  289. package/dist/esm/sources/quadbin-tileset-source.js.map +0 -1
  290. package/dist/esm/sources/raster-source.js +0 -11
  291. package/dist/esm/sources/raster-source.js.map +0 -1
  292. package/dist/esm/sources/types.js +0 -2
  293. package/dist/esm/sources/types.js.map +0 -1
  294. package/dist/esm/sources/vector-query-source.js +0 -20
  295. package/dist/esm/sources/vector-query-source.js.map +0 -1
  296. package/dist/esm/sources/vector-table-source.js +0 -20
  297. package/dist/esm/sources/vector-table-source.js.map +0 -1
  298. package/dist/esm/sources/vector-tileset-source.js +0 -11
  299. package/dist/esm/sources/vector-tileset-source.js.map +0 -1
  300. package/dist/esm/style/color-bins-style.js +0 -19
  301. package/dist/esm/style/color-bins-style.js.map +0 -1
  302. package/dist/esm/style/color-categories-style.js +0 -24
  303. package/dist/esm/style/color-categories-style.js.map +0 -1
  304. package/dist/esm/style/color-continuous-style.js +0 -19
  305. package/dist/esm/style/color-continuous-style.js.map +0 -1
  306. package/dist/esm/style/palette.js +0 -51
  307. package/dist/esm/style/palette.js.map +0 -1
  308. package/dist/esm/style/utils.js +0 -15
  309. package/dist/esm/style/utils.js.map +0 -1
  310. package/dist/esm/utils.js +0 -51
  311. package/dist/esm/utils.js.map +0 -1
  312. package/dist/esm/workers/cartoRasterTile.js +0 -4
  313. package/dist/esm/workers/cartoRasterTile.js.map +0 -1
  314. package/dist/esm/workers/cartoSpatialTile.js +0 -4
  315. package/dist/esm/workers/cartoSpatialTile.js.map +0 -1
  316. package/dist/esm/workers/cartoVectorTile.js +0 -4
  317. package/dist/esm/workers/cartoVectorTile.js.map +0 -1
  318. package/typed/index.d.ts +0 -37
  319. /package/{typed → dist}/api/carto-api-error.d.ts +0 -0
  320. /package/{typed → dist}/api/carto-api-error.d.ts.map +0 -0
  321. /package/{typed → dist}/api/common.d.ts +0 -0
  322. /package/{typed → dist}/api/common.d.ts.map +0 -0
  323. /package/{typed → dist}/api/endpoints.d.ts +0 -0
  324. /package/{typed → dist}/api/endpoints.d.ts.map +0 -0
  325. /package/{typed → dist}/api/fetch-map.d.ts +0 -0
  326. /package/{typed → dist}/api/fetch-map.d.ts.map +0 -0
  327. /package/{typed → dist}/api/index.d.ts +0 -0
  328. /package/{typed → dist}/api/index.d.ts.map +0 -0
  329. /package/{typed → dist}/api/layer-map.d.ts +0 -0
  330. /package/{typed → dist}/api/layer-map.d.ts.map +0 -0
  331. /package/{typed → dist}/api/parse-map.d.ts +0 -0
  332. /package/{typed → dist}/api/parse-map.d.ts.map +0 -0
  333. /package/{typed → dist}/api/query.d.ts +0 -0
  334. /package/{typed → dist}/api/query.d.ts.map +0 -0
  335. /package/{typed → dist}/api/request-with-parameters.d.ts +0 -0
  336. /package/{typed → dist}/api/request-with-parameters.d.ts.map +0 -0
  337. /package/{typed → dist}/api/types.d.ts +0 -0
  338. /package/{typed → dist}/api/types.d.ts.map +0 -0
  339. /package/{typed → dist}/basemap.d.ts +0 -0
  340. /package/{typed → dist}/basemap.d.ts.map +0 -0
  341. /package/{typed → dist}/layers/h3-tile-layer.d.ts +0 -0
  342. /package/{typed → dist}/layers/h3-tile-layer.d.ts.map +0 -0
  343. /package/{typed → dist}/layers/h3-tileset-2d.d.ts +0 -0
  344. /package/{typed → dist}/layers/h3-tileset-2d.d.ts.map +0 -0
  345. /package/{typed → dist}/layers/point-label-layer.d.ts +0 -0
  346. /package/{typed → dist}/layers/point-label-layer.d.ts.map +0 -0
  347. /package/{typed → dist}/layers/quadbin-layer.d.ts +0 -0
  348. /package/{typed → dist}/layers/quadbin-layer.d.ts.map +0 -0
  349. /package/{typed → dist}/layers/quadbin-tile-layer.d.ts +0 -0
  350. /package/{typed → dist}/layers/quadbin-tile-layer.d.ts.map +0 -0
  351. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts +0 -0
  352. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts.map +0 -0
  353. /package/{typed → dist}/layers/quadbin-utils.d.ts +0 -0
  354. /package/{typed → dist}/layers/quadbin-utils.d.ts.map +0 -0
  355. /package/{typed → dist}/layers/raster-layer-vertex.glsl.d.ts +0 -0
  356. /package/{typed → dist}/layers/raster-layer-vertex.glsl.d.ts.map +0 -0
  357. /package/{typed → dist}/layers/raster-layer.d.ts +0 -0
  358. /package/{typed → dist}/layers/raster-layer.d.ts.map +0 -0
  359. /package/{typed → dist}/layers/raster-tile-layer.d.ts +0 -0
  360. /package/{typed → dist}/layers/raster-tile-layer.d.ts.map +0 -0
  361. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts +0 -0
  362. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts.map +0 -0
  363. /package/{typed → dist}/layers/schema/carto-properties-tile.d.ts +0 -0
  364. /package/{typed → dist}/layers/schema/carto-properties-tile.d.ts.map +0 -0
  365. /package/{typed → dist}/layers/schema/carto-raster-tile-loader.d.ts +0 -0
  366. /package/{typed → dist}/layers/schema/carto-raster-tile-loader.d.ts.map +0 -0
  367. /package/{typed → dist}/layers/schema/carto-raster-tile.d.ts +0 -0
  368. /package/{typed → dist}/layers/schema/carto-raster-tile.d.ts.map +0 -0
  369. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts +0 -0
  370. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts.map +0 -0
  371. /package/{typed → dist}/layers/schema/carto-spatial-tile.d.ts +0 -0
  372. /package/{typed → dist}/layers/schema/carto-spatial-tile.d.ts.map +0 -0
  373. /package/{typed → dist}/layers/schema/carto-tile.d.ts +0 -0
  374. /package/{typed → dist}/layers/schema/carto-tile.d.ts.map +0 -0
  375. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts +0 -0
  376. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts.map +0 -0
  377. /package/{typed → dist}/layers/schema/fast-pbf.d.ts +0 -0
  378. /package/{typed → dist}/layers/schema/fast-pbf.d.ts.map +0 -0
  379. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts +0 -0
  380. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts.map +0 -0
  381. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts +0 -0
  382. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts.map +0 -0
  383. /package/{typed → dist}/layers/utils.d.ts +0 -0
  384. /package/{typed → dist}/layers/utils.d.ts.map +0 -0
  385. /package/{typed → dist}/layers/vector-tile-layer.d.ts +0 -0
  386. /package/{typed → dist}/layers/vector-tile-layer.d.ts.map +0 -0
  387. /package/{typed → dist}/sources/base-source.d.ts +0 -0
  388. /package/{typed → dist}/sources/base-source.d.ts.map +0 -0
  389. /package/{typed → dist}/sources/boundary-table-source.d.ts +0 -0
  390. /package/{typed → dist}/sources/boundary-table-source.d.ts.map +0 -0
  391. /package/{typed → dist}/sources/h3-query-source.d.ts +0 -0
  392. /package/{typed → dist}/sources/h3-query-source.d.ts.map +0 -0
  393. /package/{typed → dist}/sources/h3-table-source.d.ts +0 -0
  394. /package/{typed → dist}/sources/h3-table-source.d.ts.map +0 -0
  395. /package/{typed → dist}/sources/h3-tileset-source.d.ts +0 -0
  396. /package/{typed → dist}/sources/h3-tileset-source.d.ts.map +0 -0
  397. /package/{typed → dist}/sources/index.d.ts +0 -0
  398. /package/{typed → dist}/sources/index.d.ts.map +0 -0
  399. /package/{typed → dist}/sources/quadbin-query-source.d.ts +0 -0
  400. /package/{typed → dist}/sources/quadbin-query-source.d.ts.map +0 -0
  401. /package/{typed → dist}/sources/quadbin-table-source.d.ts +0 -0
  402. /package/{typed → dist}/sources/quadbin-table-source.d.ts.map +0 -0
  403. /package/{typed → dist}/sources/quadbin-tileset-source.d.ts +0 -0
  404. /package/{typed → dist}/sources/quadbin-tileset-source.d.ts.map +0 -0
  405. /package/{typed → dist}/sources/raster-source.d.ts +0 -0
  406. /package/{typed → dist}/sources/raster-source.d.ts.map +0 -0
  407. /package/{typed → dist}/sources/types.d.ts +0 -0
  408. /package/{typed → dist}/sources/types.d.ts.map +0 -0
  409. /package/{typed → dist}/sources/vector-query-source.d.ts +0 -0
  410. /package/{typed → dist}/sources/vector-query-source.d.ts.map +0 -0
  411. /package/{typed → dist}/sources/vector-table-source.d.ts +0 -0
  412. /package/{typed → dist}/sources/vector-table-source.d.ts.map +0 -0
  413. /package/{typed → dist}/sources/vector-tileset-source.d.ts +0 -0
  414. /package/{typed → dist}/sources/vector-tileset-source.d.ts.map +0 -0
  415. /package/{typed → dist}/style/color-bins-style.d.ts +0 -0
  416. /package/{typed → dist}/style/color-bins-style.d.ts.map +0 -0
  417. /package/{typed → dist}/style/color-categories-style.d.ts +0 -0
  418. /package/{typed → dist}/style/color-categories-style.d.ts.map +0 -0
  419. /package/{typed → dist}/style/color-continuous-style.d.ts +0 -0
  420. /package/{typed → dist}/style/color-continuous-style.d.ts.map +0 -0
  421. /package/{typed → dist}/style/palette.d.ts +0 -0
  422. /package/{typed → dist}/style/palette.d.ts.map +0 -0
  423. /package/{typed → dist}/style/utils.d.ts +0 -0
  424. /package/{typed → dist}/style/utils.d.ts.map +0 -0
  425. /package/{typed → dist}/utils.d.ts +0 -0
  426. /package/{typed → dist}/utils.d.ts.map +0 -0
  427. /package/{typed → dist}/workers/cartoRasterTile.d.ts +0 -0
  428. /package/{typed → dist}/workers/cartoRasterTile.d.ts.map +0 -0
  429. /package/{typed → dist}/workers/cartoSpatialTile.d.ts +0 -0
  430. /package/{typed → dist}/workers/cartoSpatialTile.d.ts.map +0 -0
  431. /package/{typed → dist}/workers/cartoVectorTile.d.ts +0 -0
  432. /package/{typed → dist}/workers/cartoVectorTile.d.ts.map +0 -0
@@ -0,0 +1,38 @@
1
+ import { readPackedTypedArray } from "./fast-pbf.js";
2
+ import { NumericPropKeyValueReader, PropertiesReader } from "./carto-tile.js";
3
+ // Indices =====================================
4
+ export class IndicesReader {
5
+ static read(pbf, end) {
6
+ return pbf.readFields(IndicesReader._readField, { value: [] }, end);
7
+ }
8
+ static _readField(tag, obj, pbf) {
9
+ if (tag === 1)
10
+ readPackedTypedArray(BigUint64Array, pbf, obj);
11
+ }
12
+ }
13
+ class CellsReader {
14
+ static read(pbf, end) {
15
+ return pbf.readFields(CellsReader._readField, { indices: null, properties: [], numericProps: {} }, end);
16
+ }
17
+ static _readField(tag, obj, pbf) {
18
+ if (tag === 1)
19
+ obj.indices = IndicesReader.read(pbf, pbf.readVarint() + pbf.pos);
20
+ else if (tag === 2)
21
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
22
+ else if (tag === 3) {
23
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
24
+ obj.numericProps[entry.key] = entry.value;
25
+ }
26
+ }
27
+ }
28
+ export class TileReader {
29
+ static read(pbf, end) {
30
+ return pbf.readFields(TileReader._readField, { scheme: 0, cells: null }, end);
31
+ }
32
+ static _readField(tag, obj, pbf) {
33
+ if (tag === 1)
34
+ obj.scheme = pbf.readVarint();
35
+ else if (tag === 2)
36
+ obj.cells = CellsReader.read(pbf, pbf.readVarint() + pbf.pos);
37
+ }
38
+ }
@@ -0,0 +1,187 @@
1
+ import { readPackedTypedArray } from "./fast-pbf.js";
2
+ class KeyValueObjectReader {
3
+ static read(pbf, end) {
4
+ return pbf.readFields(KeyValueObjectReader._readField, { key: '', value: null }, end);
5
+ }
6
+ static _readField(tag, obj, pbf) {
7
+ if (tag === 1)
8
+ obj.key = pbf.readString();
9
+ else if (tag === 2)
10
+ obj.value = pbf.readString();
11
+ }
12
+ }
13
+ // Properties ========================================
14
+ export class PropertiesReader {
15
+ static read(pbf, end) {
16
+ return pbf.readFields(PropertiesReader._readField, {}, end);
17
+ }
18
+ static _readField(tag, obj, pbf) {
19
+ if (tag === 1) {
20
+ const { key, value } = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);
21
+ obj[key] = value;
22
+ }
23
+ }
24
+ }
25
+ class DoublesReader {
26
+ static read(pbf, end) {
27
+ const { value, size } = pbf.readFields(DoublesReader._readField, { value: [], size: 0 }, end);
28
+ return { value: new Float32Array(value), size };
29
+ }
30
+ static _readField(tag, obj, pbf) {
31
+ if (tag === 1)
32
+ readPackedTypedArray(Float64Array, pbf, obj);
33
+ else if (tag === 2)
34
+ obj.size = pbf.readVarint(true);
35
+ }
36
+ }
37
+ class IntsReader {
38
+ static read(pbf, end) {
39
+ const { value, size } = pbf.readFields(IntsReader._readField, { value: [], size: 0 }, end);
40
+ return { value: new Uint32Array(value), size };
41
+ }
42
+ static _readField(tag, obj, pbf) {
43
+ if (tag === 1)
44
+ pbf.readPackedVarint(obj.value);
45
+ else if (tag === 2)
46
+ obj.size = pbf.readVarint(true);
47
+ }
48
+ }
49
+ class FieldsReader {
50
+ static read(pbf, end) {
51
+ return pbf.readFields(FieldsReader._readField, { id: 0 }, end);
52
+ }
53
+ static _readField(tag, obj, pbf) {
54
+ if (tag === 1)
55
+ obj.id = pbf.readVarint();
56
+ }
57
+ }
58
+ class NumericPropReader {
59
+ static read(pbf, end) {
60
+ return pbf.readFields(NumericPropReader._readField, { value: [] }, end);
61
+ }
62
+ static _readField(tag, obj, pbf) {
63
+ if (tag === 1)
64
+ readPackedTypedArray(Float64Array, pbf, obj);
65
+ }
66
+ }
67
+ export class NumericPropKeyValueReader {
68
+ static read(pbf, end) {
69
+ return pbf.readFields(NumericPropKeyValueReader._readField, { key: '', value: null }, end);
70
+ }
71
+ static _readField(tag, obj, pbf) {
72
+ if (tag === 1)
73
+ obj.key = pbf.readString();
74
+ else if (tag === 2)
75
+ obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);
76
+ }
77
+ }
78
+ class PointsReader {
79
+ static read(pbf, end) {
80
+ return pbf.readFields(PointsReader._readField, {
81
+ positions: null,
82
+ globalFeatureIds: null,
83
+ featureIds: null,
84
+ properties: [],
85
+ numericProps: {},
86
+ fields: []
87
+ }, end);
88
+ }
89
+ static _readField(tag, obj, pbf) {
90
+ if (tag === 1)
91
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
92
+ else if (tag === 2)
93
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
94
+ else if (tag === 3)
95
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
96
+ else if (tag === 4)
97
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
98
+ else if (tag === 5) {
99
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
100
+ obj.numericProps[entry.key] = entry.value;
101
+ }
102
+ else if (tag === 6)
103
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
104
+ }
105
+ }
106
+ // Lines ========================================
107
+ class LinesReader {
108
+ static read(pbf, end) {
109
+ return pbf.readFields(LinesReader._readField, {
110
+ positions: null,
111
+ pathIndices: null,
112
+ globalFeatureIds: null,
113
+ featureIds: null,
114
+ properties: [],
115
+ numericProps: {},
116
+ fields: []
117
+ }, end);
118
+ }
119
+ static _readField(tag, obj, pbf) {
120
+ if (tag === 1)
121
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
122
+ else if (tag === 2)
123
+ obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
124
+ else if (tag === 3)
125
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
126
+ else if (tag === 4)
127
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
128
+ else if (tag === 5)
129
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
130
+ else if (tag === 6) {
131
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
132
+ obj.numericProps[entry.key] = entry.value;
133
+ }
134
+ else if (tag === 7)
135
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
136
+ }
137
+ }
138
+ class PolygonsReader {
139
+ static read(pbf, end) {
140
+ return pbf.readFields(PolygonsReader._readField, {
141
+ positions: null,
142
+ polygonIndices: null,
143
+ globalFeatureIds: null,
144
+ featureIds: null,
145
+ primitivePolygonIndices: null,
146
+ triangles: null,
147
+ properties: [],
148
+ numericProps: {},
149
+ fields: []
150
+ }, end);
151
+ }
152
+ static _readField(tag, obj, pbf) {
153
+ if (tag === 1)
154
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
155
+ else if (tag === 2)
156
+ obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
157
+ else if (tag === 3)
158
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
159
+ else if (tag === 4)
160
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
161
+ else if (tag === 5)
162
+ obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
163
+ else if (tag === 6)
164
+ obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
165
+ else if (tag === 7)
166
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
167
+ else if (tag === 8) {
168
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
169
+ obj.numericProps[entry.key] = entry.value;
170
+ }
171
+ else if (tag === 9)
172
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
173
+ }
174
+ }
175
+ export class TileReader {
176
+ static read(pbf, end) {
177
+ return pbf.readFields(TileReader._readField, { points: null, lines: null, polygons: null }, end);
178
+ }
179
+ static _readField(tag, obj, pbf) {
180
+ if (tag === 1)
181
+ obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);
182
+ else if (tag === 2)
183
+ obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);
184
+ else if (tag === 3)
185
+ obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);
186
+ }
187
+ }
@@ -0,0 +1,65 @@
1
+ import earcut from 'earcut';
2
+ import { TileReader } from "./carto-tile.js";
3
+ import { parsePbf } from "./tile-loader-utils.js";
4
+ import { getWorkerUrl } from "../../utils.js";
5
+ const VERSION = typeof "9.0.0-beta.2" !== 'undefined' ? "9.0.0-beta.2" : 'latest';
6
+ const id = 'cartoVectorTile';
7
+ const DEFAULT_OPTIONS = {
8
+ cartoVectorTile: {
9
+ workerUrl: getWorkerUrl(id, VERSION)
10
+ }
11
+ };
12
+ const CartoVectorTileLoader = {
13
+ name: 'CARTO Vector Tile',
14
+ version: VERSION,
15
+ id,
16
+ module: 'carto',
17
+ extensions: ['pbf'],
18
+ mimeTypes: ['application/vnd.carto-vector-tile'],
19
+ category: 'geometry',
20
+ parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
21
+ parseSync: parseCartoVectorTile,
22
+ worker: true,
23
+ options: DEFAULT_OPTIONS
24
+ };
25
+ function triangulatePolygon(polygons, target, { startPosition, endPosition, indices }) {
26
+ const coordLength = polygons.positions.size;
27
+ const start = startPosition * coordLength;
28
+ const end = endPosition * coordLength;
29
+ // Extract positions and holes for just this polygon
30
+ const polygonPositions = polygons.positions.value.subarray(start, end);
31
+ // Holes are referenced relative to outer polygon
32
+ const holes = indices.slice(1).map((n) => n - startPosition);
33
+ // Compute triangulation
34
+ const triangles = earcut(polygonPositions, holes, coordLength);
35
+ // Indices returned by triangulation are relative to start
36
+ // of polygon, so we need to offset
37
+ for (let t = 0, tl = triangles.length; t < tl; ++t) {
38
+ target.push(startPosition + triangles[t]);
39
+ }
40
+ }
41
+ function triangulate(polygons) {
42
+ const { polygonIndices, primitivePolygonIndices } = polygons;
43
+ const triangles = [];
44
+ let rangeStart = 0;
45
+ for (let i = 0; i < polygonIndices.value.length - 1; i++) {
46
+ const startPosition = polygonIndices.value[i];
47
+ const endPosition = polygonIndices.value[i + 1];
48
+ // Extract hole indices between start & end position
49
+ const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
50
+ const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
51
+ rangeStart = rangeEnd;
52
+ triangulatePolygon(polygons, triangles, { startPosition, endPosition, indices });
53
+ }
54
+ polygons.triangles = { value: new Uint32Array(triangles), size: 1 };
55
+ }
56
+ function parseCartoVectorTile(arrayBuffer, options) {
57
+ if (!arrayBuffer)
58
+ return null;
59
+ const tile = parsePbf(arrayBuffer, TileReader);
60
+ if (tile.polygons && !tile.polygons.triangles) {
61
+ triangulate(tile.polygons);
62
+ }
63
+ return tile;
64
+ }
65
+ export default CartoVectorTileLoader;
@@ -0,0 +1,7 @@
1
+ // Optimized (100X speed improvement) reading function for binary data
2
+ export function readPackedTypedArray(TypedArray, pbf, obj) {
3
+ const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
4
+ obj.value = new TypedArray(pbf.buf.buffer.slice(pbf.pos, end));
5
+ pbf.pos = end;
6
+ return obj.value;
7
+ }
@@ -0,0 +1,15 @@
1
+ import { bigIntToHex } from 'quadbin';
2
+ export function binaryToSpatialjson(binary) {
3
+ const { cells, scheme } = binary;
4
+ const count = cells.indices.value.length;
5
+ const spatial = [];
6
+ for (let i = 0; i < count; i++) {
7
+ const id = scheme === 'h3' ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];
8
+ const properties = { ...cells.properties[i] };
9
+ for (const key of Object.keys(cells.numericProps)) {
10
+ properties[key] = cells.numericProps[key].value[i];
11
+ }
12
+ spatial.push({ id, properties });
13
+ }
14
+ return spatial;
15
+ }
@@ -0,0 +1,6 @@
1
+ import Protobuf from 'pbf';
2
+ export function parsePbf(buffer, TileReader) {
3
+ const pbf = new Protobuf(buffer);
4
+ const tile = TileReader.read(pbf);
5
+ return tile;
6
+ }
@@ -9,7 +9,7 @@ export default class SpatialIndexTileLayer<DataT = any, ExtraProps extends {} =
9
9
  static layerName: string;
10
10
  static defaultProps: DefaultProps<SpatialIndexTileLayerProps<unknown>>;
11
11
  state: TileLayer<DataT>['state'] & {
12
- hoveredFeatureId: number | null;
12
+ hoveredFeatureId: BigInt | number | null;
13
13
  highlightColor: number[];
14
14
  };
15
15
  protected _updateAutoHighlight(info: PickingInfo): void;
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-index-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/spatial-index-tile-layer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAE,aAAa,IAAI,YAAY,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAQ7F,yDAAyD;AACzD,MAAM,MAAM,0BAA0B,CAAC,KAAK,GAAG,OAAO,IAAI,2BAA2B,GACnF,cAAc,CAAC,KAAK,CAAC,CAAC;AAExB,iDAAiD;AACjD,KAAK,2BAA2B,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,qBAAqB,CACxC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,SAA2B;IAC3C,MAAM,CAAC,YAAY,oDAAgB;IAEnC,KAAK,EAAG,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG;QAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IAEF,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAsBvD,sBAAsB,CAAC,IAAI,EAAE,YAAY;;;;IAOzC,yBAAyB,CAAC,IAAI,EAAE,YAAY;IAiB5C,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAe9D"}
1
+ {"version":3,"file":"spatial-index-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/spatial-index-tile-layer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAE,aAAa,IAAI,YAAY,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAQ7F,yDAAyD;AACzD,MAAM,MAAM,0BAA0B,CAAC,KAAK,GAAG,OAAO,IAAI,2BAA2B,GACnF,cAAc,CAAC,KAAK,CAAC,CAAC;AAExB,iDAAiD;AACjD,KAAK,2BAA2B,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,qBAAqB,CACxC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,SAA2B;IAC3C,MAAM,CAAC,YAAY,oDAAgB;IAEnC,KAAK,EAAG,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG;QAClC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QACzC,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IAEF,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAsBvD,sBAAsB,CAAC,IAAI,EAAE,YAAY;;;;IAOzC,yBAAyB,CAAC,IAAI,EAAE,YAAY;IAiB5C,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAgB9D"}
@@ -0,0 +1,64 @@
1
+ import { registerLoaders } from '@loaders.gl/core';
2
+ import CartoRasterTileLoader from "./schema/carto-raster-tile-loader.js";
3
+ import CartoSpatialTileLoader from "./schema/carto-spatial-tile-loader.js";
4
+ registerLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);
5
+ import { TileLayer } from '@deck.gl/geo-layers';
6
+ function isFeatureIdDefined(value) {
7
+ return value !== undefined && value !== null && value !== '';
8
+ }
9
+ const defaultProps = {};
10
+ export default class SpatialIndexTileLayer extends TileLayer {
11
+ static { this.layerName = 'SpatialIndexTileLayer'; }
12
+ static { this.defaultProps = defaultProps; }
13
+ _updateAutoHighlight(info) {
14
+ const { hoveredFeatureId } = this.state;
15
+ const hoveredFeature = info.object;
16
+ let newHoveredFeatureId = null;
17
+ if (hoveredFeature) {
18
+ newHoveredFeatureId = hoveredFeature.id;
19
+ }
20
+ if (hoveredFeatureId !== newHoveredFeatureId) {
21
+ let { highlightColor } = this.props;
22
+ if (typeof highlightColor === 'function') {
23
+ highlightColor = highlightColor(info);
24
+ }
25
+ this.setState({
26
+ highlightColor,
27
+ hoveredFeatureId: newHoveredFeatureId
28
+ });
29
+ }
30
+ }
31
+ getSubLayerPropsByTile(tile) {
32
+ return {
33
+ highlightedObjectIndex: this.getHighlightedObjectIndex(tile),
34
+ highlightColor: this.state.highlightColor
35
+ };
36
+ }
37
+ getHighlightedObjectIndex(tile) {
38
+ const { hoveredFeatureId } = this.state;
39
+ const data = tile.content;
40
+ const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);
41
+ if (!isFeatureIdPresent ||
42
+ !Array.isArray(data) ||
43
+ // Quick check for whether id is within tile. data.findIndex is expensive
44
+ !this._featureInTile(tile, hoveredFeatureId)) {
45
+ return -1;
46
+ }
47
+ return data.findIndex(feature => feature.id === hoveredFeatureId);
48
+ }
49
+ _featureInTile(tile, featureId) {
50
+ // TODO: Tile2DHeader index should be generic for H3TileIndex or QuadbinTileIndex
51
+ const tileset = this.state.tileset;
52
+ const tileZoom = tileset.getTileZoom(tile.index);
53
+ // @ts-ignore
54
+ const KEY = tile.index.q ? 'q' : 'i';
55
+ // TODO - Tileset2D methods expect tile index in the shape of {x, y, z}
56
+ let featureIndex = { [KEY]: featureId };
57
+ let featureZoom = tileset.getTileZoom(featureIndex);
58
+ while (!(featureZoom <= tileZoom)) {
59
+ featureIndex = tileset.getParentIndex(featureIndex);
60
+ featureZoom = tileset.getTileZoom(featureIndex);
61
+ }
62
+ return featureIndex[KEY] === tile.index[KEY];
63
+ }
64
+ }
@@ -0,0 +1,74 @@
1
+ import { log } from '@deck.gl/core';
2
+ import { _deepEqual as deepEqual } from '@deck.gl/core';
3
+ /**
4
+ * Adds access token to Authorization header in loadOptions
5
+ */
6
+ export function injectAccessToken(loadOptions, accessToken) {
7
+ if (!loadOptions?.fetch?.headers?.Authorization) {
8
+ loadOptions.fetch = {
9
+ ...loadOptions.fetch,
10
+ headers: { ...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}` }
11
+ };
12
+ }
13
+ }
14
+ export function mergeBoundaryData(geometry, properties) {
15
+ const mapping = {};
16
+ for (const { geoid, ...rest } of properties.properties) {
17
+ if (geoid in mapping) {
18
+ log.warn('Duplicate geoid key in boundary mapping, using first occurance')();
19
+ }
20
+ else {
21
+ mapping[geoid] = rest;
22
+ }
23
+ }
24
+ for (const type of ['points', 'lines', 'polygons']) {
25
+ const geom = geometry[type];
26
+ if (geom.positions.value.length === 0) {
27
+ continue;
28
+ }
29
+ geom.properties = geom.properties.map(({ geoid }) => mapping[geoid]);
30
+ // numericProps need to be filled to match length of positions buffer
31
+ const { positions, globalFeatureIds } = geom;
32
+ let indices = null;
33
+ if (type === 'lines')
34
+ indices = geom.pathIndices.value;
35
+ if (type === 'polygons')
36
+ indices = geom.polygonIndices.value;
37
+ const length = positions.value.length / positions.size;
38
+ for (const key in properties.numericProps) {
39
+ const sourceProp = properties.numericProps[key].value;
40
+ const TypedArray = sourceProp.constructor;
41
+ const destProp = new TypedArray(length);
42
+ geom.numericProps[key] = { value: destProp, size: 1 };
43
+ if (!indices) {
44
+ for (let i = 0; i < length; i++) {
45
+ // points
46
+ const featureId = globalFeatureIds.value[i];
47
+ destProp[i] = sourceProp[featureId];
48
+ }
49
+ }
50
+ else {
51
+ // lines|polygons
52
+ for (let i = 0; i < indices.length - 1; i++) {
53
+ const startIndex = indices[i];
54
+ const endIndex = indices[i + 1];
55
+ const featureId = globalFeatureIds.value[startIndex];
56
+ destProp.fill(sourceProp[featureId], startIndex, endIndex);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ return geometry;
62
+ }
63
+ export const TilejsonPropType = {
64
+ type: 'object',
65
+ value: null,
66
+ validate: (value, propType) => (propType.optional && value === null) ||
67
+ (typeof value === 'object' &&
68
+ Array.isArray(value.tiles) &&
69
+ value.tiles.every(url => typeof url === 'string')),
70
+ equal: (value1, value2) => {
71
+ return deepEqual(value1, value2, 2);
72
+ },
73
+ async: true
74
+ };
@@ -0,0 +1,98 @@
1
+ import { registerLoaders } from '@loaders.gl/core';
2
+ import CartoPropertiesTileLoader from "./schema/carto-properties-tile-loader.js";
3
+ import CartoVectorTileLoader from "./schema/carto-vector-tile-loader.js";
4
+ registerLoaders([CartoPropertiesTileLoader, CartoVectorTileLoader]);
5
+ import { ClipExtension } from '@deck.gl/extensions';
6
+ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
7
+ import { GeoJsonLayer } from '@deck.gl/layers';
8
+ import { binaryToGeojson } from '@loaders.gl/gis';
9
+ import { TilejsonPropType, injectAccessToken, mergeBoundaryData } from "./utils.js";
10
+ const defaultProps = {
11
+ ...MVTLayer.defaultProps,
12
+ data: TilejsonPropType,
13
+ dataComparator: TilejsonPropType.equal
14
+ };
15
+ // TODO Perhaps we can't subclass MVTLayer and keep types. Better to subclass TileLayer instead?
16
+ // @ts-ignore
17
+ export default class VectorTileLayer extends MVTLayer {
18
+ static { this.layerName = 'VectorTileLayer'; }
19
+ static { this.defaultProps = defaultProps; }
20
+ initializeState() {
21
+ super.initializeState();
22
+ this.setState({ binary: true });
23
+ }
24
+ updateState(parameters) {
25
+ const { props } = parameters;
26
+ if (props.data) {
27
+ super.updateState(parameters);
28
+ const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
29
+ const mvt = formatTiles === 'mvt';
30
+ this.setState({ mvt });
31
+ }
32
+ }
33
+ getLoadOptions() {
34
+ const loadOptions = super.getLoadOptions() || {};
35
+ const tileJSON = this.props.data;
36
+ injectAccessToken(loadOptions, tileJSON.accessToken);
37
+ loadOptions.gis = { format: 'binary' }; // Use binary for MVT loading
38
+ return loadOptions;
39
+ }
40
+ async getTileData(tile) {
41
+ const tileJSON = this.props.data;
42
+ const { tiles, properties_tiles } = tileJSON;
43
+ const url = _getURLFromTemplate(tiles, tile);
44
+ if (!url) {
45
+ return Promise.reject('Invalid URL');
46
+ }
47
+ const loadOptions = this.getLoadOptions();
48
+ const { fetch } = this.props;
49
+ const { signal } = tile;
50
+ // Fetch geometry and attributes separately
51
+ const geometryFetch = fetch(url, { propName: 'data', layer: this, loadOptions, signal });
52
+ if (!properties_tiles) {
53
+ return await geometryFetch;
54
+ }
55
+ const propertiesUrl = _getURLFromTemplate(properties_tiles, tile);
56
+ if (!propertiesUrl) {
57
+ return Promise.reject('Invalid properties URL');
58
+ }
59
+ const attributesFetch = fetch(propertiesUrl, {
60
+ propName: 'data',
61
+ layer: this,
62
+ loadOptions,
63
+ signal
64
+ });
65
+ const [geometry, attributes] = await Promise.all([geometryFetch, attributesFetch]);
66
+ if (!geometry)
67
+ return null;
68
+ return attributes ? mergeBoundaryData(geometry, attributes) : geometry;
69
+ }
70
+ renderSubLayers(props) {
71
+ if (props.data === null) {
72
+ return null;
73
+ }
74
+ if (this.state.mvt) {
75
+ return super.renderSubLayers(props);
76
+ }
77
+ const tileBbox = props.tile.bbox;
78
+ const { west, south, east, north } = tileBbox;
79
+ const subLayerProps = {
80
+ ...props,
81
+ autoHighlight: false,
82
+ extensions: [new ClipExtension(), ...(props.extensions || [])],
83
+ clipBounds: [west, south, east, north]
84
+ };
85
+ const subLayer = new GeoJsonLayer(subLayerProps);
86
+ return subLayer;
87
+ }
88
+ getPickingInfo(params) {
89
+ const info = super.getPickingInfo(params);
90
+ if (this.state.binary && info.index !== -1) {
91
+ const { data } = params.sourceLayer.props;
92
+ info.object = binaryToGeojson(data, {
93
+ globalFeatureId: info.index
94
+ });
95
+ }
96
+ return info;
97
+ }
98
+ }
@@ -0,0 +1,52 @@
1
+ /* eslint-disable camelcase */
2
+ import { DEFAULT_API_BASE_URL, DEFAULT_CLIENT } from "../api/common.js";
3
+ import { buildSourceUrl } from "../api/endpoints.js";
4
+ import { requestWithParameters } from "../api/request-with-parameters.js";
5
+ export const SOURCE_DEFAULTS = {
6
+ apiBaseUrl: DEFAULT_API_BASE_URL,
7
+ clientId: DEFAULT_CLIENT,
8
+ format: 'tilejson',
9
+ headers: {}
10
+ };
11
+ export async function baseSource(endpoint, options, urlParameters) {
12
+ const { accessToken, connectionName, cache, ...optionalOptions } = options;
13
+ const mergedOptions = { ...SOURCE_DEFAULTS, accessToken, connectionName, endpoint };
14
+ for (const key in optionalOptions) {
15
+ if (optionalOptions[key]) {
16
+ mergedOptions[key] = optionalOptions[key];
17
+ }
18
+ }
19
+ const baseUrl = buildSourceUrl(mergedOptions);
20
+ const { format } = mergedOptions;
21
+ const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };
22
+ const errorContext = {
23
+ requestType: 'Map instantiation',
24
+ connection: options.connectionName,
25
+ type: endpoint,
26
+ source: JSON.stringify(urlParameters, undefined, 2)
27
+ };
28
+ const mapInstantiation = await requestWithParameters({
29
+ baseUrl,
30
+ parameters: urlParameters,
31
+ headers,
32
+ errorContext
33
+ });
34
+ const dataUrl = mapInstantiation[format].url[0];
35
+ if (cache) {
36
+ cache.value = parseInt(new URL(dataUrl).searchParams.get('cache') || '', 10);
37
+ }
38
+ errorContext.requestType = 'Map data';
39
+ if (format === 'tilejson') {
40
+ return await requestWithParameters({
41
+ accessToken,
42
+ baseUrl: dataUrl,
43
+ headers,
44
+ errorContext
45
+ });
46
+ }
47
+ return await requestWithParameters({
48
+ baseUrl: dataUrl,
49
+ headers,
50
+ errorContext
51
+ });
52
+ }
@@ -1,4 +1,4 @@
1
- import { QueryParameters } from '../api';
1
+ import { QueryParameters } from '../api/index';
2
2
  import type { SourceOptions, TilejsonResult } from './types';
3
3
  export type BoundaryQuerySourceOptions = SourceOptions & {
4
4
  tilesetTableName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"boundary-query-source.d.ts","sourceRoot":"","sources":["../../src/sources/boundary-query-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAE3D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAQF,eAAO,MAAM,mBAAmB,YACrB,0BAA0B,KAClC,QAAQ,cAAc,CAWxB,CAAC"}
1
+ {"version":3,"file":"boundary-query-source.d.ts","sourceRoot":"","sources":["../../src/sources/boundary-query-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAE3D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAQF,eAAO,MAAM,mBAAmB,YACrB,0BAA0B,KAClC,QAAQ,cAAc,CAWxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { baseSource } from "./base-source.js";
2
+ export const boundaryQuerySource = async function (options) {
3
+ const { tilesetTableName, matchingColumn = 'id', propertiesSqlQuery, queryParameters } = options;
4
+ const urlParameters = {
5
+ tilesetTableName,
6
+ matchingColumn,
7
+ propertiesSqlQuery
8
+ };
9
+ if (queryParameters) {
10
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
11
+ }
12
+ return baseSource('boundary', options, urlParameters);
13
+ };
@@ -0,0 +1,13 @@
1
+ import { baseSource } from "./base-source.js";
2
+ export const boundaryTableSource = async function (options) {
3
+ const { tilesetTableName, columns, matchingColumn = 'id', propertiesTableName } = options;
4
+ const urlParameters = {
5
+ tilesetTableName,
6
+ matchingColumn,
7
+ propertiesTableName
8
+ };
9
+ if (columns) {
10
+ urlParameters.columns = columns.join(',');
11
+ }
12
+ return baseSource('boundary', options, urlParameters);
13
+ };