@deck.gl/carto 9.0.0-beta.1 → 9.0.0-beta.11

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 (502) hide show
  1. package/{typed → dist}/api/carto-api-error.d.ts +1 -1
  2. package/dist/api/carto-api-error.d.ts.map +1 -0
  3. package/dist/api/carto-api-error.js +47 -0
  4. package/{typed → dist}/api/common.d.ts +2 -2
  5. package/{typed → dist}/api/common.d.ts.map +1 -1
  6. package/dist/{esm/api → api}/common.js +6 -6
  7. package/{typed → dist}/api/endpoints.d.ts +1 -1
  8. package/dist/api/endpoints.d.ts.map +1 -0
  9. package/dist/api/endpoints.js +22 -0
  10. package/{typed → dist}/api/fetch-map.d.ts.map +1 -1
  11. package/dist/api/fetch-map.js +196 -0
  12. package/dist/api/index.d.ts +7 -0
  13. package/dist/api/index.d.ts.map +1 -0
  14. package/dist/api/index.js +3 -0
  15. package/{typed → dist}/api/layer-map.d.ts +6 -6
  16. package/dist/api/layer-map.d.ts.map +1 -0
  17. package/dist/api/layer-map.js +373 -0
  18. package/dist/api/parse-map.js +250 -0
  19. package/{typed → dist}/api/query.d.ts +1 -1
  20. package/dist/api/query.d.ts.map +1 -0
  21. package/dist/api/query.js +24 -0
  22. package/dist/api/request-with-parameters.d.ts +8 -0
  23. package/dist/api/request-with-parameters.d.ts.map +1 -0
  24. package/dist/api/request-with-parameters.js +50 -0
  25. package/{typed → dist}/api/types.d.ts +18 -1
  26. package/dist/api/types.d.ts.map +1 -0
  27. package/dist/api/types.js +20 -0
  28. package/dist/basemap.js +9 -0
  29. package/dist/cartoRasterTile-worker.js +22 -58
  30. package/dist/cartoSpatialTile-worker.js +19 -52
  31. package/dist/cartoVectorTile-worker.js +19 -52
  32. package/dist/constants.d.ts +5 -0
  33. package/dist/constants.d.ts.map +1 -0
  34. package/dist/constants.js +4 -0
  35. package/dist/dist.dev.js +2001 -1714
  36. package/dist/index.cjs +2721 -0
  37. package/dist/index.cjs.map +7 -0
  38. package/dist/index.d.ts +37 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +34 -0
  41. package/{typed → dist}/layers/h3-tile-layer.d.ts +2 -2
  42. package/dist/layers/h3-tile-layer.d.ts.map +1 -0
  43. package/dist/layers/h3-tile-layer.js +66 -0
  44. package/{typed → dist}/layers/h3-tileset-2d.d.ts +4 -1
  45. package/dist/layers/h3-tileset-2d.d.ts.map +1 -0
  46. package/dist/layers/h3-tileset-2d.js +120 -0
  47. package/dist/layers/point-label-layer.js +150 -0
  48. package/dist/layers/quadbin-layer.js +21 -0
  49. package/{typed → dist}/layers/quadbin-tile-layer.d.ts +3 -3
  50. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -0
  51. package/dist/layers/quadbin-tile-layer.js +49 -0
  52. package/dist/layers/quadbin-tileset-2d.js +27 -0
  53. package/dist/layers/quadbin-utils.js +21 -0
  54. package/dist/layers/raster-layer-vertex.glsl.d.ts +3 -0
  55. package/dist/layers/raster-layer-vertex.glsl.js +68 -0
  56. package/{typed → dist}/layers/raster-layer.d.ts.map +1 -1
  57. package/dist/layers/raster-layer.js +95 -0
  58. package/{typed → dist}/layers/raster-tile-layer.d.ts +3 -3
  59. package/dist/layers/raster-tile-layer.d.ts.map +1 -0
  60. package/dist/layers/raster-tile-layer.js +45 -0
  61. package/dist/layers/schema/carto-properties-tile-loader.js +21 -0
  62. package/{typed → dist}/layers/schema/carto-properties-tile.d.ts +1 -1
  63. package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -0
  64. package/dist/layers/schema/carto-properties-tile.js +14 -0
  65. package/{typed → dist}/layers/schema/carto-raster-tile-loader.d.ts +3 -3
  66. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -0
  67. package/dist/layers/schema/carto-raster-tile-loader.js +35 -0
  68. package/{typed → dist}/layers/schema/carto-raster-tile.d.ts.map +1 -1
  69. package/dist/layers/schema/carto-raster-tile.js +44 -0
  70. package/dist/layers/schema/carto-spatial-tile-loader.js +35 -0
  71. package/{typed → dist}/layers/schema/carto-spatial-tile.d.ts +2 -2
  72. package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -0
  73. package/dist/layers/schema/carto-spatial-tile.js +38 -0
  74. package/dist/layers/schema/carto-tile.js +187 -0
  75. package/dist/layers/schema/carto-vector-tile-loader.js +65 -0
  76. package/dist/layers/schema/fast-pbf.js +7 -0
  77. package/dist/layers/schema/spatialjson-utils.js +15 -0
  78. package/dist/layers/schema/tile-loader-utils.js +6 -0
  79. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts +1 -1
  80. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts.map +1 -1
  81. package/dist/layers/spatial-index-tile-layer.js +67 -0
  82. package/{typed → dist}/layers/utils.d.ts +3 -3
  83. package/dist/layers/utils.d.ts.map +1 -0
  84. package/dist/layers/utils.js +74 -0
  85. package/{typed → dist}/layers/vector-tile-layer.d.ts +6 -5
  86. package/dist/layers/vector-tile-layer.d.ts.map +1 -0
  87. package/dist/layers/vector-tile-layer.js +106 -0
  88. package/{typed → dist}/sources/base-source.d.ts +2 -2
  89. package/dist/sources/base-source.d.ts.map +1 -0
  90. package/dist/sources/base-source.js +56 -0
  91. package/dist/sources/boundary-query-source.d.ts +11 -0
  92. package/dist/sources/boundary-query-source.d.ts.map +1 -0
  93. package/dist/sources/boundary-query-source.js +19 -0
  94. package/{typed → dist}/sources/boundary-table-source.d.ts +2 -2
  95. package/dist/sources/boundary-table-source.d.ts.map +1 -0
  96. package/dist/sources/boundary-table-source.js +16 -0
  97. package/{typed → dist}/sources/h3-query-source.d.ts +1 -1
  98. package/dist/sources/h3-query-source.d.ts.map +1 -0
  99. package/dist/sources/h3-query-source.js +19 -0
  100. package/{typed → dist}/sources/h3-table-source.d.ts +1 -1
  101. package/dist/sources/h3-table-source.d.ts.map +1 -0
  102. package/dist/sources/h3-table-source.js +16 -0
  103. package/{typed → dist}/sources/h3-tileset-source.d.ts +1 -1
  104. package/dist/sources/h3-tileset-source.d.ts.map +1 -0
  105. package/dist/sources/h3-tileset-source.js +6 -0
  106. package/dist/sources/index.d.ts +28 -0
  107. package/dist/sources/index.d.ts.map +1 -0
  108. package/dist/sources/index.js +13 -0
  109. package/{typed → dist}/sources/quadbin-query-source.d.ts +1 -1
  110. package/dist/sources/quadbin-query-source.d.ts.map +1 -0
  111. package/dist/sources/quadbin-query-source.js +19 -0
  112. package/{typed → dist}/sources/quadbin-table-source.d.ts +1 -1
  113. package/dist/sources/quadbin-table-source.d.ts.map +1 -0
  114. package/dist/sources/quadbin-table-source.js +16 -0
  115. package/{typed → dist}/sources/quadbin-tileset-source.d.ts +1 -1
  116. package/{typed → dist}/sources/quadbin-tileset-source.d.ts.map +1 -1
  117. package/dist/sources/quadbin-tileset-source.js +6 -0
  118. package/{typed → dist}/sources/raster-source.d.ts +1 -1
  119. package/dist/sources/raster-source.d.ts.map +1 -0
  120. package/dist/sources/raster-source.js +6 -0
  121. package/{typed → dist}/sources/types.d.ts +45 -7
  122. package/dist/sources/types.d.ts.map +1 -0
  123. package/dist/sources/types.js +1 -0
  124. package/dist/sources/vector-query-source.d.ts +4 -0
  125. package/dist/sources/vector-query-source.d.ts.map +1 -0
  126. package/dist/sources/vector-query-source.js +22 -0
  127. package/dist/sources/vector-table-source.d.ts +4 -0
  128. package/dist/sources/vector-table-source.d.ts.map +1 -0
  129. package/dist/sources/vector-table-source.js +19 -0
  130. package/{typed → dist}/sources/vector-tileset-source.d.ts +1 -1
  131. package/{typed → dist}/sources/vector-tileset-source.d.ts.map +1 -1
  132. package/dist/sources/vector-tileset-source.js +6 -0
  133. package/{typed → dist}/style/color-bins-style.d.ts +2 -2
  134. package/dist/style/color-bins-style.d.ts.map +1 -0
  135. package/dist/style/color-bins-style.js +21 -0
  136. package/{typed → dist}/style/color-categories-style.d.ts +2 -2
  137. package/dist/style/color-categories-style.d.ts.map +1 -0
  138. package/dist/style/color-categories-style.js +25 -0
  139. package/{typed → dist}/style/color-continuous-style.d.ts +2 -2
  140. package/dist/style/color-continuous-style.d.ts.map +1 -0
  141. package/dist/style/color-continuous-style.js +21 -0
  142. package/dist/style/palette.js +62 -0
  143. package/dist/style/utils.js +11 -0
  144. package/{typed → dist}/utils.d.ts +1 -1
  145. package/dist/utils.d.ts.map +1 -0
  146. package/dist/utils.js +45 -0
  147. package/dist/workers/cartoRasterTile.js +3 -0
  148. package/dist/workers/cartoSpatialTile.js +3 -0
  149. package/dist/workers/cartoVectorTile.js +3 -0
  150. package/dist.min.js +50 -94
  151. package/package.json +31 -26
  152. package/src/api/common.ts +5 -3
  153. package/src/api/fetch-map.ts +13 -4
  154. package/src/api/query.ts +1 -1
  155. package/src/api/request-with-parameters.ts +46 -38
  156. package/src/api/types.ts +20 -0
  157. package/src/constants.ts +5 -0
  158. package/src/index.ts +11 -7
  159. package/src/layers/h3-tile-layer.ts +5 -3
  160. package/src/layers/h3-tileset-2d.ts +56 -26
  161. package/src/layers/quadbin-tile-layer.ts +3 -1
  162. package/src/layers/raster-layer-vertex.glsl.ts +2 -2
  163. package/src/layers/raster-layer.ts +10 -16
  164. package/src/layers/raster-tile-layer.ts +3 -1
  165. package/src/layers/schema/carto-raster-tile-loader.ts +5 -5
  166. package/src/layers/schema/carto-raster-tile.ts +3 -4
  167. package/src/layers/spatial-index-tile-layer.ts +7 -3
  168. package/src/layers/vector-tile-layer.ts +19 -8
  169. package/src/sources/base-source.ts +9 -5
  170. package/src/sources/boundary-query-source.ts +27 -9
  171. package/src/sources/boundary-table-source.ts +13 -8
  172. package/src/sources/h3-query-source.ts +2 -1
  173. package/src/sources/h3-table-source.ts +2 -6
  174. package/src/sources/index.ts +7 -0
  175. package/src/sources/quadbin-query-source.ts +2 -1
  176. package/src/sources/quadbin-table-source.ts +2 -6
  177. package/src/sources/types.ts +49 -7
  178. package/src/sources/vector-query-source.ts +38 -4
  179. package/src/sources/vector-table-source.ts +32 -4
  180. package/src/utils.ts +5 -1
  181. package/dist/es5/api/carto-api-error.js +0 -83
  182. package/dist/es5/api/carto-api-error.js.map +0 -1
  183. package/dist/es5/api/common.js +0 -25
  184. package/dist/es5/api/common.js.map +0 -1
  185. package/dist/es5/api/endpoints.js +0 -61
  186. package/dist/es5/api/endpoints.js.map +0 -1
  187. package/dist/es5/api/fetch-map.js +0 -566
  188. package/dist/es5/api/fetch-map.js.map +0 -1
  189. package/dist/es5/api/index.js +0 -30
  190. package/dist/es5/api/index.js.map +0 -1
  191. package/dist/es5/api/layer-map.js +0 -634
  192. package/dist/es5/api/layer-map.js.map +0 -1
  193. package/dist/es5/api/parse-map.js +0 -347
  194. package/dist/es5/api/parse-map.js.map +0 -1
  195. package/dist/es5/api/query.js +0 -81
  196. package/dist/es5/api/query.js.map +0 -1
  197. package/dist/es5/api/request-with-parameters.js +0 -150
  198. package/dist/es5/api/request-with-parameters.js.map +0 -1
  199. package/dist/es5/api/types.js +0 -21
  200. package/dist/es5/api/types.js.map +0 -1
  201. package/dist/es5/basemap.js +0 -17
  202. package/dist/es5/basemap.js.map +0 -1
  203. package/dist/es5/index.js +0 -205
  204. package/dist/es5/index.js.map +0 -1
  205. package/dist/es5/layers/h3-tile-layer.js +0 -128
  206. package/dist/es5/layers/h3-tile-layer.js.map +0 -1
  207. package/dist/es5/layers/h3-tileset-2d.js +0 -172
  208. package/dist/es5/layers/h3-tileset-2d.js.map +0 -1
  209. package/dist/es5/layers/point-label-layer.js +0 -263
  210. package/dist/es5/layers/point-label-layer.js.map +0 -1
  211. package/dist/es5/layers/quadbin-layer.js +0 -72
  212. package/dist/es5/layers/quadbin-layer.js.map +0 -1
  213. package/dist/es5/layers/quadbin-tile-layer.js +0 -103
  214. package/dist/es5/layers/quadbin-tile-layer.js.map +0 -1
  215. package/dist/es5/layers/quadbin-tileset-2d.js +0 -76
  216. package/dist/es5/layers/quadbin-tileset-2d.js.map +0 -1
  217. package/dist/es5/layers/quadbin-utils.js +0 -60
  218. package/dist/es5/layers/quadbin-utils.js.map +0 -1
  219. package/dist/es5/layers/raster-layer-vertex.glsl.js +0 -9
  220. package/dist/es5/layers/raster-layer-vertex.glsl.js.map +0 -1
  221. package/dist/es5/layers/raster-layer.js +0 -174
  222. package/dist/es5/layers/raster-layer.js.map +0 -1
  223. package/dist/es5/layers/raster-tile-layer.js +0 -91
  224. package/dist/es5/layers/raster-tile-layer.js.map +0 -1
  225. package/dist/es5/layers/schema/carto-properties-tile-loader.js +0 -60
  226. package/dist/es5/layers/schema/carto-properties-tile-loader.js.map +0 -1
  227. package/dist/es5/layers/schema/carto-properties-tile.js +0 -38
  228. package/dist/es5/layers/schema/carto-properties-tile.js.map +0 -1
  229. package/dist/es5/layers/schema/carto-raster-tile-loader.js +0 -89
  230. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +0 -1
  231. package/dist/es5/layers/schema/carto-raster-tile.js +0 -79
  232. package/dist/es5/layers/schema/carto-raster-tile.js.map +0 -1
  233. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +0 -81
  234. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  235. package/dist/es5/layers/schema/carto-spatial-tile.js +0 -80
  236. package/dist/es5/layers/schema/carto-spatial-tile.js.map +0 -1
  237. package/dist/es5/layers/schema/carto-tile.js +0 -269
  238. package/dist/es5/layers/schema/carto-tile.js.map +0 -1
  239. package/dist/es5/layers/schema/carto-vector-tile-loader.js +0 -120
  240. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +0 -1
  241. package/dist/es5/layers/schema/fast-pbf.js +0 -14
  242. package/dist/es5/layers/schema/fast-pbf.js.map +0 -1
  243. package/dist/es5/layers/schema/spatialjson-utils.js +0 -42
  244. package/dist/es5/layers/schema/spatialjson-utils.js.map +0 -1
  245. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  246. package/dist/es5/layers/schema/tile-loader-utils.js.map +0 -1
  247. package/dist/es5/layers/spatial-index-tile-layer.js +0 -126
  248. package/dist/es5/layers/spatial-index-tile-layer.js.map +0 -1
  249. package/dist/es5/layers/utils.js +0 -131
  250. package/dist/es5/layers/utils.js.map +0 -1
  251. package/dist/es5/layers/vector-tile-layer.js +0 -248
  252. package/dist/es5/layers/vector-tile-layer.js.map +0 -1
  253. package/dist/es5/sources/base-source.js +0 -128
  254. package/dist/es5/sources/base-source.js.map +0 -1
  255. package/dist/es5/sources/boundary-query-source.js +0 -51
  256. package/dist/es5/sources/boundary-query-source.js.map +0 -1
  257. package/dist/es5/sources/boundary-table-source.js +0 -51
  258. package/dist/es5/sources/boundary-table-source.js.map +0 -1
  259. package/dist/es5/sources/h3-query-source.js +0 -56
  260. package/dist/es5/sources/h3-query-source.js.map +0 -1
  261. package/dist/es5/sources/h3-table-source.js +0 -56
  262. package/dist/es5/sources/h3-table-source.js.map +0 -1
  263. package/dist/es5/sources/h3-tileset-source.js +0 -43
  264. package/dist/es5/sources/h3-tileset-source.js.map +0 -1
  265. package/dist/es5/sources/index.js +0 -110
  266. package/dist/es5/sources/index.js.map +0 -1
  267. package/dist/es5/sources/quadbin-query-source.js +0 -56
  268. package/dist/es5/sources/quadbin-query-source.js.map +0 -1
  269. package/dist/es5/sources/quadbin-table-source.js +0 -56
  270. package/dist/es5/sources/quadbin-table-source.js.map +0 -1
  271. package/dist/es5/sources/quadbin-tileset-source.js +0 -43
  272. package/dist/es5/sources/quadbin-tileset-source.js.map +0 -1
  273. package/dist/es5/sources/raster-source.js +0 -43
  274. package/dist/es5/sources/raster-source.js.map +0 -1
  275. package/dist/es5/sources/types.js +0 -2
  276. package/dist/es5/sources/types.js.map +0 -1
  277. package/dist/es5/sources/vector-query-source.js +0 -51
  278. package/dist/es5/sources/vector-query-source.js.map +0 -1
  279. package/dist/es5/sources/vector-table-source.js +0 -51
  280. package/dist/es5/sources/vector-table-source.js.map +0 -1
  281. package/dist/es5/sources/vector-tileset-source.js +0 -43
  282. package/dist/es5/sources/vector-tileset-source.js.map +0 -1
  283. package/dist/es5/style/color-bins-style.js +0 -37
  284. package/dist/es5/style/color-bins-style.js.map +0 -1
  285. package/dist/es5/style/color-categories-style.js +0 -65
  286. package/dist/es5/style/color-categories-style.js.map +0 -1
  287. package/dist/es5/style/color-continuous-style.js +0 -37
  288. package/dist/es5/style/color-continuous-style.js.map +0 -1
  289. package/dist/es5/style/palette.js +0 -81
  290. package/dist/es5/style/palette.js.map +0 -1
  291. package/dist/es5/style/utils.js +0 -28
  292. package/dist/es5/style/utils.js.map +0 -1
  293. package/dist/es5/utils.js +0 -65
  294. package/dist/es5/utils.js.map +0 -1
  295. package/dist/es5/workers/cartoRasterTile.js +0 -10
  296. package/dist/es5/workers/cartoRasterTile.js.map +0 -1
  297. package/dist/es5/workers/cartoSpatialTile.js +0 -10
  298. package/dist/es5/workers/cartoSpatialTile.js.map +0 -1
  299. package/dist/es5/workers/cartoVectorTile.js +0 -10
  300. package/dist/es5/workers/cartoVectorTile.js.map +0 -1
  301. package/dist/esm/api/carto-api-error.js +0 -46
  302. package/dist/esm/api/carto-api-error.js.map +0 -1
  303. package/dist/esm/api/common.js.map +0 -1
  304. package/dist/esm/api/endpoints.js +0 -41
  305. package/dist/esm/api/endpoints.js.map +0 -1
  306. package/dist/esm/api/fetch-map.js +0 -298
  307. package/dist/esm/api/fetch-map.js.map +0 -1
  308. package/dist/esm/api/index.js +0 -4
  309. package/dist/esm/api/index.js.map +0 -1
  310. package/dist/esm/api/layer-map.js +0 -520
  311. package/dist/esm/api/layer-map.js.map +0 -1
  312. package/dist/esm/api/parse-map.js +0 -343
  313. package/dist/esm/api/parse-map.js.map +0 -1
  314. package/dist/esm/api/query.js +0 -40
  315. package/dist/esm/api/query.js.map +0 -1
  316. package/dist/esm/api/request-with-parameters.js +0 -82
  317. package/dist/esm/api/request-with-parameters.js.map +0 -1
  318. package/dist/esm/api/types.js +0 -14
  319. package/dist/esm/api/types.js.map +0 -1
  320. package/dist/esm/basemap.js +0 -10
  321. package/dist/esm/basemap.js.map +0 -1
  322. package/dist/esm/index.js +0 -35
  323. package/dist/esm/index.js.map +0 -1
  324. package/dist/esm/layers/h3-tile-layer.js +0 -77
  325. package/dist/esm/layers/h3-tile-layer.js.map +0 -1
  326. package/dist/esm/layers/h3-tileset-2d.js +0 -119
  327. package/dist/esm/layers/h3-tileset-2d.js.map +0 -1
  328. package/dist/esm/layers/point-label-layer.js +0 -194
  329. package/dist/esm/layers/point-label-layer.js.map +0 -1
  330. package/dist/esm/layers/quadbin-layer.js +0 -31
  331. package/dist/esm/layers/quadbin-layer.js.map +0 -1
  332. package/dist/esm/layers/quadbin-tile-layer.js +0 -51
  333. package/dist/esm/layers/quadbin-tile-layer.js.map +0 -1
  334. package/dist/esm/layers/quadbin-tileset-2d.js +0 -39
  335. package/dist/esm/layers/quadbin-tileset-2d.js.map +0 -1
  336. package/dist/esm/layers/quadbin-utils.js +0 -23
  337. package/dist/esm/layers/quadbin-utils.js.map +0 -1
  338. package/dist/esm/layers/raster-layer-vertex.glsl.js +0 -99
  339. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +0 -1
  340. package/dist/esm/layers/raster-layer.js +0 -108
  341. package/dist/esm/layers/raster-layer.js.map +0 -1
  342. package/dist/esm/layers/raster-tile-layer.js +0 -48
  343. package/dist/esm/layers/raster-tile-layer.js.map +0 -1
  344. package/dist/esm/layers/schema/carto-properties-tile-loader.js +0 -23
  345. package/dist/esm/layers/schema/carto-properties-tile-loader.js.map +0 -1
  346. package/dist/esm/layers/schema/carto-properties-tile.js +0 -18
  347. package/dist/esm/layers/schema/carto-properties-tile.js.map +0 -1
  348. package/dist/esm/layers/schema/carto-raster-tile-loader.js +0 -54
  349. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +0 -1
  350. package/dist/esm/layers/schema/carto-raster-tile.js +0 -51
  351. package/dist/esm/layers/schema/carto-raster-tile.js.map +0 -1
  352. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +0 -44
  353. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  354. package/dist/esm/layers/schema/carto-spatial-tile.js +0 -47
  355. package/dist/esm/layers/schema/carto-spatial-tile.js.map +0 -1
  356. package/dist/esm/layers/schema/carto-tile.js +0 -197
  357. package/dist/esm/layers/schema/carto-tile.js.map +0 -1
  358. package/dist/esm/layers/schema/carto-vector-tile-loader.js +0 -82
  359. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +0 -1
  360. package/dist/esm/layers/schema/fast-pbf.js +0 -7
  361. package/dist/esm/layers/schema/fast-pbf.js.map +0 -1
  362. package/dist/esm/layers/schema/spatialjson-utils.js +0 -27
  363. package/dist/esm/layers/schema/spatialjson-utils.js.map +0 -1
  364. package/dist/esm/layers/schema/tile-loader-utils.js +0 -7
  365. package/dist/esm/layers/schema/tile-loader-utils.js.map +0 -1
  366. package/dist/esm/layers/spatial-index-tile-layer.js +0 -86
  367. package/dist/esm/layers/spatial-index-tile-layer.js.map +0 -1
  368. package/dist/esm/layers/utils.js +0 -85
  369. package/dist/esm/layers/utils.js.map +0 -1
  370. package/dist/esm/layers/vector-tile-layer.js +0 -143
  371. package/dist/esm/layers/vector-tile-layer.js.map +0 -1
  372. package/dist/esm/sources/base-source.js +0 -72
  373. package/dist/esm/sources/base-source.js.map +0 -1
  374. package/dist/esm/sources/boundary-query-source.js +0 -21
  375. package/dist/esm/sources/boundary-query-source.js.map +0 -1
  376. package/dist/esm/sources/boundary-table-source.js +0 -21
  377. package/dist/esm/sources/boundary-table-source.js.map +0 -1
  378. package/dist/esm/sources/h3-query-source.js +0 -27
  379. package/dist/esm/sources/h3-query-source.js.map +0 -1
  380. package/dist/esm/sources/h3-table-source.js +0 -27
  381. package/dist/esm/sources/h3-table-source.js.map +0 -1
  382. package/dist/esm/sources/h3-tileset-source.js +0 -11
  383. package/dist/esm/sources/h3-tileset-source.js.map +0 -1
  384. package/dist/esm/sources/index.js +0 -14
  385. package/dist/esm/sources/index.js.map +0 -1
  386. package/dist/esm/sources/quadbin-query-source.js +0 -27
  387. package/dist/esm/sources/quadbin-query-source.js.map +0 -1
  388. package/dist/esm/sources/quadbin-table-source.js +0 -27
  389. package/dist/esm/sources/quadbin-table-source.js.map +0 -1
  390. package/dist/esm/sources/quadbin-tileset-source.js +0 -11
  391. package/dist/esm/sources/quadbin-tileset-source.js.map +0 -1
  392. package/dist/esm/sources/raster-source.js +0 -11
  393. package/dist/esm/sources/raster-source.js.map +0 -1
  394. package/dist/esm/sources/types.js +0 -2
  395. package/dist/esm/sources/types.js.map +0 -1
  396. package/dist/esm/sources/vector-query-source.js +0 -20
  397. package/dist/esm/sources/vector-query-source.js.map +0 -1
  398. package/dist/esm/sources/vector-table-source.js +0 -20
  399. package/dist/esm/sources/vector-table-source.js.map +0 -1
  400. package/dist/esm/sources/vector-tileset-source.js +0 -11
  401. package/dist/esm/sources/vector-tileset-source.js.map +0 -1
  402. package/dist/esm/style/color-bins-style.js +0 -19
  403. package/dist/esm/style/color-bins-style.js.map +0 -1
  404. package/dist/esm/style/color-categories-style.js +0 -24
  405. package/dist/esm/style/color-categories-style.js.map +0 -1
  406. package/dist/esm/style/color-continuous-style.js +0 -19
  407. package/dist/esm/style/color-continuous-style.js.map +0 -1
  408. package/dist/esm/style/palette.js +0 -51
  409. package/dist/esm/style/palette.js.map +0 -1
  410. package/dist/esm/style/utils.js +0 -15
  411. package/dist/esm/style/utils.js.map +0 -1
  412. package/dist/esm/utils.js +0 -51
  413. package/dist/esm/utils.js.map +0 -1
  414. package/dist/esm/workers/cartoRasterTile.js +0 -4
  415. package/dist/esm/workers/cartoRasterTile.js.map +0 -1
  416. package/dist/esm/workers/cartoSpatialTile.js +0 -4
  417. package/dist/esm/workers/cartoSpatialTile.js.map +0 -1
  418. package/dist/esm/workers/cartoVectorTile.js +0 -4
  419. package/dist/esm/workers/cartoVectorTile.js.map +0 -1
  420. package/src/.DS_Store +0 -0
  421. package/typed/api/carto-api-error.d.ts.map +0 -1
  422. package/typed/api/endpoints.d.ts.map +0 -1
  423. package/typed/api/index.d.ts +0 -7
  424. package/typed/api/index.d.ts.map +0 -1
  425. package/typed/api/layer-map.d.ts.map +0 -1
  426. package/typed/api/query.d.ts.map +0 -1
  427. package/typed/api/request-with-parameters.d.ts +0 -9
  428. package/typed/api/request-with-parameters.d.ts.map +0 -1
  429. package/typed/api/types.d.ts.map +0 -1
  430. package/typed/index.d.ts +0 -37
  431. package/typed/index.d.ts.map +0 -1
  432. package/typed/layers/h3-tile-layer.d.ts.map +0 -1
  433. package/typed/layers/h3-tileset-2d.d.ts.map +0 -1
  434. package/typed/layers/quadbin-tile-layer.d.ts.map +0 -1
  435. package/typed/layers/raster-layer-vertex.glsl.d.ts +0 -3
  436. package/typed/layers/raster-tile-layer.d.ts.map +0 -1
  437. package/typed/layers/schema/carto-properties-tile.d.ts.map +0 -1
  438. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +0 -1
  439. package/typed/layers/schema/carto-spatial-tile.d.ts.map +0 -1
  440. package/typed/layers/utils.d.ts.map +0 -1
  441. package/typed/layers/vector-tile-layer.d.ts.map +0 -1
  442. package/typed/sources/base-source.d.ts.map +0 -1
  443. package/typed/sources/boundary-query-source.d.ts +0 -10
  444. package/typed/sources/boundary-query-source.d.ts.map +0 -1
  445. package/typed/sources/boundary-table-source.d.ts.map +0 -1
  446. package/typed/sources/h3-query-source.d.ts.map +0 -1
  447. package/typed/sources/h3-table-source.d.ts.map +0 -1
  448. package/typed/sources/h3-tileset-source.d.ts.map +0 -1
  449. package/typed/sources/index.d.ts +0 -27
  450. package/typed/sources/index.d.ts.map +0 -1
  451. package/typed/sources/quadbin-query-source.d.ts.map +0 -1
  452. package/typed/sources/quadbin-table-source.d.ts.map +0 -1
  453. package/typed/sources/raster-source.d.ts.map +0 -1
  454. package/typed/sources/types.d.ts.map +0 -1
  455. package/typed/sources/vector-query-source.d.ts +0 -4
  456. package/typed/sources/vector-query-source.d.ts.map +0 -1
  457. package/typed/sources/vector-table-source.d.ts +0 -4
  458. package/typed/sources/vector-table-source.d.ts.map +0 -1
  459. package/typed/style/color-bins-style.d.ts.map +0 -1
  460. package/typed/style/color-categories-style.d.ts.map +0 -1
  461. package/typed/style/color-continuous-style.d.ts.map +0 -1
  462. package/typed/utils.d.ts.map +0 -1
  463. /package/{typed → dist}/api/fetch-map.d.ts +0 -0
  464. /package/{typed → dist}/api/parse-map.d.ts +0 -0
  465. /package/{typed → dist}/api/parse-map.d.ts.map +0 -0
  466. /package/{typed → dist}/basemap.d.ts +0 -0
  467. /package/{typed → dist}/basemap.d.ts.map +0 -0
  468. /package/{typed → dist}/layers/point-label-layer.d.ts +0 -0
  469. /package/{typed → dist}/layers/point-label-layer.d.ts.map +0 -0
  470. /package/{typed → dist}/layers/quadbin-layer.d.ts +0 -0
  471. /package/{typed → dist}/layers/quadbin-layer.d.ts.map +0 -0
  472. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts +0 -0
  473. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts.map +0 -0
  474. /package/{typed → dist}/layers/quadbin-utils.d.ts +0 -0
  475. /package/{typed → dist}/layers/quadbin-utils.d.ts.map +0 -0
  476. /package/{typed → dist}/layers/raster-layer-vertex.glsl.d.ts.map +0 -0
  477. /package/{typed → dist}/layers/raster-layer.d.ts +0 -0
  478. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts +0 -0
  479. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts.map +0 -0
  480. /package/{typed → dist}/layers/schema/carto-raster-tile.d.ts +0 -0
  481. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts +0 -0
  482. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts.map +0 -0
  483. /package/{typed → dist}/layers/schema/carto-tile.d.ts +0 -0
  484. /package/{typed → dist}/layers/schema/carto-tile.d.ts.map +0 -0
  485. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts +0 -0
  486. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts.map +0 -0
  487. /package/{typed → dist}/layers/schema/fast-pbf.d.ts +0 -0
  488. /package/{typed → dist}/layers/schema/fast-pbf.d.ts.map +0 -0
  489. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts +0 -0
  490. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts.map +0 -0
  491. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts +0 -0
  492. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts.map +0 -0
  493. /package/{typed → dist}/style/palette.d.ts +0 -0
  494. /package/{typed → dist}/style/palette.d.ts.map +0 -0
  495. /package/{typed → dist}/style/utils.d.ts +0 -0
  496. /package/{typed → dist}/style/utils.d.ts.map +0 -0
  497. /package/{typed → dist}/workers/cartoRasterTile.d.ts +0 -0
  498. /package/{typed → dist}/workers/cartoRasterTile.d.ts.map +0 -0
  499. /package/{typed → dist}/workers/cartoSpatialTile.d.ts +0 -0
  500. /package/{typed → dist}/workers/cartoSpatialTile.d.ts.map +0 -0
  501. /package/{typed → dist}/workers/cartoVectorTile.d.ts +0 -0
  502. /package/{typed → dist}/workers/cartoVectorTile.d.ts.map +0 -0
