@deck.gl/carto 9.0.0-alpha.7 → 9.0.0-beta.10

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 (499) 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 +1 -2
  5. package/{typed → dist}/api/common.d.ts.map +1 -1
  6. package/dist/{esm/api → api}/common.js +4 -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/{typed → dist}/api/request-with-parameters.d.ts +1 -1
  23. package/dist/api/request-with-parameters.d.ts.map +1 -0
  24. package/dist/api/request-with-parameters.js +53 -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 +6 -9
  30. package/dist/cartoSpatialTile-worker.js +3 -3
  31. package/dist/cartoVectorTile-worker.js +3 -3
  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 +1297 -1101
  36. package/dist/index.cjs +2700 -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/dist/layers/h3-tileset-2d.js +99 -0
  45. package/dist/layers/point-label-layer.js +150 -0
  46. package/dist/layers/quadbin-layer.js +21 -0
  47. package/{typed → dist}/layers/quadbin-tile-layer.d.ts +3 -3
  48. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -0
  49. package/dist/layers/quadbin-tile-layer.js +49 -0
  50. package/dist/layers/quadbin-tileset-2d.js +27 -0
  51. package/dist/layers/quadbin-utils.js +21 -0
  52. package/dist/layers/raster-layer-vertex.glsl.d.ts +3 -0
  53. package/dist/layers/raster-layer-vertex.glsl.js +68 -0
  54. package/{typed → dist}/layers/raster-layer.d.ts.map +1 -1
  55. package/dist/layers/raster-layer.js +95 -0
  56. package/{typed → dist}/layers/raster-tile-layer.d.ts +3 -3
  57. package/dist/layers/raster-tile-layer.d.ts.map +1 -0
  58. package/dist/layers/raster-tile-layer.js +45 -0
  59. package/dist/layers/schema/carto-properties-tile-loader.js +21 -0
  60. package/{typed → dist}/layers/schema/carto-properties-tile.d.ts +1 -1
  61. package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -0
  62. package/dist/layers/schema/carto-properties-tile.js +14 -0
  63. package/{typed → dist}/layers/schema/carto-raster-tile-loader.d.ts +3 -3
  64. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -0
  65. package/dist/layers/schema/carto-raster-tile-loader.js +35 -0
  66. package/{typed → dist}/layers/schema/carto-raster-tile.d.ts.map +1 -1
  67. package/dist/layers/schema/carto-raster-tile.js +44 -0
  68. package/dist/layers/schema/carto-spatial-tile-loader.js +35 -0
  69. package/{typed → dist}/layers/schema/carto-spatial-tile.d.ts +2 -2
  70. package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -0
  71. package/dist/layers/schema/carto-spatial-tile.js +38 -0
  72. package/dist/layers/schema/carto-tile.js +187 -0
  73. package/dist/layers/schema/carto-vector-tile-loader.js +65 -0
  74. package/dist/layers/schema/fast-pbf.js +7 -0
  75. package/dist/layers/schema/spatialjson-utils.js +15 -0
  76. package/dist/layers/schema/tile-loader-utils.js +6 -0
  77. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts +1 -1
  78. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts.map +1 -1
  79. package/dist/layers/spatial-index-tile-layer.js +67 -0
  80. package/{typed → dist}/layers/utils.d.ts +3 -3
  81. package/dist/layers/utils.d.ts.map +1 -0
  82. package/dist/layers/utils.js +74 -0
  83. package/{typed → dist}/layers/vector-tile-layer.d.ts +6 -5
  84. package/dist/layers/vector-tile-layer.d.ts.map +1 -0
  85. package/dist/layers/vector-tile-layer.js +104 -0
  86. package/{typed → dist}/sources/base-source.d.ts +2 -2
  87. package/dist/sources/base-source.d.ts.map +1 -0
  88. package/dist/sources/base-source.js +53 -0
  89. package/dist/sources/boundary-query-source.d.ts +11 -0
  90. package/dist/sources/boundary-query-source.d.ts.map +1 -0
  91. package/dist/sources/boundary-query-source.js +19 -0
  92. package/{typed → dist}/sources/boundary-table-source.d.ts +2 -2
  93. package/dist/sources/boundary-table-source.d.ts.map +1 -0
  94. package/dist/sources/boundary-table-source.js +16 -0
  95. package/{typed → dist}/sources/h3-query-source.d.ts +1 -1
  96. package/dist/sources/h3-query-source.d.ts.map +1 -0
  97. package/dist/sources/h3-query-source.js +19 -0
  98. package/{typed → dist}/sources/h3-table-source.d.ts +1 -1
  99. package/dist/sources/h3-table-source.d.ts.map +1 -0
  100. package/dist/sources/h3-table-source.js +16 -0
  101. package/{typed → dist}/sources/h3-tileset-source.d.ts +1 -1
  102. package/dist/sources/h3-tileset-source.d.ts.map +1 -0
  103. package/dist/sources/h3-tileset-source.js +6 -0
  104. package/dist/sources/index.d.ts +28 -0
  105. package/dist/sources/index.d.ts.map +1 -0
  106. package/dist/sources/index.js +13 -0
  107. package/{typed → dist}/sources/quadbin-query-source.d.ts +1 -1
  108. package/dist/sources/quadbin-query-source.d.ts.map +1 -0
  109. package/dist/sources/quadbin-query-source.js +19 -0
  110. package/{typed → dist}/sources/quadbin-table-source.d.ts +1 -1
  111. package/dist/sources/quadbin-table-source.d.ts.map +1 -0
  112. package/dist/sources/quadbin-table-source.js +16 -0
  113. package/{typed → dist}/sources/quadbin-tileset-source.d.ts +1 -1
  114. package/{typed → dist}/sources/quadbin-tileset-source.d.ts.map +1 -1
  115. package/dist/sources/quadbin-tileset-source.js +6 -0
  116. package/{typed → dist}/sources/raster-source.d.ts +1 -1
  117. package/dist/sources/raster-source.d.ts.map +1 -0
  118. package/dist/sources/raster-source.js +6 -0
  119. package/{typed → dist}/sources/types.d.ts +45 -7
  120. package/dist/sources/types.d.ts.map +1 -0
  121. package/dist/sources/types.js +1 -0
  122. package/dist/sources/vector-query-source.d.ts +4 -0
  123. package/dist/sources/vector-query-source.d.ts.map +1 -0
  124. package/dist/sources/vector-query-source.js +22 -0
  125. package/dist/sources/vector-table-source.d.ts +4 -0
  126. package/dist/sources/vector-table-source.d.ts.map +1 -0
  127. package/dist/sources/vector-table-source.js +19 -0
  128. package/{typed → dist}/sources/vector-tileset-source.d.ts +1 -1
  129. package/{typed → dist}/sources/vector-tileset-source.d.ts.map +1 -1
  130. package/dist/sources/vector-tileset-source.js +6 -0
  131. package/{typed → dist}/style/color-bins-style.d.ts +2 -2
  132. package/dist/style/color-bins-style.d.ts.map +1 -0
  133. package/dist/style/color-bins-style.js +21 -0
  134. package/{typed → dist}/style/color-categories-style.d.ts +2 -2
  135. package/dist/style/color-categories-style.d.ts.map +1 -0
  136. package/dist/style/color-categories-style.js +25 -0
  137. package/{typed → dist}/style/color-continuous-style.d.ts +2 -2
  138. package/dist/style/color-continuous-style.d.ts.map +1 -0
  139. package/dist/style/color-continuous-style.js +21 -0
  140. package/dist/style/palette.js +62 -0
  141. package/dist/style/utils.js +11 -0
  142. package/{typed → dist}/utils.d.ts +1 -1
  143. package/dist/utils.d.ts.map +1 -0
  144. package/dist/utils.js +45 -0
  145. package/dist/workers/cartoRasterTile.js +3 -0
  146. package/dist/workers/cartoSpatialTile.js +3 -0
  147. package/dist/workers/cartoVectorTile.js +3 -0
  148. package/dist.min.js +49 -93
  149. package/package.json +31 -26
  150. package/src/api/common.ts +1 -2
  151. package/src/api/fetch-map.ts +13 -4
  152. package/src/api/query.ts +1 -1
  153. package/src/api/request-with-parameters.ts +47 -34
  154. package/src/api/types.ts +20 -0
  155. package/src/constants.ts +5 -0
  156. package/src/index.ts +11 -7
  157. package/src/layers/h3-tile-layer.ts +3 -1
  158. package/src/layers/quadbin-tile-layer.ts +3 -1
  159. package/src/layers/raster-layer-vertex.glsl.ts +2 -2
  160. package/src/layers/raster-layer.ts +10 -16
  161. package/src/layers/raster-tile-layer.ts +3 -1
  162. package/src/layers/schema/carto-raster-tile-loader.ts +5 -5
  163. package/src/layers/schema/carto-raster-tile.ts +3 -4
  164. package/src/layers/spatial-index-tile-layer.ts +7 -3
  165. package/src/layers/vector-tile-layer.ts +17 -8
  166. package/src/sources/base-source.ts +4 -3
  167. package/src/sources/boundary-query-source.ts +27 -9
  168. package/src/sources/boundary-table-source.ts +13 -8
  169. package/src/sources/h3-query-source.ts +2 -1
  170. package/src/sources/h3-table-source.ts +2 -6
  171. package/src/sources/index.ts +7 -0
  172. package/src/sources/quadbin-query-source.ts +2 -1
  173. package/src/sources/quadbin-table-source.ts +2 -6
  174. package/src/sources/types.ts +49 -7
  175. package/src/sources/vector-query-source.ts +38 -4
  176. package/src/sources/vector-table-source.ts +32 -4
  177. package/src/utils.ts +5 -1
  178. package/dist/es5/api/carto-api-error.js +0 -83
  179. package/dist/es5/api/carto-api-error.js.map +0 -1
  180. package/dist/es5/api/common.js +0 -25
  181. package/dist/es5/api/common.js.map +0 -1
  182. package/dist/es5/api/endpoints.js +0 -61
  183. package/dist/es5/api/endpoints.js.map +0 -1
  184. package/dist/es5/api/fetch-map.js +0 -566
  185. package/dist/es5/api/fetch-map.js.map +0 -1
  186. package/dist/es5/api/index.js +0 -30
  187. package/dist/es5/api/index.js.map +0 -1
  188. package/dist/es5/api/layer-map.js +0 -634
  189. package/dist/es5/api/layer-map.js.map +0 -1
  190. package/dist/es5/api/parse-map.js +0 -347
  191. package/dist/es5/api/parse-map.js.map +0 -1
  192. package/dist/es5/api/query.js +0 -81
  193. package/dist/es5/api/query.js.map +0 -1
  194. package/dist/es5/api/request-with-parameters.js +0 -150
  195. package/dist/es5/api/request-with-parameters.js.map +0 -1
  196. package/dist/es5/api/types.js +0 -21
  197. package/dist/es5/api/types.js.map +0 -1
  198. package/dist/es5/basemap.js +0 -17
  199. package/dist/es5/basemap.js.map +0 -1
  200. package/dist/es5/index.js +0 -205
  201. package/dist/es5/index.js.map +0 -1
  202. package/dist/es5/layers/h3-tile-layer.js +0 -128
  203. package/dist/es5/layers/h3-tile-layer.js.map +0 -1
  204. package/dist/es5/layers/h3-tileset-2d.js +0 -172
  205. package/dist/es5/layers/h3-tileset-2d.js.map +0 -1
  206. package/dist/es5/layers/point-label-layer.js +0 -263
  207. package/dist/es5/layers/point-label-layer.js.map +0 -1
  208. package/dist/es5/layers/quadbin-layer.js +0 -72
  209. package/dist/es5/layers/quadbin-layer.js.map +0 -1
  210. package/dist/es5/layers/quadbin-tile-layer.js +0 -103
  211. package/dist/es5/layers/quadbin-tile-layer.js.map +0 -1
  212. package/dist/es5/layers/quadbin-tileset-2d.js +0 -76
  213. package/dist/es5/layers/quadbin-tileset-2d.js.map +0 -1
  214. package/dist/es5/layers/quadbin-utils.js +0 -60
  215. package/dist/es5/layers/quadbin-utils.js.map +0 -1
  216. package/dist/es5/layers/raster-layer-vertex.glsl.js +0 -9
  217. package/dist/es5/layers/raster-layer-vertex.glsl.js.map +0 -1
  218. package/dist/es5/layers/raster-layer.js +0 -174
  219. package/dist/es5/layers/raster-layer.js.map +0 -1
  220. package/dist/es5/layers/raster-tile-layer.js +0 -91
  221. package/dist/es5/layers/raster-tile-layer.js.map +0 -1
  222. package/dist/es5/layers/schema/carto-properties-tile-loader.js +0 -60
  223. package/dist/es5/layers/schema/carto-properties-tile-loader.js.map +0 -1
  224. package/dist/es5/layers/schema/carto-properties-tile.js +0 -38
  225. package/dist/es5/layers/schema/carto-properties-tile.js.map +0 -1
  226. package/dist/es5/layers/schema/carto-raster-tile-loader.js +0 -89
  227. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +0 -1
  228. package/dist/es5/layers/schema/carto-raster-tile.js +0 -79
  229. package/dist/es5/layers/schema/carto-raster-tile.js.map +0 -1
  230. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +0 -81
  231. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  232. package/dist/es5/layers/schema/carto-spatial-tile.js +0 -80
  233. package/dist/es5/layers/schema/carto-spatial-tile.js.map +0 -1
  234. package/dist/es5/layers/schema/carto-tile.js +0 -269
  235. package/dist/es5/layers/schema/carto-tile.js.map +0 -1
  236. package/dist/es5/layers/schema/carto-vector-tile-loader.js +0 -120
  237. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +0 -1
  238. package/dist/es5/layers/schema/fast-pbf.js +0 -14
  239. package/dist/es5/layers/schema/fast-pbf.js.map +0 -1
  240. package/dist/es5/layers/schema/spatialjson-utils.js +0 -42
  241. package/dist/es5/layers/schema/spatialjson-utils.js.map +0 -1
  242. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  243. package/dist/es5/layers/schema/tile-loader-utils.js.map +0 -1
  244. package/dist/es5/layers/spatial-index-tile-layer.js +0 -126
  245. package/dist/es5/layers/spatial-index-tile-layer.js.map +0 -1
  246. package/dist/es5/layers/utils.js +0 -131
  247. package/dist/es5/layers/utils.js.map +0 -1
  248. package/dist/es5/layers/vector-tile-layer.js +0 -248
  249. package/dist/es5/layers/vector-tile-layer.js.map +0 -1
  250. package/dist/es5/sources/base-source.js +0 -128
  251. package/dist/es5/sources/base-source.js.map +0 -1
  252. package/dist/es5/sources/boundary-query-source.js +0 -51
  253. package/dist/es5/sources/boundary-query-source.js.map +0 -1
  254. package/dist/es5/sources/boundary-table-source.js +0 -51
  255. package/dist/es5/sources/boundary-table-source.js.map +0 -1
  256. package/dist/es5/sources/h3-query-source.js +0 -56
  257. package/dist/es5/sources/h3-query-source.js.map +0 -1
  258. package/dist/es5/sources/h3-table-source.js +0 -56
  259. package/dist/es5/sources/h3-table-source.js.map +0 -1
  260. package/dist/es5/sources/h3-tileset-source.js +0 -43
  261. package/dist/es5/sources/h3-tileset-source.js.map +0 -1
  262. package/dist/es5/sources/index.js +0 -110
  263. package/dist/es5/sources/index.js.map +0 -1
  264. package/dist/es5/sources/quadbin-query-source.js +0 -56
  265. package/dist/es5/sources/quadbin-query-source.js.map +0 -1
  266. package/dist/es5/sources/quadbin-table-source.js +0 -56
  267. package/dist/es5/sources/quadbin-table-source.js.map +0 -1
  268. package/dist/es5/sources/quadbin-tileset-source.js +0 -43
  269. package/dist/es5/sources/quadbin-tileset-source.js.map +0 -1
  270. package/dist/es5/sources/raster-source.js +0 -43
  271. package/dist/es5/sources/raster-source.js.map +0 -1
  272. package/dist/es5/sources/types.js +0 -2
  273. package/dist/es5/sources/types.js.map +0 -1
  274. package/dist/es5/sources/vector-query-source.js +0 -51
  275. package/dist/es5/sources/vector-query-source.js.map +0 -1
  276. package/dist/es5/sources/vector-table-source.js +0 -51
  277. package/dist/es5/sources/vector-table-source.js.map +0 -1
  278. package/dist/es5/sources/vector-tileset-source.js +0 -43
  279. package/dist/es5/sources/vector-tileset-source.js.map +0 -1
  280. package/dist/es5/style/color-bins-style.js +0 -37
  281. package/dist/es5/style/color-bins-style.js.map +0 -1
  282. package/dist/es5/style/color-categories-style.js +0 -65
  283. package/dist/es5/style/color-categories-style.js.map +0 -1
  284. package/dist/es5/style/color-continuous-style.js +0 -37
  285. package/dist/es5/style/color-continuous-style.js.map +0 -1
  286. package/dist/es5/style/palette.js +0 -81
  287. package/dist/es5/style/palette.js.map +0 -1
  288. package/dist/es5/style/utils.js +0 -28
  289. package/dist/es5/style/utils.js.map +0 -1
  290. package/dist/es5/utils.js +0 -65
  291. package/dist/es5/utils.js.map +0 -1
  292. package/dist/es5/workers/cartoRasterTile.js +0 -10
  293. package/dist/es5/workers/cartoRasterTile.js.map +0 -1
  294. package/dist/es5/workers/cartoSpatialTile.js +0 -10
  295. package/dist/es5/workers/cartoSpatialTile.js.map +0 -1
  296. package/dist/es5/workers/cartoVectorTile.js +0 -10
  297. package/dist/es5/workers/cartoVectorTile.js.map +0 -1
  298. package/dist/esm/api/carto-api-error.js +0 -46
  299. package/dist/esm/api/carto-api-error.js.map +0 -1
  300. package/dist/esm/api/common.js.map +0 -1
  301. package/dist/esm/api/endpoints.js +0 -41
  302. package/dist/esm/api/endpoints.js.map +0 -1
  303. package/dist/esm/api/fetch-map.js +0 -298
  304. package/dist/esm/api/fetch-map.js.map +0 -1
  305. package/dist/esm/api/index.js +0 -4
  306. package/dist/esm/api/index.js.map +0 -1
  307. package/dist/esm/api/layer-map.js +0 -520
  308. package/dist/esm/api/layer-map.js.map +0 -1
  309. package/dist/esm/api/parse-map.js +0 -343
  310. package/dist/esm/api/parse-map.js.map +0 -1
  311. package/dist/esm/api/query.js +0 -40
  312. package/dist/esm/api/query.js.map +0 -1
  313. package/dist/esm/api/request-with-parameters.js +0 -82
  314. package/dist/esm/api/request-with-parameters.js.map +0 -1
  315. package/dist/esm/api/types.js +0 -14
  316. package/dist/esm/api/types.js.map +0 -1
  317. package/dist/esm/basemap.js +0 -10
  318. package/dist/esm/basemap.js.map +0 -1
  319. package/dist/esm/index.js +0 -35
  320. package/dist/esm/index.js.map +0 -1
  321. package/dist/esm/layers/h3-tile-layer.js +0 -77
  322. package/dist/esm/layers/h3-tile-layer.js.map +0 -1
  323. package/dist/esm/layers/h3-tileset-2d.js +0 -119
  324. package/dist/esm/layers/h3-tileset-2d.js.map +0 -1
  325. package/dist/esm/layers/point-label-layer.js +0 -194
  326. package/dist/esm/layers/point-label-layer.js.map +0 -1
  327. package/dist/esm/layers/quadbin-layer.js +0 -31
  328. package/dist/esm/layers/quadbin-layer.js.map +0 -1
  329. package/dist/esm/layers/quadbin-tile-layer.js +0 -51
  330. package/dist/esm/layers/quadbin-tile-layer.js.map +0 -1
  331. package/dist/esm/layers/quadbin-tileset-2d.js +0 -39
  332. package/dist/esm/layers/quadbin-tileset-2d.js.map +0 -1
  333. package/dist/esm/layers/quadbin-utils.js +0 -23
  334. package/dist/esm/layers/quadbin-utils.js.map +0 -1
  335. package/dist/esm/layers/raster-layer-vertex.glsl.js +0 -99
  336. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +0 -1
  337. package/dist/esm/layers/raster-layer.js +0 -108
  338. package/dist/esm/layers/raster-layer.js.map +0 -1
  339. package/dist/esm/layers/raster-tile-layer.js +0 -48
  340. package/dist/esm/layers/raster-tile-layer.js.map +0 -1
  341. package/dist/esm/layers/schema/carto-properties-tile-loader.js +0 -23
  342. package/dist/esm/layers/schema/carto-properties-tile-loader.js.map +0 -1
  343. package/dist/esm/layers/schema/carto-properties-tile.js +0 -18
  344. package/dist/esm/layers/schema/carto-properties-tile.js.map +0 -1
  345. package/dist/esm/layers/schema/carto-raster-tile-loader.js +0 -54
  346. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +0 -1
  347. package/dist/esm/layers/schema/carto-raster-tile.js +0 -51
  348. package/dist/esm/layers/schema/carto-raster-tile.js.map +0 -1
  349. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +0 -44
  350. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  351. package/dist/esm/layers/schema/carto-spatial-tile.js +0 -47
  352. package/dist/esm/layers/schema/carto-spatial-tile.js.map +0 -1
  353. package/dist/esm/layers/schema/carto-tile.js +0 -197
  354. package/dist/esm/layers/schema/carto-tile.js.map +0 -1
  355. package/dist/esm/layers/schema/carto-vector-tile-loader.js +0 -82
  356. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +0 -1
  357. package/dist/esm/layers/schema/fast-pbf.js +0 -7
  358. package/dist/esm/layers/schema/fast-pbf.js.map +0 -1
  359. package/dist/esm/layers/schema/spatialjson-utils.js +0 -27
  360. package/dist/esm/layers/schema/spatialjson-utils.js.map +0 -1
  361. package/dist/esm/layers/schema/tile-loader-utils.js +0 -7
  362. package/dist/esm/layers/schema/tile-loader-utils.js.map +0 -1
  363. package/dist/esm/layers/spatial-index-tile-layer.js +0 -86
  364. package/dist/esm/layers/spatial-index-tile-layer.js.map +0 -1
  365. package/dist/esm/layers/utils.js +0 -85
  366. package/dist/esm/layers/utils.js.map +0 -1
  367. package/dist/esm/layers/vector-tile-layer.js +0 -143
  368. package/dist/esm/layers/vector-tile-layer.js.map +0 -1
  369. package/dist/esm/sources/base-source.js +0 -72
  370. package/dist/esm/sources/base-source.js.map +0 -1
  371. package/dist/esm/sources/boundary-query-source.js +0 -21
  372. package/dist/esm/sources/boundary-query-source.js.map +0 -1
  373. package/dist/esm/sources/boundary-table-source.js +0 -21
  374. package/dist/esm/sources/boundary-table-source.js.map +0 -1
  375. package/dist/esm/sources/h3-query-source.js +0 -27
  376. package/dist/esm/sources/h3-query-source.js.map +0 -1
  377. package/dist/esm/sources/h3-table-source.js +0 -27
  378. package/dist/esm/sources/h3-table-source.js.map +0 -1
  379. package/dist/esm/sources/h3-tileset-source.js +0 -11
  380. package/dist/esm/sources/h3-tileset-source.js.map +0 -1
  381. package/dist/esm/sources/index.js +0 -14
  382. package/dist/esm/sources/index.js.map +0 -1
  383. package/dist/esm/sources/quadbin-query-source.js +0 -27
  384. package/dist/esm/sources/quadbin-query-source.js.map +0 -1
  385. package/dist/esm/sources/quadbin-table-source.js +0 -27
  386. package/dist/esm/sources/quadbin-table-source.js.map +0 -1
  387. package/dist/esm/sources/quadbin-tileset-source.js +0 -11
  388. package/dist/esm/sources/quadbin-tileset-source.js.map +0 -1
  389. package/dist/esm/sources/raster-source.js +0 -11
  390. package/dist/esm/sources/raster-source.js.map +0 -1
  391. package/dist/esm/sources/types.js +0 -2
  392. package/dist/esm/sources/types.js.map +0 -1
  393. package/dist/esm/sources/vector-query-source.js +0 -20
  394. package/dist/esm/sources/vector-query-source.js.map +0 -1
  395. package/dist/esm/sources/vector-table-source.js +0 -20
  396. package/dist/esm/sources/vector-table-source.js.map +0 -1
  397. package/dist/esm/sources/vector-tileset-source.js +0 -11
  398. package/dist/esm/sources/vector-tileset-source.js.map +0 -1
  399. package/dist/esm/style/color-bins-style.js +0 -19
  400. package/dist/esm/style/color-bins-style.js.map +0 -1
  401. package/dist/esm/style/color-categories-style.js +0 -24
  402. package/dist/esm/style/color-categories-style.js.map +0 -1
  403. package/dist/esm/style/color-continuous-style.js +0 -19
  404. package/dist/esm/style/color-continuous-style.js.map +0 -1
  405. package/dist/esm/style/palette.js +0 -51
  406. package/dist/esm/style/palette.js.map +0 -1
  407. package/dist/esm/style/utils.js +0 -15
  408. package/dist/esm/style/utils.js.map +0 -1
  409. package/dist/esm/utils.js +0 -51
  410. package/dist/esm/utils.js.map +0 -1
  411. package/dist/esm/workers/cartoRasterTile.js +0 -4
  412. package/dist/esm/workers/cartoRasterTile.js.map +0 -1
  413. package/dist/esm/workers/cartoSpatialTile.js +0 -4
  414. package/dist/esm/workers/cartoSpatialTile.js.map +0 -1
  415. package/dist/esm/workers/cartoVectorTile.js +0 -4
  416. package/dist/esm/workers/cartoVectorTile.js.map +0 -1
  417. package/src/.DS_Store +0 -0
  418. package/typed/api/carto-api-error.d.ts.map +0 -1
  419. package/typed/api/endpoints.d.ts.map +0 -1
  420. package/typed/api/index.d.ts +0 -7
  421. package/typed/api/index.d.ts.map +0 -1
  422. package/typed/api/layer-map.d.ts.map +0 -1
  423. package/typed/api/query.d.ts.map +0 -1
  424. package/typed/api/request-with-parameters.d.ts.map +0 -1
  425. package/typed/api/types.d.ts.map +0 -1
  426. package/typed/index.d.ts +0 -37
  427. package/typed/index.d.ts.map +0 -1
  428. package/typed/layers/h3-tile-layer.d.ts.map +0 -1
  429. package/typed/layers/quadbin-tile-layer.d.ts.map +0 -1
  430. package/typed/layers/raster-layer-vertex.glsl.d.ts +0 -3
  431. package/typed/layers/raster-tile-layer.d.ts.map +0 -1
  432. package/typed/layers/schema/carto-properties-tile.d.ts.map +0 -1
  433. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +0 -1
  434. package/typed/layers/schema/carto-spatial-tile.d.ts.map +0 -1
  435. package/typed/layers/utils.d.ts.map +0 -1
  436. package/typed/layers/vector-tile-layer.d.ts.map +0 -1
  437. package/typed/sources/base-source.d.ts.map +0 -1
  438. package/typed/sources/boundary-query-source.d.ts +0 -10
  439. package/typed/sources/boundary-query-source.d.ts.map +0 -1
  440. package/typed/sources/boundary-table-source.d.ts.map +0 -1
  441. package/typed/sources/h3-query-source.d.ts.map +0 -1
  442. package/typed/sources/h3-table-source.d.ts.map +0 -1
  443. package/typed/sources/h3-tileset-source.d.ts.map +0 -1
  444. package/typed/sources/index.d.ts +0 -27
  445. package/typed/sources/index.d.ts.map +0 -1
  446. package/typed/sources/quadbin-query-source.d.ts.map +0 -1
  447. package/typed/sources/quadbin-table-source.d.ts.map +0 -1
  448. package/typed/sources/raster-source.d.ts.map +0 -1
  449. package/typed/sources/types.d.ts.map +0 -1
  450. package/typed/sources/vector-query-source.d.ts +0 -4
  451. package/typed/sources/vector-query-source.d.ts.map +0 -1
  452. package/typed/sources/vector-table-source.d.ts +0 -4
  453. package/typed/sources/vector-table-source.d.ts.map +0 -1
  454. package/typed/style/color-bins-style.d.ts.map +0 -1
  455. package/typed/style/color-categories-style.d.ts.map +0 -1
  456. package/typed/style/color-continuous-style.d.ts.map +0 -1
  457. package/typed/utils.d.ts.map +0 -1
  458. /package/{typed → dist}/api/fetch-map.d.ts +0 -0
  459. /package/{typed → dist}/api/parse-map.d.ts +0 -0
  460. /package/{typed → dist}/api/parse-map.d.ts.map +0 -0
  461. /package/{typed → dist}/basemap.d.ts +0 -0
  462. /package/{typed → dist}/basemap.d.ts.map +0 -0
  463. /package/{typed → dist}/layers/h3-tileset-2d.d.ts +0 -0
  464. /package/{typed → dist}/layers/h3-tileset-2d.d.ts.map +0 -0
  465. /package/{typed → dist}/layers/point-label-layer.d.ts +0 -0
  466. /package/{typed → dist}/layers/point-label-layer.d.ts.map +0 -0
  467. /package/{typed → dist}/layers/quadbin-layer.d.ts +0 -0
  468. /package/{typed → dist}/layers/quadbin-layer.d.ts.map +0 -0
  469. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts +0 -0
  470. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts.map +0 -0
  471. /package/{typed → dist}/layers/quadbin-utils.d.ts +0 -0
  472. /package/{typed → dist}/layers/quadbin-utils.d.ts.map +0 -0
  473. /package/{typed → dist}/layers/raster-layer-vertex.glsl.d.ts.map +0 -0
  474. /package/{typed → dist}/layers/raster-layer.d.ts +0 -0
  475. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts +0 -0
  476. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts.map +0 -0
  477. /package/{typed → dist}/layers/schema/carto-raster-tile.d.ts +0 -0
  478. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts +0 -0
  479. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts.map +0 -0
  480. /package/{typed → dist}/layers/schema/carto-tile.d.ts +0 -0
  481. /package/{typed → dist}/layers/schema/carto-tile.d.ts.map +0 -0
  482. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts +0 -0
  483. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts.map +0 -0
  484. /package/{typed → dist}/layers/schema/fast-pbf.d.ts +0 -0
  485. /package/{typed → dist}/layers/schema/fast-pbf.d.ts.map +0 -0
  486. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts +0 -0
  487. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts.map +0 -0
  488. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts +0 -0
  489. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts.map +0 -0
  490. /package/{typed → dist}/style/palette.d.ts +0 -0
  491. /package/{typed → dist}/style/palette.d.ts.map +0 -0
  492. /package/{typed → dist}/style/utils.d.ts +0 -0
  493. /package/{typed → dist}/style/utils.d.ts.map +0 -0
  494. /package/{typed → dist}/workers/cartoRasterTile.d.ts +0 -0
  495. /package/{typed → dist}/workers/cartoRasterTile.d.ts.map +0 -0
  496. /package/{typed → dist}/workers/cartoSpatialTile.d.ts +0 -0
  497. /package/{typed → dist}/workers/cartoSpatialTile.d.ts.map +0 -0
  498. /package/{typed → dist}/workers/cartoVectorTile.d.ts +0 -0
  499. /package/{typed → dist}/workers/cartoVectorTile.d.ts.map +0 -0