@@ -2,7 +2,10 @@ import { _Tileset2D as Tileset2D, GeoBoundingBox } from '@deck.gl/geo-layers';
2
2
  export type H3TileIndex = {
3
3
  i: string;
4
4
  };
5
- export declare function getHexagonResolution(viewport: any): number;
5
+ export declare function getHexagonResolution(viewport: {
6
+ zoom: number;
7
+ latitude: number;
8
+ }, tileSize: number): number;
6
9
  export default class H3Tileset2D extends Tileset2D {
7
10
  /**
8
11
  * Returns all tile indices in the current viewport. If the current zoom level is smaller
@@ -0,0 +1 @@
1
+ {"version":3,"file":"h3-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/layers/h3-tileset-2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,IAAI,SAAS,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAa5E,MAAM,MAAM,WAAW,GAAG;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AA6EtC,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,EAC1C,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS;IAChD;;;;OAIG;IAEH,cAAc,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAC;;;;KAAA,GAAG,WAAW,EAAE;IA2B3D,SAAS,CAAC,EAAC,CAAC,EAAC,EAAE,WAAW,GAAG,MAAM;IAKnC,eAAe,CAAC,EAAC,CAAC,EAAC,EAAE,WAAW;;;IAKhC,WAAW,CAAC,EAAC,CAAC,EAAC,EAAE,WAAW,GAAG,MAAM;IAKrC,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAKhD"}
@@ -0,0 +1,120 @@
1
+ import { _Tileset2D as Tileset2D } from '@deck.gl/geo-layers';
2
+ import { polygonToCells, latLngToCell, getResolution, cellToBoundary, cellToParent, gridDisk, edgeLength, UNITS, originToDirectedEdges } from 'h3-js';
3
+ const MAX_LATITUDE = 85.051128;
4
+ // `polygonToCells()` fills based on hexagon center, this function will
5
+ // pad the bounds such that all cells that overlap the bounds will be included
6
+ function padBoundingBox({ west, north, east, south }, resolution) {
7
+ const corners = [
8
+ [north, east],
9
+ [south, east],
10
+ [south, west],
11
+ [north, west]
12
+ ];
13
+ const cornerCells = corners.map(c => latLngToCell(c[0], c[1], resolution));
14
+ const cornerEdgeLengths = cornerCells.map(c => (Math.max(...originToDirectedEdges(c).map(e => edgeLength(e, UNITS.rads))) * 180) / Math.PI);
15
+ const bufferLat = Math.max(...cornerEdgeLengths);
16
+ const bufferLon = Math.min(180, bufferLat / Math.cos((((north + south) / 2) * Math.PI) / 180));
17
+ return {
18
+ north: Math.min(north + bufferLat, MAX_LATITUDE),
19
+ east: east + bufferLon,
20
+ south: Math.max(south - bufferLat, -MAX_LATITUDE),
21
+ west: west - bufferLon
22
+ };
23
+ }
24
+ function getHexagonsInBoundingBox({ west, north, east, south }, resolution) {
25
+ const longitudeSpan = Math.abs(east - west);
26
+ if (longitudeSpan > 180) {
27
+ // This is a known issue in h3-js: polygonToCells does not work correctly
28
+ // when longitude span is larger than 180 degrees.
29
+ const nSegments = Math.ceil(longitudeSpan / 180);
30
+ let h3Indices = [];
31
+ for (let s = 0; s < nSegments; s++) {
32
+ const segmentWest = west + s * 180;
33
+ const segmentEast = Math.min(segmentWest + 179.9999999, east);
34
+ h3Indices = h3Indices.concat(getHexagonsInBoundingBox({ west: segmentWest, north, east: segmentEast, south }, resolution));
35
+ }
36
+ return [...new Set(h3Indices)];
37
+ }
38
+ const polygon = [
39
+ [north, east],
40
+ [south, east],
41
+ [south, west],
42
+ [north, west],
43
+ [north, east]
44
+ ];
45
+ return polygonToCells(polygon, resolution);
46
+ }
47
+ function tileToBoundingBox(index) {
48
+ const coordinates = cellToBoundary(index);
49
+ const latitudes = coordinates.map(c => c[0]);
50
+ const longitudes = coordinates.map(c => c[1]);
51
+ const west = Math.min(...longitudes);
52
+ const south = Math.min(...latitudes);
53
+ const east = Math.max(...longitudes);
54
+ const north = Math.max(...latitudes);
55
+ return { west, south, east, north };
56
+ }
57
+ // Resolution conversion function. Takes a WebMercatorViewport and returns
58
+ // a H3 resolution such that the screen space size of the hexagons is
59
+ // similar
60
+ // Relative scale factor (0 = no biasing, 2 = a few hexagons cover view)
61
+ const BIAS = 2;
62
+ export function getHexagonResolution(viewport, tileSize) {
63
+ // Difference in given tile size compared to deck's internal 512px tile size,
64
+ // expressed as an offset to the viewport zoom.
65
+ const zoomOffset = Math.log2(tileSize / 512);
66
+ const hexagonScaleFactor = (2 / 3) * (viewport.zoom - zoomOffset);
67
+ const latitudeScaleFactor = Math.log(1 / Math.cos((Math.PI * viewport.latitude) / 180));
68
+ // Clip and bias
69
+ return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));
70
+ }
71
+ export default class H3Tileset2D extends Tileset2D {
72
+ /**
73
+ * Returns all tile indices in the current viewport. If the current zoom level is smaller
74
+ * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,
75
+ * return tiles that are on maxZoom.
76
+ */
77
+ // @ts-expect-error Tileset2D should be generic over TileIndex
78
+ getTileIndices({ viewport, minZoom, maxZoom }) {
79
+ if (viewport.latitude === undefined)
80
+ return [];
81
+ const [west, south, east, north] = viewport.getBounds();
82
+ const { tileSize } = this.opts;
83
+ let z = getHexagonResolution(viewport, tileSize);
84
+ let indices;
85
+ if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
86
+ // TODO support `extent` prop
87
+ return [];
88
+ }
89
+ if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
90
+ z = maxZoom;
91
+ // Once we are at max zoom, getHexagonsInBoundingBox doesn't work, simply
92
+ // get a ring centered on the hexagon in the viewport center
93
+ const center = latLngToCell(viewport.latitude, viewport.longitude, maxZoom);
94
+ indices = gridDisk(center, 1);
95
+ }
96
+ else {
97
+ const paddedBounds = padBoundingBox({ west, north, east, south }, z);
98
+ indices = getHexagonsInBoundingBox(paddedBounds, z);
99
+ }
100
+ return indices.map(i => ({ i }));
101
+ }
102
+ // @ts-expect-error Tileset2D should be generic over TileIndex
103
+ getTileId({ i }) {
104
+ return i;
105
+ }
106
+ // @ts-expect-error Tileset2D should be generic over TileIndex
107
+ getTileMetadata({ i }) {
108
+ return { bbox: tileToBoundingBox(i) };
109
+ }
110
+ // @ts-expect-error Tileset2D should be generic over TileIndex
111
+ getTileZoom({ i }) {
112
+ return getResolution(i);
113
+ }
114
+ // @ts-expect-error Tileset2D should be generic over TileIndex
115
+ getParentIndex(index) {
116
+ const resolution = getResolution(index.i);
117
+ const i = cellToParent(index.i, resolution - 1);
118
+ return { i };
119
+ }
120
+ }
@@ -0,0 +1,150 @@
1
+ import { CompositeLayer } from '@deck.gl/core';
2
+ import { TextLayer, _TextBackgroundLayer as TextBackgroundLayer } from '@deck.gl/layers';
3
+ const [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];
4
+ class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
5
+ static { this.layerName = 'EnhancedTextBackgroundLayer'; }
6
+ getShaders() {
7
+ const shaders = super.getShaders();
8
+ let vs = shaders.vs;
9
+ // Modify shader so that the padding is offset by the pixel offset to ensure the padding
10
+ // always captures the anchor point. As padding is uniform we cannot pass it a per-label value
11
+ vs = vs.replaceAll('padding.', '_padding.');
12
+ vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
13
+ return { ...shaders, vs };
14
+ }
15
+ }
16
+ // TextLayer which includes modified text-background-layer-vertex shader and only renders the
17
+ // primary background layer in the collision pass
18
+ class EnhancedTextLayer extends TextLayer {
19
+ static { this.layerName = 'EnhancedTextLayer'; }
20
+ filterSubLayer({ layer, renderPass }) {
21
+ const background = layer.id.includes('primary-background');
22
+ if (renderPass === 'collision') {
23
+ return background; // Only draw primary background layer in collision pass
24
+ }
25
+ return !background; // Do not draw background layer in other passes
26
+ }
27
+ }
28
+ const defaultProps = {
29
+ ...TextLayer.defaultProps,
30
+ getRadius: { type: 'accessor', value: 1 },
31
+ radiusScale: { type: 'number', min: 0, value: 1 }
32
+ };
33
+ export default class PointLabelLayer extends CompositeLayer {
34
+ static { this.layerName = 'PointLabelLayer'; }
35
+ static { this.defaultProps = defaultProps; }
36
+ calculatePixelOffset(secondary) {
37
+ const { getTextAnchor: anchor, getAlignmentBaseline: alignment, getRadius, getSecondaryText, radiusScale, secondarySizeScale, sizeScale } = this.props;
38
+ const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
39
+ const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
40
+ // Padding based on font size (font size / 4)
41
+ const xPadding = sizeScale / 4;
42
+ const yPadding = sizeScale * (1 + 1 / 4);
43
+ // Place secondary label under main label (secondary label always 'top' baseline aligned)
44
+ const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;
45
+ let yOffset = secondary ? secondaryOffset : 0;
46
+ // Special case, position relative to secondary label
47
+ if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {
48
+ yOffset -= secondaryOffset;
49
+ yOffset -= secondarySizeScale;
50
+ yOffset += sizeScale;
51
+ }
52
+ // Padding based on point radius (radius/ 4)
53
+ const radiusPadding = 1 + 1 / 4;
54
+ return typeof getRadius === 'function'
55
+ ? (d, info) => {
56
+ const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
57
+ return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
58
+ }
59
+ : [
60
+ xMult * (getRadius * radiusScale * radiusPadding + xPadding),
61
+ yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset
62
+ ];
63
+ }
64
+ calculateBackgroundPadding() {
65
+ const { getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale } = this.props;
66
+ // Heuristics to avoid label overlap
67
+ const paddingX = 12 * sizeScale;
68
+ const paddingY = 3 * sizeScale;
69
+ const backgroundPadding = [0, 0, 0, 0];
70
+ if (alignment === 'top') {
71
+ backgroundPadding[TOP] = paddingY;
72
+ }
73
+ else if (alignment === 'bottom') {
74
+ backgroundPadding[BOTTOM] = paddingY;
75
+ }
76
+ else {
77
+ backgroundPadding[TOP] = 0.5 * paddingY;
78
+ backgroundPadding[BOTTOM] = 0.5 * paddingY;
79
+ }
80
+ if (anchor === 'start') {
81
+ backgroundPadding[LEFT] = paddingX;
82
+ }
83
+ else if (anchor === 'end') {
84
+ backgroundPadding[RIGHT] = paddingX;
85
+ }
86
+ else {
87
+ backgroundPadding[LEFT] = 0.5 * paddingX;
88
+ backgroundPadding[RIGHT] = 0.5 * paddingX;
89
+ }
90
+ return backgroundPadding;
91
+ }
92
+ renderTextLayer(id, { updateTriggers: updateTriggersOverride = {}, ...props }) {
93
+ const { data, characterSet, fontFamily, fontSettings, fontWeight, outlineColor, outlineWidth, sizeScale, radiusScale, getAlignmentBaseline, getColor, getPosition, getTextAnchor, updateTriggers } = this.props;
94
+ return new EnhancedTextLayer(this.getSubLayerProps({
95
+ id,
96
+ data,
97
+ characterSet,
98
+ fontFamily,
99
+ fontSettings,
100
+ fontWeight,
101
+ outlineColor,
102
+ outlineWidth,
103
+ sizeScale,
104
+ getAlignmentBaseline,
105
+ getColor,
106
+ getPosition,
107
+ getTextAnchor,
108
+ updateTriggers: {
109
+ ...updateTriggers,
110
+ ...updateTriggersOverride,
111
+ getPixelOffset: [
112
+ updateTriggers.getRadius,
113
+ updateTriggers.getTextAnchor,
114
+ updateTriggers.getAlignmentBaseline,
115
+ radiusScale,
116
+ sizeScale
117
+ ]
118
+ }
119
+ }), {
120
+ getSize: 1,
121
+ _subLayerProps: { background: { type: EnhancedTextBackgroundLayer } }
122
+ }, props);
123
+ }
124
+ renderLayers() {
125
+ const { getText, getSecondaryColor, getSecondaryText, secondaryOutlineColor, secondarySizeScale, updateTriggers } = this.props;
126
+ const getPixelOffset = this.calculatePixelOffset(false);
127
+ const backgroundPadding = this.calculateBackgroundPadding();
128
+ const out = [
129
+ // Text doesn't update via updateTrigger for some reason
130
+ this.renderTextLayer(`${updateTriggers.getText}-primary`, {
131
+ backgroundPadding,
132
+ getText,
133
+ getPixelOffset,
134
+ background: true // Only use background for primary label for faster collisions
135
+ }),
136
+ Boolean(getSecondaryText) &&
137
+ this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {
138
+ getText: getSecondaryText,
139
+ getPixelOffset: this.calculatePixelOffset(true),
140
+ getAlignmentBaseline: 'top',
141
+ // updateTriggers: {getText: updateTriggers.getSecondaryText},
142
+ // Optional overrides
143
+ ...(getSecondaryColor && { getColor: getSecondaryColor }),
144
+ ...(secondarySizeScale && { sizeScale: secondarySizeScale }),
145
+ ...(secondaryOutlineColor && { outlineColor: secondaryOutlineColor })
146
+ })
147
+ ];
148
+ return out;
149
+ }
150
+ }
@@ -0,0 +1,21 @@
1
+ import { _GeoCellLayer as GeoCellLayer } from '@deck.gl/geo-layers';
2
+ import { getQuadbinPolygon } from "./quadbin-utils.js";
3
+ const defaultProps = {
4
+ getQuadbin: { type: 'accessor', value: (d) => d.quadbin }
5
+ };
6
+ export default class QuadbinLayer extends GeoCellLayer {
7
+ static { this.layerName = 'QuadbinLayer'; }
8
+ static { this.defaultProps = defaultProps; }
9
+ indexToBounds() {
10
+ const { data, extruded, getQuadbin } = this.props;
11
+ // To avoid z-fighting reduce polygon footprint when extruding
12
+ const coverage = extruded ? 0.99 : 1;
13
+ return {
14
+ data,
15
+ _normalize: false,
16
+ positionFormat: 'XY',
17
+ getPolygon: (x, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),
18
+ updateTriggers: { getPolygon: coverage }
19
+ };
20
+ }
21
+ }
@@ -1,7 +1,7 @@
1
1
  import { CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps } from '@deck.gl/core';
2
- import QuadbinLayer, { QuadbinLayerProps } from './quadbin-layer';
3
- import { SpatialIndexTileLayerProps } from './spatial-index-tile-layer';
4
- import type { TilejsonResult } from '../sources/types';
2
+ import QuadbinLayer, { QuadbinLayerProps } from "./quadbin-layer.js";
3
+ import { SpatialIndexTileLayerProps } from "./spatial-index-tile-layer.js";
4
+ import type { TilejsonResult } from "../sources/types.js";
5
5
  export declare const renderSubLayers: (props: any) => QuadbinLayer<any, {
6
6
  getQuadbin: (d: any) => any;
7
7
  }> | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadbin-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-tile-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,YAAY,EAAE,EAAC,iBAAiB,EAAC,2BAAwB;AAEhE,OAA8B,EAAC,0BAA0B,EAAC,sCAAmC;AAE7F,OAAO,KAAK,EAAC,cAAc,EAAC,4BAAyB;AAIrD,eAAO,MAAM,eAAe;;SAO3B,CAAC;AAOF,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,OAAO,IAAI,sBAAsB,CAAC,KAAK,CAAC,GAChF,mBAAmB,CAAC;AAEtB,4CAA4C;AAC5C,KAAK,sBAAsB,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GACzE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IAChD,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,gBAAgB,CACnC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,YAAY,+CAAgB;IAEnC,cAAc,IAAI,GAAG;IAQrB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAkB1C"}