@@ -1,77 +0,0 @@
1
- import { CompositeLayer } from '@deck.gl/core';
2
- import { H3HexagonLayer } from '@deck.gl/geo-layers';
3
- import H3Tileset2D, { getHexagonResolution } from './h3-tileset-2d';
4
- import SpatialIndexTileLayer from './spatial-index-tile-layer';
5
- import { injectAccessToken, TilejsonPropType } from './utils';
6
- export const renderSubLayers = props => {
7
- const {
8
- data
9
- } = props;
10
- const {
11
- index
12
- } = props.tile;
13
- if (!data || !data.length) return null;
14
- return new H3HexagonLayer(props, {
15
- getHexagon: d => d.id,
16
- centerHexagon: index,
17
- highPrecision: true
18
- });
19
- };
20
- const defaultProps = {
21
- data: TilejsonPropType
22
- };
23
- export default class H3TileLayer extends CompositeLayer {
24
- initializeState() {
25
- H3HexagonLayer._checkH3Lib();
26
- }
27
-
28
- getLoadOptions() {
29
- const loadOptions = super.getLoadOptions() || {};
30
- const tileJSON = this.props.data;
31
- injectAccessToken(loadOptions, tileJSON.accessToken);
32
- loadOptions.cartoSpatialTile = { ...loadOptions.cartoSpatialTile,
33
- scheme: 'h3'
34
- };
35
- return loadOptions;
36
- }
37
-
38
- renderLayers() {
39
- const tileJSON = this.props.data;
40
- if (!tileJSON) return null;
41
- const {
42
- tiles: data
43
- } = tileJSON;
44
- let {
45
- minresolution,
46
- maxresolution
47
- } = tileJSON;
48
-
49
- if (this.props.minZoom) {
50
- minresolution = Math.max(minresolution, getHexagonResolution({
51
- zoom: this.props.minZoom,
52
- latitude: 0
53
- }));
54
- }
55
-
56
- if (this.props.maxZoom) {
57
- maxresolution = Math.min(maxresolution, getHexagonResolution({
58
- zoom: this.props.maxZoom,
59
- latitude: 0
60
- }));
61
- }
62
-
63
- return [new SpatialIndexTileLayer(this.props, {
64
- id: `h3-tile-layer-${this.props.id}`,
65
- data,
66
- TilesetClass: H3Tileset2D,
67
- renderSubLayers,
68
- minZoom: minresolution,
69
- maxZoom: maxresolution,
70
- loadOptions: this.getLoadOptions()
71
- })];
72
- }
73
-
74
- }
75
- H3TileLayer.layerName = 'H3TileLayer';
76
- H3TileLayer.defaultProps = defaultProps;
77
- //# sourceMappingURL=h3-tile-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["CompositeLayer","H3HexagonLayer","H3Tileset2D","getHexagonResolution","SpatialIndexTileLayer","injectAccessToken","TilejsonPropType","renderSubLayers","props","data","index","tile","length","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","H3TileLayer","initializeState","_checkH3Lib","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","minresolution","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,SAAQC,cAAR,QAAkD,qBAAlD;AACA,OAAOC,WAAP,IAAqBC,oBAArB,QAAgD,iBAAhD;AACA,OAAOC,qBAAP,MAAgE,4BAAhE;AAEA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,SAAlD;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,QAAM;AAACE,IAAAA;AAAD,MAAUF,KAAK,CAACG,IAAtB;AACA,MAAI,CAACF,IAAD,IAAS,CAACA,IAAI,CAACG,MAAnB,EAA2B,OAAO,IAAP;AAE3B,SAAO,IAAIX,cAAJ,CAAmBO,KAAnB,EAA0B;AAC/BK,IAAAA,UAAU,EAAEC,CAAC,IAAIA,CAAC,CAACC,EADY;AAE/BC,IAAAA,aAAa,EAAEN,KAFgB;AAG/BO,IAAAA,aAAa,EAAE;AAHgB,GAA1B,CAAP;AAKD,CAVM;AAYP,MAAMC,YAA4C,GAAG;AACnDT,EAAAA,IAAI,EAAEH;AAD6C,CAArD;AAaA,eAAe,MAAMa,WAAN,SAAoEnB,cAApE,CAEb;AAIAoB,EAAAA,eAAe,GAAS;AACtBnB,IAAAA,cAAc,CAACoB,WAAf;AACD;;AAEDC,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKhB,KAAL,CAAWC,IAA5B;AACAJ,IAAAA,iBAAiB,CAACkB,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKhB,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACe,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEpB;AAAR,QAAgBe,QAAtB;AACA,QAAI;AAACM,MAAAA,aAAD;AAAgBC,MAAAA;AAAhB,QAAiCP,QAArC;;AAGA,QAAI,KAAKhB,KAAL,CAAWwB,OAAf,EAAwB;AACtBF,MAAAA,aAAa,GAAGG,IAAI,CAACC,GAAL,CACdJ,aADc,EAEd3B,oBAAoB,CAAC;AAACgC,QAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAWwB,OAAlB;AAA2BI,QAAAA,QAAQ,EAAE;AAArC,OAAD,CAFN,CAAhB;AAID;;AACD,QAAI,KAAK5B,KAAL,CAAW6B,OAAf,EAAwB;AACtBN,MAAAA,aAAa,GAAGE,IAAI,CAACK,GAAL,CACdP,aADc,EAEd5B,oBAAoB,CAAC;AAACgC,QAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAW6B,OAAlB;AAA2BD,QAAAA,QAAQ,EAAE;AAArC,OAAD,CAFN,CAAhB;AAID;;AAID,WAAO,CAEL,IAAIhC,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCO,MAAAA,EAAE,EAAG,iBAAgB,KAAKP,KAAL,CAAWO,EAAG,EADC;AAEpCN,MAAAA,IAFoC;AAIpC8B,MAAAA,YAAY,EAAErC,WAJsB;AAKpCK,MAAAA,eALoC;AAOpCyB,MAAAA,OAAO,EAAEF,aAP2B;AAQpCO,MAAAA,OAAO,EAAEN,aAR2B;AASpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AATuB,KAAtC,CAFK,CAAP;AAcD;;AArDD;AAFmBH,W,CAGZqB,S,GAAY,a;AAHArB,W,CAIZD,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport {H3HexagonLayer, H3HexagonLayerProps} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer, {SpatialIndexTileLayerProps} from './spatial-index-tile-layer';\nimport type {TilejsonResult} from '../sources/types';\nimport {injectAccessToken, TilejsonPropType} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3TileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = unknown> = _H3TileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = Omit<H3HexagonLayerProps<DataT>, 'data'> &\n Omit<SpatialIndexTileLayerProps<DataT>, 'data'> & {\n data: null | TilejsonResult | Promise<TilejsonResult>;\n };\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as TilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'h3'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as TilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data} = tileJSON;\n let {minresolution, maxresolution} = tileJSON;\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: H3Tileset2D as any,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
@@ -1,119 +0,0 @@
1
- import { _Tileset2D as Tileset2D } from '@deck.gl/geo-layers';
2
- import { polygonToCells, latLngToCell, getResolution, cellToBoundary, cellToParent, gridDisk } from 'h3-js';
3
-
4
- function getHexagonsInBoundingBox({
5
- west,
6
- north,
7
- east,
8
- south
9
- }, resolution) {
10
- const longitudeSpan = Math.abs(east - west);
11
-
12
- if (longitudeSpan > 180) {
13
- const nSegments = Math.ceil(longitudeSpan / 180);
14
- let h3Indices = [];
15
-
16
- for (let s = 0; s < nSegments; s++) {
17
- const segmentEast = east + s * 180;
18
- const segmentWest = Math.min(segmentEast + 179.9999999, west);
19
- h3Indices = h3Indices.concat(getHexagonsInBoundingBox({
20
- west: segmentWest,
21
- north,
22
- east: segmentEast,
23
- south
24
- }, resolution));
25
- }
26
-
27
- return [...new Set(h3Indices)];
28
- }
29
-
30
- const oversample = 2;
31
- const h3Indices = polygonToCells([[[west, north], [west, south], [east, south], [east, north], [west, north]]], resolution + oversample, true);
32
- return oversample ? [...new Set(h3Indices.map(i => cellToParent(i, resolution)))] : h3Indices;
33
- }
34
-
35
- function tileToBoundingBox(index) {
36
- const coordinates = cellToBoundary(index);
37
- const latitudes = coordinates.map(c => c[0]);
38
- const longitudes = coordinates.map(c => c[1]);
39
- const west = Math.min(...longitudes);
40
- const south = Math.min(...latitudes);
41
- const east = Math.max(...longitudes);
42
- const north = Math.max(...latitudes);
43
- return {
44
- west,
45
- south,
46
- east,
47
- north
48
- };
49
- }
50
-
51
- const BIAS = 2;
52
- export function getHexagonResolution(viewport) {
53
- const hexagonScaleFactor = 2 / 3 * viewport.zoom;
54
- const latitudeScaleFactor = Math.log(1 / Math.cos(Math.PI * viewport.latitude / 180));
55
- return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));
56
- }
57
- export default class H3Tileset2D extends Tileset2D {
58
- getTileIndices({
59
- viewport,
60
- minZoom,
61
- maxZoom
62
- }) {
63
- if (viewport.latitude === undefined) return [];
64
- const [east, south, west, north] = viewport.getBounds();
65
- let z = getHexagonResolution(viewport);
66
- let indices;
67
-
68
- if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
69
- return [];
70
- }
71
-
72
- if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
73
- z = maxZoom;
74
- const center = latLngToCell(viewport.latitude, viewport.longitude, maxZoom);
75
- indices = gridDisk(center, 1);
76
- } else {
77
- indices = getHexagonsInBoundingBox({
78
- west,
79
- north,
80
- east,
81
- south
82
- }, z);
83
- }
84
-
85
- return indices.map(i => ({
86
- i
87
- }));
88
- }
89
-
90
- getTileId({
91
- i
92
- }) {
93
- return i;
94
- }
95
-
96
- getTileMetadata({
97
- i
98
- }) {
99
- return {
100
- bbox: tileToBoundingBox(i)
101
- };
102
- }
103
-
104
- getTileZoom({
105
- i
106
- }) {
107
- return getResolution(i);
108
- }
109
-
110
- getParentIndex(index) {
111
- const resolution = getResolution(index.i);
112
- const i = cellToParent(index.i, resolution - 1);
113
- return {
114
- i
115
- };
116
- }
117
-
118
- }
119
- //# sourceMappingURL=h3-tileset-2d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/h3-tileset-2d.ts"],"names":["_Tileset2D","Tileset2D","polygonToCells","latLngToCell","getResolution","cellToBoundary","cellToParent","gridDisk","getHexagonsInBoundingBox","west","north","east","south","resolution","longitudeSpan","Math","abs","nSegments","ceil","h3Indices","s","segmentEast","segmentWest","min","concat","Set","oversample","map","i","tileToBoundingBox","index","coordinates","latitudes","c","longitudes","max","BIAS","getHexagonResolution","viewport","hexagonScaleFactor","zoom","latitudeScaleFactor","log","cos","PI","latitude","floor","H3Tileset2D","getTileIndices","minZoom","maxZoom","undefined","getBounds","z","indices","Number","isFinite","center","longitude","getTileId","getTileMetadata","bbox","getTileZoom","getParentIndex"],"mappings":"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","sourcesContent":["import {_Tileset2D as Tileset2D, GeoBoundingBox} from '@deck.gl/geo-layers';\nimport {\n polygonToCells,\n latLngToCell,\n getResolution,\n cellToBoundary,\n cellToParent,\n gridDisk\n} from 'h3-js';\n\nexport type H3TileIndex = {i: string};\n\nfunction getHexagonsInBoundingBox(\n {west, north, east, south}: GeoBoundingBox,\n resolution: number\n): string[] {\n const longitudeSpan = Math.abs(east - west);\n if (longitudeSpan > 180) {\n // This is a known issue in h3-js: polygonToCells does not work correctly\n // when longitude span is larger than 180 degrees.\n const nSegments = Math.ceil(longitudeSpan / 180);\n let h3Indices: string[] = [];\n for (let s = 0; s < nSegments; s++) {\n const segmentEast = east + s * 180;\n const segmentWest = Math.min(segmentEast + 179.9999999, west);\n h3Indices = h3Indices.concat(\n getHexagonsInBoundingBox({west: segmentWest, north, east: segmentEast, south}, resolution)\n );\n }\n return [...new Set(h3Indices)];\n }\n\n // `polygonToCells()` fills based on hexagon center, which means tiles vanish\n // prematurely. Get more accurate coverage by oversampling\n const oversample = 2;\n const h3Indices = polygonToCells(\n [\n [\n [west, north],\n [west, south],\n [east, south],\n [east, north],\n [west, north]\n ]\n ],\n resolution + oversample,\n true\n );\n\n return oversample ? [...new Set(h3Indices.map(i => cellToParent(i, resolution)))] : h3Indices;\n}\n\nfunction tileToBoundingBox(index: string): GeoBoundingBox {\n const coordinates = cellToBoundary(index);\n const latitudes = coordinates.map(c => c[0]);\n const longitudes = coordinates.map(c => c[1]);\n const west = Math.min(...longitudes);\n const south = Math.min(...latitudes);\n const east = Math.max(...longitudes);\n const north = Math.max(...latitudes);\n return {west, south, east, north};\n}\n\n// Resolution conversion function. Takes a WebMercatorViewport and returns\n// a H3 resolution such that the screen space size of the hexagons is\n// similar\n// Relative scale factor (0 = no biasing, 2 = a few hexagons cover view)\nconst BIAS = 2;\nexport function getHexagonResolution(viewport): number {\n const hexagonScaleFactor = (2 / 3) * viewport.zoom;\n const latitudeScaleFactor = Math.log(1 / Math.cos((Math.PI * viewport.latitude) / 180));\n\n // Clip and bias\n return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));\n}\n\nexport default class H3Tileset2D extends Tileset2D {\n /**\n * Returns all tile indices in the current viewport. If the current zoom level is smaller\n * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,\n * return tiles that are on maxZoom.\n */\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileIndices({viewport, minZoom, maxZoom}): H3TileIndex[] {\n if (viewport.latitude === undefined) return [];\n const [east, south, west, north] = viewport.getBounds();\n\n let z = getHexagonResolution(viewport);\n let indices: string[];\n if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {\n // TODO support `extent` prop\n return [];\n }\n if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n\n // Once we are at max zoom, getHexagonsInBoundingBox doesn't work, simply\n // get a ring centered on the hexagon in the viewport center\n const center = latLngToCell(viewport.latitude, viewport.longitude, maxZoom);\n indices = gridDisk(center, 1);\n } else {\n indices = getHexagonsInBoundingBox({west, north, east, south}, z);\n }\n\n return indices.map(i => ({i}));\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileId({i}: H3TileIndex): string {\n return i;\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileMetadata({i}: H3TileIndex) {\n return {bbox: tileToBoundingBox(i)};\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileZoom({i}: H3TileIndex): number {\n return getResolution(i);\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getParentIndex(index: H3TileIndex): H3TileIndex {\n const resolution = getResolution(index.i);\n const i = cellToParent(index.i, resolution - 1);\n return {i};\n }\n}\n"],"file":"h3-tileset-2d.js"}
@@ -1,194 +0,0 @@
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
-
5
- class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
6
- getShaders() {
7
- const shaders = super.getShaders();
8
- let vs = shaders.vs;
9
- vs = vs.replaceAll('padding.', '_padding.');
10
- vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
11
- return { ...shaders,
12
- vs
13
- };
14
- }
15
-
16
- }
17
-
18
- EnhancedTextBackgroundLayer.layerName = 'EnhancedTextBackgroundLayer';
19
-
20
- class EnhancedTextLayer extends TextLayer {
21
- filterSubLayer({
22
- layer,
23
- renderPass
24
- }) {
25
- const background = layer.id.includes('primary-background');
26
-
27
- if (renderPass === 'collision') {
28
- return background;
29
- }
30
-
31
- return !background;
32
- }
33
-
34
- }
35
-
36
- EnhancedTextLayer.layerName = 'EnhancedTextLayer';
37
- const defaultProps = { ...TextLayer.defaultProps,
38
- getRadius: {
39
- type: 'accessor',
40
- value: 1
41
- },
42
- radiusScale: {
43
- type: 'number',
44
- min: 0,
45
- value: 1
46
- }
47
- };
48
- export default class PointLabelLayer extends CompositeLayer {
49
- calculatePixelOffset(secondary) {
50
- const {
51
- getTextAnchor: anchor,
52
- getAlignmentBaseline: alignment,
53
- getRadius,
54
- getSecondaryText,
55
- radiusScale,
56
- secondarySizeScale,
57
- sizeScale
58
- } = this.props;
59
- const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
60
- const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
61
- const xPadding = sizeScale / 4;
62
- const yPadding = sizeScale * (1 + 1 / 4);
63
- const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;
64
- let yOffset = secondary ? secondaryOffset : 0;
65
-
66
- if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {
67
- yOffset -= secondaryOffset;
68
- yOffset -= secondarySizeScale;
69
- yOffset += sizeScale;
70
- }
71
-
72
- const radiusPadding = 1 + 1 / 4;
73
- return typeof getRadius === 'function' ? (d, info) => {
74
- const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
75
- return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
76
- } : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset];
77
- }
78
-
79
- calculateBackgroundPadding() {
80
- const {
81
- getTextAnchor: anchor,
82
- getAlignmentBaseline: alignment,
83
- sizeScale
84
- } = this.props;
85
- const paddingX = 12 * sizeScale;
86
- const paddingY = 3 * sizeScale;
87
- const backgroundPadding = [0, 0, 0, 0];
88
-
89
- if (alignment === 'top') {
90
- backgroundPadding[TOP] = paddingY;
91
- } else if (alignment === 'bottom') {
92
- backgroundPadding[BOTTOM] = paddingY;
93
- } else {
94
- backgroundPadding[TOP] = 0.5 * paddingY;
95
- backgroundPadding[BOTTOM] = 0.5 * paddingY;
96
- }
97
-
98
- if (anchor === 'start') {
99
- backgroundPadding[LEFT] = paddingX;
100
- } else if (anchor === 'end') {
101
- backgroundPadding[RIGHT] = paddingX;
102
- } else {
103
- backgroundPadding[LEFT] = 0.5 * paddingX;
104
- backgroundPadding[RIGHT] = 0.5 * paddingX;
105
- }
106
-
107
- return backgroundPadding;
108
- }
109
-
110
- renderTextLayer(id, {
111
- updateTriggers: updateTriggersOverride = {},
112
- ...props
113
- }) {
114
- const {
115
- data,
116
- characterSet,
117
- fontFamily,
118
- fontSettings,
119
- fontWeight,
120
- outlineColor,
121
- outlineWidth,
122
- sizeScale,
123
- radiusScale,
124
- getAlignmentBaseline,
125
- getColor,
126
- getPosition,
127
- getTextAnchor,
128
- updateTriggers
129
- } = this.props;
130
- return new EnhancedTextLayer(this.getSubLayerProps({
131
- id,
132
- data,
133
- characterSet,
134
- fontFamily,
135
- fontSettings,
136
- fontWeight,
137
- outlineColor,
138
- outlineWidth,
139
- sizeScale,
140
- getAlignmentBaseline,
141
- getColor,
142
- getPosition,
143
- getTextAnchor,
144
- updateTriggers: { ...updateTriggers,
145
- ...updateTriggersOverride,
146
- getPixelOffset: [updateTriggers.getRadius, updateTriggers.getTextAnchor, updateTriggers.getAlignmentBaseline, radiusScale, sizeScale]
147
- }
148
- }), {
149
- getSize: 1,
150
- _subLayerProps: {
151
- background: {
152
- type: EnhancedTextBackgroundLayer
153
- }
154
- }
155
- }, props);
156
- }
157
-
158
- renderLayers() {
159
- const {
160
- getText,
161
- getSecondaryColor,
162
- getSecondaryText,
163
- secondaryOutlineColor,
164
- secondarySizeScale,
165
- updateTriggers
166
- } = this.props;
167
- const getPixelOffset = this.calculatePixelOffset(false);
168
- const backgroundPadding = this.calculateBackgroundPadding();
169
- const out = [this.renderTextLayer(`${updateTriggers.getText}-primary`, {
170
- backgroundPadding,
171
- getText,
172
- getPixelOffset,
173
- background: true
174
- }), Boolean(getSecondaryText) && this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {
175
- getText: getSecondaryText,
176
- getPixelOffset: this.calculatePixelOffset(true),
177
- getAlignmentBaseline: 'top',
178
- ...(getSecondaryColor && {
179
- getColor: getSecondaryColor
180
- }),
181
- ...(secondarySizeScale && {
182
- sizeScale: secondarySizeScale
183
- }),
184
- ...(secondaryOutlineColor && {
185
- outlineColor: secondaryOutlineColor
186
- })
187
- })];
188
- return out;
189
- }
190
-
191
- }
192
- PointLabelLayer.layerName = 'PointLabelLayer';
193
- PointLabelLayer.defaultProps = defaultProps;
194
- //# sourceMappingURL=point-label-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["CompositeLayer","TextLayer","_TextBackgroundLayer","TextBackgroundLayer","LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","layerName","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","getTextAnchor","anchor","getAlignmentBaseline","alignment","getSecondaryText","secondarySizeScale","sizeScale","props","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = unknown> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
@@ -1,31 +0,0 @@
1
- import { _GeoCellLayer as GeoCellLayer } from '@deck.gl/geo-layers';
2
- import { getQuadbinPolygon } from './quadbin-utils';
3
- const defaultProps = {
4
- getQuadbin: {
5
- type: 'accessor',
6
- value: d => d.quadbin
7
- }
8
- };
9
- export default class QuadbinLayer extends GeoCellLayer {
10
- indexToBounds() {
11
- const {
12
- data,
13
- extruded,
14
- getQuadbin
15
- } = this.props;
16
- const coverage = extruded ? 0.99 : 1;
17
- return {
18
- data,
19
- _normalize: false,
20
- positionFormat: 'XY',
21
- getPolygon: (x, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),
22
- updateTriggers: {
23
- getPolygon: coverage
24
- }
25
- };
26
- }
27
-
28
- }
29
- QuadbinLayer.layerName = 'QuadbinLayer';
30
- QuadbinLayer.defaultProps = defaultProps;
31
- //# sourceMappingURL=quadbin-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["_GeoCellLayer","GeoCellLayer","getQuadbinPolygon","defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","data","extruded","props","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","layerName"],"mappings":"AACA,SACEA,aAAa,IAAIC,YADnB,QAGO,qBAHP;AAIA,SAAQC,iBAAR,QAAgC,iBAAhC;AAEA,MAAMC,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAGC,CAAD,IAAYA,CAAC,CAACC;AAAxC;AADwC,CAAtD;AAkBA,eAAe,MAAMC,YAAN,SAAoER,YAApE,CAGb;AAIAS,EAAAA,aAAa,GAA0C;AACrD,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,QAAP;AAAiBR,MAAAA;AAAjB,QAA+B,KAAKS,KAA1C;AAEA,UAAMC,QAAQ,GAAGF,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,WAAO;AACLD,MAAAA,IADK;AAELI,MAAAA,UAAU,EAAE,KAFP;AAGLC,MAAAA,cAAc,EAAE,IAHX;AAKLC,MAAAA,UAAU,EAAE,CAACC,CAAD,EAAWC,UAAX,KAA0BjB,iBAAiB,CAACE,UAAU,CAACc,CAAD,EAAIC,UAAJ,CAAX,EAA4BL,QAA5B,CALlD;AAMLM,MAAAA,cAAc,EAAE;AAACH,QAAAA,UAAU,EAAEH;AAAb;AANX,KAAP;AAQD;;AAjBD;AAHmBL,Y,CAIZY,S,GAAY,c;AAJAZ,Y,CAKZN,Y,GAAeA,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: (d: any) => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = unknown> = _QuadbinLayerProps<DataT> &\n GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
@@ -1,51 +0,0 @@
1
- import { CompositeLayer } from '@deck.gl/core';
2
- import QuadbinLayer from './quadbin-layer';
3
- import QuadbinTileset2D from './quadbin-tileset-2d';
4
- import SpatialIndexTileLayer from './spatial-index-tile-layer';
5
- import { hexToBigInt } from 'quadbin';
6
- import { injectAccessToken, TilejsonPropType } from './utils';
7
- export const renderSubLayers = props => {
8
- const {
9
- data
10
- } = props;
11
- if (!data || !data.length) 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
- };
20
- export default class QuadbinTileLayer extends CompositeLayer {
21
- getLoadOptions() {
22
- const loadOptions = super.getLoadOptions() || {};
23
- const tileJSON = this.props.data;
24
- injectAccessToken(loadOptions, tileJSON.accessToken);
25
- loadOptions.cartoSpatialTile = { ...loadOptions.cartoSpatialTile,
26
- scheme: 'quadbin'
27
- };
28
- return loadOptions;
29
- }
30
-
31
- renderLayers() {
32
- const tileJSON = this.props.data;
33
- if (!tileJSON) return null;
34
- const {
35
- tiles: data,
36
- maxresolution: maxZoom
37
- } = tileJSON;
38
- return [new SpatialIndexTileLayer(this.props, {
39
- id: `quadbin-tile-layer-${this.props.id}`,
40
- data,
41
- TilesetClass: QuadbinTileset2D,
42
- renderSubLayers,
43
- maxZoom,
44
- loadOptions: this.getLoadOptions()
45
- })];
46
- }
47
-
48
- }
49
- QuadbinTileLayer.layerName = 'QuadbinTileLayer';
50
- QuadbinTileLayer.defaultProps = defaultProps;
51
- //# sourceMappingURL=quadbin-tile-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","injectAccessToken","TilejsonPropType","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAgE,4BAAhE;AACA,SAAQC,WAAR,QAA0B,SAA1B;AAEA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,SAAlD;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDN,EAAAA,IAAI,EAAEH;AADkD,CAA1D;AAcA,eAAe,MAAMU,gBAAN,SAGLhB,cAHK,CAGgE;AAI7EiB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKX,KAAL,CAAWC,IAA5B;AACAJ,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKX,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACU,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEf,IAAR;AAAcgB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIhB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,EAAG,sBAAqB,KAAKJ,KAAL,CAAWI,EAAG,EADJ;AAEpCH,MAAAA,IAFoC;AAIpCkB,MAAAA,YAAY,EAAEzB,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCmB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;AAH1DD,gB,CAIZY,S,GAAY,kB;AAJAZ,gB,CAKZD,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer, {SpatialIndexTileLayerProps} from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport type {TilejsonResult} from '../sources/types';\nimport {injectAccessToken, TilejsonPropType} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = unknown> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> &\n Omit<SpatialIndexTileLayerProps<DataT>, 'data'> & {\n data: null | TilejsonResult | Promise<TilejsonResult>;\n };\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as TilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as TilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
@@ -1,39 +0,0 @@
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
- getTileIndices(opts) {
5
- return super.getTileIndices(opts).map(tileToCell).map(q => ({
6
- q,
7
- i: bigIntToHex(q)
8
- }));
9
- }
10
-
11
- getTileId({
12
- q,
13
- i
14
- }) {
15
- return i || bigIntToHex(q);
16
- }
17
-
18
- getTileMetadata({
19
- q
20
- }) {
21
- return super.getTileMetadata(cellToTile(q));
22
- }
23
-
24
- getTileZoom({
25
- q
26
- }) {
27
- return Number(getResolution(q));
28
- }
29
-
30
- getParentIndex({
31
- q
32
- }) {
33
- return {
34
- q: cellToParent(q)
35
- };
36
- }
37
-
38
- }
39
- //# sourceMappingURL=quadbin-tileset-2d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tileset-2d.ts"],"names":["_Tileset2D","Tileset2D","bigIntToHex","cellToParent","cellToTile","getResolution","tileToCell","QuadbinTileset2D","getTileIndices","opts","map","q","i","getTileId","getTileMetadata","getTileZoom","Number","getParentIndex"],"mappings":"AAAA,SAAQA,UAAU,IAAIC,SAAtB,QAAsC,qBAAtC;AACA,SAAQC,WAAR,EAAqBC,YAArB,EAAmCC,UAAnC,EAA+CC,aAA/C,EAA8DC,UAA9D,QAA+E,SAA/E;AAMA,eAAe,MAAMC,gBAAN,SAA+BN,SAA/B,CAAyC;AAEtDO,EAAAA,cAAc,CAACC,IAAD,EAA2B;AACvC,WAAO,MACJD,cADI,CACWC,IADX,EAEJC,GAFI,CAEAJ,UAFA,EAGJI,GAHI,CAGAC,CAAC,KAAK;AAACA,MAAAA,CAAD;AAAIC,MAAAA,CAAC,EAAEV,WAAW,CAACS,CAAD;AAAlB,KAAL,CAHD,CAAP;AAID;;AAGDE,EAAAA,SAAS,CAAC;AAACF,IAAAA,CAAD;AAAIC,IAAAA;AAAJ,GAAD,EAAmC;AAC1C,WAAOA,CAAC,IAAIV,WAAW,CAACS,CAAD,CAAvB;AACD;;AAGDG,EAAAA,eAAe,CAAC;AAACH,IAAAA;AAAD,GAAD,EAAwB;AACrC,WAAO,MAAMG,eAAN,CAAsBV,UAAU,CAACO,CAAD,CAAhC,CAAP;AACD;;AAGDI,EAAAA,WAAW,CAAC;AAACJ,IAAAA;AAAD,GAAD,EAAgC;AACzC,WAAOK,MAAM,CAACX,aAAa,CAACM,CAAD,CAAd,CAAb;AACD;;AAGDM,EAAAA,cAAc,CAAC;AAACN,IAAAA;AAAD,GAAD,EAA0C;AACtD,WAAO;AAACA,MAAAA,CAAC,EAAER,YAAY,CAACQ,CAAD;AAAhB,KAAP;AACD;;AA3BqD","sourcesContent":["import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';\nimport {bigIntToHex, cellToParent, cellToTile, getResolution, tileToCell} from 'quadbin';\n\n// For calculations bigint representation is used, but\n// for constructing URL also provide the hexidecimal value\ntype QuadbinTileIndex = {q: bigint; i?: string};\n\nexport default class QuadbinTileset2D extends Tileset2D {\n // @ts-expect-error for spatial indices, TileSet2d should be parametrized by TileIndexT\n getTileIndices(opts): QuadbinTileIndex[] {\n return super\n .getTileIndices(opts)\n .map(tileToCell)\n .map(q => ({q, i: bigIntToHex(q)}));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileId({q, i}: QuadbinTileIndex): string {\n return i || bigIntToHex(q);\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileMetadata({q}: QuadbinTileIndex) {\n return super.getTileMetadata(cellToTile(q));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileZoom({q}: QuadbinTileIndex): number {\n return Number(getResolution(q));\n }\n\n // @ts-expect-error TileIndex must be generic\n getParentIndex({q}: QuadbinTileIndex): QuadbinTileIndex {\n return {q: cellToParent(q)};\n }\n}\n"],"file":"quadbin-tileset-2d.js"}
@@ -1,23 +0,0 @@
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 {
6
- x,
7
- y,
8
- z
9
- } = cellToTile(quadbin);
10
- const scale = TILE_SIZE / (1 << z);
11
- return [x * scale, TILE_SIZE - y * scale, scale];
12
- }
13
- export function quadbinToWorldBounds(quadbin, coverage) {
14
- const [xOffset, yOffset, scale] = quadbinToOffset(quadbin);
15
- return [[xOffset, yOffset], [xOffset + coverage * scale, yOffset - coverage * scale]];
16
- }
17
- export function getQuadbinPolygon(quadbin, coverage = 1) {
18
- const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin, coverage);
19
- const [w, n] = worldToLngLat(topLeft);
20
- const [e, s] = worldToLngLat(bottomRight);
21
- return [e, n, e, s, w, s, w, n, e, n];
22
- }
23
- //# sourceMappingURL=quadbin-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-utils.ts"],"names":["worldToLngLat","cellToTile","TILE_SIZE","quadbinToOffset","quadbin","x","y","z","scale","quadbinToWorldBounds","coverage","xOffset","yOffset","getQuadbinPolygon","topLeft","bottomRight","w","n","e","s"],"mappings":"AAAA,SAAQA,aAAR,QAA4B,uBAA5B;AACA,SAAQC,UAAR,QAAyB,SAAzB;AAEA,MAAMC,SAAS,GAAG,GAAlB;AAEA,OAAO,SAASC,eAAT,CAAyBC,OAAzB,EAAoE;AACzE,QAAM;AAACC,IAAAA,CAAD;AAAIC,IAAAA,CAAJ;AAAOC,IAAAA;AAAP,MAAYN,UAAU,CAACG,OAAD,CAA5B;AACA,QAAMI,KAAK,GAAGN,SAAS,IAAI,KAAKK,CAAT,CAAvB;AACA,SAAO,CAACF,CAAC,GAAGG,KAAL,EAAYN,SAAS,GAAGI,CAAC,GAAGE,KAA5B,EAAmCA,KAAnC,CAAP;AACD;AAED,OAAO,SAASC,oBAAT,CAA8BL,OAA9B,EAA+CM,QAA/C,EAAuF;AAC5F,QAAM,CAACC,OAAD,EAAUC,OAAV,EAAmBJ,KAAnB,IAA4BL,eAAe,CAACC,OAAD,CAAjD;AACA,SAAO,CACL,CAACO,OAAD,EAAUC,OAAV,CADK,EAEL,CAACD,OAAO,GAAGD,QAAQ,GAAGF,KAAtB,EAA6BI,OAAO,GAAGF,QAAQ,GAAGF,KAAlD,CAFK,CAAP;AAID;AAED,OAAO,SAASK,iBAAT,CAA2BT,OAA3B,EAA4CM,QAAQ,GAAG,CAAvD,EAAoE;AACzE,QAAM,CAACI,OAAD,EAAUC,WAAV,IAAyBN,oBAAoB,CAACL,OAAD,EAAUM,QAAV,CAAnD;AACA,QAAM,CAACM,CAAD,EAAIC,CAAJ,IAASjB,aAAa,CAACc,OAAD,CAA5B;AACA,QAAM,CAACI,CAAD,EAAIC,CAAJ,IAASnB,aAAa,CAACe,WAAD,CAA5B;AACA,SAAO,CAACG,CAAD,EAAID,CAAJ,EAAOC,CAAP,EAAUC,CAAV,EAAaH,CAAb,EAAgBG,CAAhB,EAAmBH,CAAnB,EAAsBC,CAAtB,EAAyBC,CAAzB,EAA4BD,CAA5B,CAAP;AACD","sourcesContent":["import {worldToLngLat} from '@math.gl/web-mercator';\nimport {cellToTile} from 'quadbin';\n\nconst TILE_SIZE = 512;\n\nexport function quadbinToOffset(quadbin: bigint): [number, number, number] {\n const {x, y, z} = cellToTile(quadbin);\n const scale = TILE_SIZE / (1 << z);\n return [x * scale, TILE_SIZE - y * scale, scale];\n}\n\nexport function quadbinToWorldBounds(quadbin: bigint, coverage: number): [number[], number[]] {\n const [xOffset, yOffset, scale] = quadbinToOffset(quadbin);\n return [\n [xOffset, yOffset],\n [xOffset + coverage * scale, yOffset - coverage * scale]\n ];\n}\n\nexport function getQuadbinPolygon(quadbin: bigint, coverage = 1): number[] {\n const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin, coverage);\n const [w, n] = worldToLngLat(topLeft);\n const [e, s] = worldToLngLat(bottomRight);\n return [e, n, e, s, w, s, w, n, e, n];\n}\n"],"file":"quadbin-utils.js"}