@@ -0,0 +1,49 @@
1
+ import { CompositeLayer } from '@deck.gl/core';
2
+ import QuadbinLayer from "./quadbin-layer.js";
3
+ import QuadbinTileset2D from "./quadbin-tileset-2d.js";
4
+ import SpatialIndexTileLayer from "./spatial-index-tile-layer.js";
5
+ import { hexToBigInt } from 'quadbin';
6
+ import { injectAccessToken, TilejsonPropType } from "./utils.js";
7
+ import { DEFAULT_TILE_SIZE } from "../constants.js";
8
+ export const renderSubLayers = props => {
9
+ const { data } = props;
10
+ if (!data || !data.length)
11
+ return null;
12
+ const isBigInt = typeof data[0].id === 'bigint';
13
+ return new QuadbinLayer(props, {
14
+ getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)
15
+ });
16
+ };
17
+ const defaultProps = {
18
+ data: TilejsonPropType,
19
+ tileSize: DEFAULT_TILE_SIZE
20
+ };
21
+ export default class QuadbinTileLayer extends CompositeLayer {
22
+ static { this.layerName = 'QuadbinTileLayer'; }
23
+ static { this.defaultProps = defaultProps; }
24
+ getLoadOptions() {
25
+ const loadOptions = super.getLoadOptions() || {};
26
+ const tileJSON = this.props.data;
27
+ injectAccessToken(loadOptions, tileJSON.accessToken);
28
+ loadOptions.cartoSpatialTile = { ...loadOptions.cartoSpatialTile, scheme: 'quadbin' };
29
+ return loadOptions;
30
+ }
31
+ renderLayers() {
32
+ const tileJSON = this.props.data;
33
+ if (!tileJSON)
34
+ return null;
35
+ const { tiles: data, maxresolution: maxZoom } = tileJSON;
36
+ return [
37
+ // @ts-ignore
38
+ new SpatialIndexTileLayer(this.props, {
39
+ id: `quadbin-tile-layer-${this.props.id}`,
40
+ data,
41
+ // TODO: Tileset2D should be generic over TileIndex type
42
+ TilesetClass: QuadbinTileset2D,
43
+ renderSubLayers,
44
+ maxZoom,
45
+ loadOptions: this.getLoadOptions()
46
+ })
47
+ ];
48
+ }
49
+ }
@@ -0,0 +1,27 @@
1
+ import { _Tileset2D as Tileset2D } from '@deck.gl/geo-layers';
2
+ import { bigIntToHex, cellToParent, cellToTile, getResolution, tileToCell } from 'quadbin';
3
+ export default class QuadbinTileset2D extends Tileset2D {
4
+ // @ts-expect-error for spatial indices, TileSet2d should be parametrized by TileIndexT
5
+ getTileIndices(opts) {
6
+ return super
7
+ .getTileIndices(opts)
8
+ .map(tileToCell)
9
+ .map(q => ({ q, i: bigIntToHex(q) }));
10
+ }
11
+ // @ts-expect-error TileIndex must be generic
12
+ getTileId({ q, i }) {
13
+ return i || bigIntToHex(q);
14
+ }
15
+ // @ts-expect-error TileIndex must be generic
16
+ getTileMetadata({ q }) {
17
+ return super.getTileMetadata(cellToTile(q));
18
+ }
19
+ // @ts-expect-error TileIndex must be generic
20
+ getTileZoom({ q }) {
21
+ return Number(getResolution(q));
22
+ }
23
+ // @ts-expect-error TileIndex must be generic
24
+ getParentIndex({ q }) {
25
+ return { q: cellToParent(q) };
26
+ }
27
+ }
@@ -0,0 +1,21 @@
1
+ import { worldToLngLat } from '@math.gl/web-mercator';
2
+ import { cellToTile } from 'quadbin';
3
+ const TILE_SIZE = 512;
4
+ export function quadbinToOffset(quadbin) {
5
+ const { x, y, z } = cellToTile(quadbin);
6
+ const scale = TILE_SIZE / (1 << z);
7
+ return [x * scale, TILE_SIZE - y * scale, scale];
8
+ }
9
+ export function quadbinToWorldBounds(quadbin, coverage) {
10
+ const [xOffset, yOffset, scale] = quadbinToOffset(quadbin);
11
+ return [
12
+ [xOffset, yOffset],
13
+ [xOffset + coverage * scale, yOffset - coverage * scale]
14
+ ];
15
+ }
16
+ export function getQuadbinPolygon(quadbin, coverage = 1) {
17
+ const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin, coverage);
18
+ const [w, n] = worldToLngLat(topLeft);
19
+ const [e, s] = worldToLngLat(bottomRight);
20
+ return [e, n, e, s, w, s, w, n, e, n];
21
+ }
@@ -0,0 +1,3 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME raster-layer-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\nin float instanceElevations;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\n\nin vec3 instancePickingColors;\n\n// Custom uniforms\nuniform float opacity;\nuniform bool extruded;\nuniform bool stroked;\nuniform bool isStroke;\nuniform float coverage;\nuniform float elevationScale;\nuniform float widthScale;\nuniform vec3 offset;\n\n// Result\nout vec4 vColor;\n#ifdef FLAT_SHADING\nout vec4 position_commonspace;\n#endif\n\nvoid main(void) {\n // Rather than positioning using attribute, layout pixel grid using gl_InstanceID\n vec2 common_position = offset.xy;\n float scale = offset.z;\n\n int yIndex = - (gl_InstanceID / BLOCK_WIDTH);\n int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);\n common_position += scale * vec2(float(xIndex), float(yIndex));\n\n vec4 color = isStroke ? instanceLineColors : instanceFillColors;\n\n // if alpha == 0.0 or z < 0.0, do not render element\n float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);\n float cellWidth = coverage * scale;\n\n // Get position directly from quadbin, rather than projecting\n // Important to set geometry.position before using project_ methods below\n // as geometry.worldPosition is not set (we don't know our lat/long)\n geometry.position = vec4(common_position, 0.0, 1.0);\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n geometry.position.xyz -= project_uCommonOrigin;\n }\n\n // calculate elevation, if 3d not enabled set to 0\n // cylindar geometry height are between -1.0 to 1.0, transform it to between 0, 1\n float elevation = 0.0;\n // calculate stroke offset\n float strokeOffsetRatio = 1.0;\n\n if (extruded) {\n elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;\n } else if (stroked) {\n float halfOffset = project_pixel_size(widthScale) / cellWidth;\n if (isStroke) {\n strokeOffsetRatio -= sign(positions.z) * halfOffset;\n } else {\n strokeOffsetRatio -= halfOffset;\n }\n }\n\n geometry.pickingColor = instancePickingColors;\n\n // project center of column\n vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;\n vec3 pos = vec3(offset, project_size(elevation));\n DECKGL_FILTER_SIZE(pos, geometry);\n\n geometry.position.xyz += pos;\n gl_Position = project_common_position_to_clipspace(geometry.position);\n\n geometry.normal = project_normal(normals);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n // Light calculations\n if (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
2
+ export default _default;
3
+ //# sourceMappingURL=raster-layer-vertex.glsl.d.ts.map
@@ -0,0 +1,68 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME raster-layer-vertex-shader
4
+ in vec3 positions;
5
+ in vec3 normals;
6
+ in float instanceElevations;
7
+ in vec4 instanceFillColors;
8
+ in vec4 instanceLineColors;
9
+ in vec3 instancePickingColors;
10
+ uniform float opacity;
11
+ uniform bool extruded;
12
+ uniform bool stroked;
13
+ uniform bool isStroke;
14
+ uniform float coverage;
15
+ uniform float elevationScale;
16
+ uniform float widthScale;
17
+ uniform vec3 offset;
18
+ out vec4 vColor;
19
+ #ifdef FLAT_SHADING
20
+ out vec4 position_commonspace;
21
+ #endif
22
+ void main(void) {
23
+ vec2 common_position = offset.xy;
24
+ float scale = offset.z;
25
+ int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
26
+ int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
27
+ common_position += scale * vec2(float(xIndex), float(yIndex));
28
+ vec4 color = isStroke ? instanceLineColors : instanceFillColors;
29
+ float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
30
+ float cellWidth = coverage * scale;
31
+ geometry.position = vec4(common_position, 0.0, 1.0);
32
+ if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
33
+ geometry.position.xyz -= project_uCommonOrigin;
34
+ }
35
+ float elevation = 0.0;
36
+ float strokeOffsetRatio = 1.0;
37
+ if (extruded) {
38
+ elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;
39
+ } else if (stroked) {
40
+ float halfOffset = project_pixel_size(widthScale) / cellWidth;
41
+ if (isStroke) {
42
+ strokeOffsetRatio -= sign(positions.z) * halfOffset;
43
+ } else {
44
+ strokeOffsetRatio -= halfOffset;
45
+ }
46
+ }
47
+ geometry.pickingColor = instancePickingColors;
48
+ vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
49
+ vec3 pos = vec3(offset, project_size(elevation));
50
+ DECKGL_FILTER_SIZE(pos, geometry);
51
+ geometry.position.xyz += pos;
52
+ gl_Position = project_common_position_to_clipspace(geometry.position);
53
+ geometry.normal = project_normal(normals);
54
+ DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
55
+ if (extruded && !isStroke) {
56
+ #ifdef FLAT_SHADING
57
+ position_commonspace = geometry.position;
58
+ vColor = vec4(color.rgb, color.a * opacity);
59
+ #else
60
+ vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);
61
+ vColor = vec4(lightColor, color.a * opacity);
62
+ #endif
63
+ } else {
64
+ vColor = vec4(color.rgb, color.a * opacity);
65
+ }
66
+ DECKGL_FILTER_COLOR(vColor, geometry);
67
+ }
68
+ `;
@@ -1 +1 @@
1
- {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAc,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAyD9D,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IAAI,iBAAiB,GAC/D,gBAAgB,CAAC,KAAK,CAAC,GACvB,mBAAmB,CAAC;AAEtB,uCAAuC;AACvC,KAAK,iBAAiB,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE,CAAE,SAAQ,cAAc,CACnF,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAC/C;IACC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,YAAY,0CAAgB;IAEnC,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;IA6CzC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;CAcvF"}
1
+ {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAc,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAyD9D,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IAAI,iBAAiB,GAC/D,gBAAgB,CAAC,KAAK,CAAC,GACvB,mBAAmB,CAAC;AAEtB,uCAAuC;AACvC,KAAK,iBAAiB,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE,CAAE,SAAQ,cAAc,CACnF,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAC/C;IACC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,YAAY,0CAAgB;IAEnC,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;IAwCzC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;CAcvF"}
@@ -0,0 +1,95 @@
1
+ import { CompositeLayer } from '@deck.gl/core';
2
+ import { ColumnLayer } from '@deck.gl/layers';
3
+ import { quadbinToOffset } from "./quadbin-utils.js";
4
+ import vs from "./raster-layer-vertex.glsl.js";
5
+ import { createBinaryProxy } from "../utils.js";
6
+ const defaultProps = {
7
+ ...ColumnLayer.defaultProps,
8
+ extruded: false,
9
+ diskResolution: 4,
10
+ vertices: [
11
+ [-0.5, -0.5],
12
+ [0.5, -0.5],
13
+ [0.5, 0.5],
14
+ [-0.5, 0.5]
15
+ ]
16
+ };
17
+ // Modified ColumnLayer with custom vertex shader
18
+ class RasterColumnLayer extends ColumnLayer {
19
+ static { this.layerName = 'RasterColumnLayer'; }
20
+ getShaders() {
21
+ const shaders = super.getShaders();
22
+ const data = this.props.data;
23
+ const BLOCK_WIDTH = data.data.blockSize ?? Math.sqrt(data.length);
24
+ return { ...shaders, defines: { ...shaders.defines, BLOCK_WIDTH }, vs };
25
+ }
26
+ initializeState() {
27
+ // Only add attributes needed by shader
28
+ const attributeManager = this.getAttributeManager();
29
+ /* eslint-disable max-len */
30
+ attributeManager.addInstanced({
31
+ instanceElevations: {
32
+ size: 1,
33
+ transition: true,
34
+ accessor: 'getElevation'
35
+ },
36
+ instanceFillColors: {
37
+ size: this.props.colorFormat.length,
38
+ type: 'unorm8',
39
+ transition: true,
40
+ accessor: 'getFillColor',
41
+ defaultValue: [0, 0, 0, 255]
42
+ },
43
+ instanceLineColors: {
44
+ size: this.props.colorFormat.length,
45
+ type: 'unorm8',
46
+ transition: true,
47
+ accessor: 'getLineColor',
48
+ defaultValue: [255, 255, 255, 255]
49
+ }
50
+ });
51
+ }
52
+ }
53
+ // Adapter layer around RasterColumnLayer that converts data & accessors into correct format
54
+ export default class RasterLayer extends CompositeLayer {
55
+ static { this.layerName = 'RasterLayer'; }
56
+ static { this.defaultProps = defaultProps; }
57
+ renderLayers() {
58
+ // Rendering props underlying layer
59
+ const { data, getElevation, getFillColor, getLineColor, getLineWidth, tileIndex, updateTriggers } = this.props;
60
+ if (!data || !tileIndex)
61
+ return null;
62
+ const blockSize = data.blockSize ?? 0;
63
+ const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
64
+ const offset = [xOffset, yOffset, scale / blockSize];
65
+ // Filled Column Layer
66
+ const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);
67
+ return new CellLayer(this.props, this.getSubLayerProps({
68
+ id: 'cell',
69
+ updateTriggers,
70
+ getElevation: this.getSubLayerAccessor(getElevation),
71
+ getFillColor: this.getSubLayerAccessor(getFillColor),
72
+ getLineColor: this.getSubLayerAccessor(getLineColor),
73
+ getLineWidth: this.getSubLayerAccessor(getLineWidth)
74
+ }), {
75
+ data: {
76
+ data, // Pass through data for getSubLayerAccessor()
77
+ length: blockSize * blockSize
78
+ },
79
+ offset
80
+ });
81
+ }
82
+ getSubLayerAccessor(accessor) {
83
+ if (typeof accessor !== 'function') {
84
+ return super.getSubLayerAccessor(accessor);
85
+ }
86
+ // Proxy values back in standard feature format
87
+ return (object, info) => {
88
+ const { data, index } = info;
89
+ const binaryData = data.data;
90
+ const proxy = createBinaryProxy(binaryData.cells, index);
91
+ // @ts-ignore (TS2349) accessor is always function
92
+ return accessor({ properties: proxy }, info);
93
+ };
94
+ }
95
+ }
@@ -1,7 +1,7 @@
1
1
  import { CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList } from '@deck.gl/core';
2
- import RasterLayer, { RasterLayerProps } from './raster-layer';
3
- import { SpatialIndexTileLayerProps } from './spatial-index-tile-layer';
4
- import type { TilejsonResult } from '../sources/types';
2
+ import RasterLayer, { RasterLayerProps } from "./raster-layer.js";
3
+ import { SpatialIndexTileLayerProps } from "./spatial-index-tile-layer.js";
4
+ import type { TilejsonResult } from "../sources/types.js";
5
5
  export declare const renderSubLayers: (props: any) => RasterLayer<any, {
6
6
  tileIndex: any;
7
7
  }> | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-tile-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,WAAW,EAAE,EAAC,gBAAgB,EAAC,0BAAuB;AAE7D,OAA8B,EAAC,0BAA0B,EAAC,sCAAmC;AAC7F,OAAO,KAAK,EAAC,cAAc,EAAC,4BAAyB;AAIrD,eAAO,MAAM,eAAe;;SAI3B,CAAC;AAOF,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAC9E,mBAAmB,CAAC;AAEtB,2CAA2C;AAC3C,KAAK,qBAAqB,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GACvE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IAChD,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,eAAe,CAClC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,YAAY,8CAAgB;IAEnC,cAAc,IAAI,GAAG;IAOrB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAmB1C"}