@deck.gl/carto 8.8.0-beta.4 → 8.8.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/dist.dev.js +2257 -1119
  2. package/dist/es5/index.js +3 -3
  3. package/dist/es5/index.js.map +1 -1
  4. package/dist/es5/layers/carto-layer.js +3 -3
  5. package/dist/es5/layers/carto-layer.js.map +1 -1
  6. package/dist/es5/layers/h3-tile-layer.js +26 -3
  7. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  8. package/dist/es5/layers/h3-tileset-2d.js +19 -13
  9. package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
  10. package/dist/es5/layers/quadbin-layer.js +71 -0
  11. package/dist/es5/layers/quadbin-layer.js.map +1 -0
  12. package/dist/es5/layers/{quadkey-tile-layer.js → quadbin-tile-layer.js} +17 -17
  13. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -0
  14. package/dist/es5/layers/{quadkey-tileset-2d.js → quadbin-tileset-2d.js} +25 -57
  15. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -0
  16. package/dist/es5/layers/quadbin-utils.js +122 -0
  17. package/dist/es5/layers/quadbin-utils.js.map +1 -0
  18. package/dist/esm/index.js +1 -1
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/layers/carto-layer.js +3 -3
  21. package/dist/esm/layers/carto-layer.js.map +1 -1
  22. package/dist/esm/layers/h3-tile-layer.js +20 -3
  23. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  24. package/dist/esm/layers/h3-tileset-2d.js +20 -16
  25. package/dist/esm/layers/h3-tileset-2d.js.map +1 -1
  26. package/dist/esm/layers/quadbin-layer.js +29 -0
  27. package/dist/esm/layers/quadbin-layer.js.map +1 -0
  28. package/dist/esm/layers/{quadkey-tile-layer.js → quadbin-tile-layer.js} +10 -10
  29. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -0
  30. package/dist/esm/layers/quadbin-tileset-2d.js +37 -0
  31. package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -0
  32. package/dist/esm/layers/quadbin-utils.js +88 -0
  33. package/dist/esm/layers/quadbin-utils.js.map +1 -0
  34. package/dist.min.js +138 -138
  35. package/package.json +2 -2
  36. package/src/index.ts +1 -1
  37. package/src/layers/carto-layer.ts +7 -7
  38. package/src/layers/h3-tile-layer.ts +24 -3
  39. package/src/layers/h3-tileset-2d.ts +20 -10
  40. package/src/layers/quadbin-layer.ts +43 -0
  41. package/src/layers/{quadkey-tile-layer.ts → quadbin-tile-layer.ts} +15 -13
  42. package/src/layers/quadbin-tileset-2d.ts +34 -0
  43. package/src/layers/quadbin-utils.ts +102 -0
  44. package/typed/index.d.ts +1 -1
  45. package/typed/layers/carto-layer.d.ts +2 -2
  46. package/typed/layers/carto-layer.d.ts.map +1 -1
  47. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  48. package/typed/layers/h3-tileset-2d.d.ts +6 -0
  49. package/typed/layers/h3-tileset-2d.d.ts.map +1 -1
  50. package/typed/layers/quadbin-layer.d.ts +20 -0
  51. package/typed/layers/quadbin-layer.d.ts.map +1 -0
  52. package/typed/layers/quadbin-tile-layer.d.ts +21 -0
  53. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -0
  54. package/typed/layers/quadbin-tileset-2d.d.ts +13 -0
  55. package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -0
  56. package/typed/layers/quadbin-utils.d.ts +11 -0
  57. package/typed/layers/quadbin-utils.d.ts.map +1 -0
  58. package/dist/es5/layers/quadkey-tile-layer.js.map +0 -1
  59. package/dist/es5/layers/quadkey-tileset-2d.js.map +0 -1
  60. package/dist/esm/layers/quadkey-tile-layer.js.map +0 -1
  61. package/dist/esm/layers/quadkey-tileset-2d.js +0 -71
  62. package/dist/esm/layers/quadkey-tileset-2d.js.map +0 -1
  63. package/src/layers/quadkey-tileset-2d.ts +0 -59
  64. package/typed/api/index.js +0 -3
  65. package/typed/api/layer-map.js +0 -264
  66. package/typed/api/maps-api-common.js +0 -50
  67. package/typed/api/maps-client.js +0 -125
  68. package/typed/api/maps-v3-client.js +0 -304
  69. package/typed/api/parseMap.js +0 -178
  70. package/typed/basemap.js +0 -9
  71. package/typed/config.js +0 -35
  72. package/typed/index.js +0 -10
  73. package/typed/layers/carto-layer.js +0 -173
  74. package/typed/layers/carto-tile-layer.js +0 -105
  75. package/typed/layers/h3-tile-layer.js +0 -47
  76. package/typed/layers/h3-tileset-2d.js +0 -85
  77. package/typed/layers/quadkey-tile-layer.js +0 -42
  78. package/typed/layers/quadkey-tileset-2d.js +0 -36
  79. package/typed/layers/schema/carto-tile.js +0 -161
  80. package/typed/layers/spatial-index-tile-layer.js +0 -40
  81. package/typed/style/color-bins-style.js +0 -12
  82. package/typed/style/color-categories-style.js +0 -16
  83. package/typed/style/color-continuous-style.js +0 -12
  84. package/typed/style/palette.js +0 -62
  85. package/typed/style/utils.js +0 -15
  86. package/typed/utils.js +0 -4
@@ -0,0 +1,88 @@
1
+ import { worldToLngLat } from '@math.gl/web-mercator';
2
+ const TILE_SIZE = 512;
3
+ const B = [0x5555555555555555n, 0x3333333333333333n, 0x0f0f0f0f0f0f0f0fn, 0x00ff00ff00ff00ffn, 0x0000ffff0000ffffn, 0x00000000ffffffffn];
4
+ const S = [0n, 1n, 2n, 4n, 8n, 16n];
5
+
6
+ function indexToBigInt(index) {
7
+ return BigInt("0x".concat(index));
8
+ }
9
+
10
+ function bigIntToIndex(quadbin) {
11
+ return quadbin.toString(16);
12
+ }
13
+
14
+ export function tileToQuadbin(tile) {
15
+ if (tile.z < 0 || tile.z > 26) {
16
+ throw new Error('Wrong zoom');
17
+ }
18
+
19
+ const z = BigInt(tile.z);
20
+ let x = BigInt(tile.x) << 32n - z;
21
+ let y = BigInt(tile.y) << 32n - z;
22
+
23
+ for (let i = 0; i < 5; i++) {
24
+ const s = S[5 - i];
25
+ const b = B[4 - i];
26
+ x = (x | x << s) & b;
27
+ y = (y | y << s) & b;
28
+ }
29
+
30
+ const quadbin = 0x4000000000000000n | 1n << 59n | z << 52n | (x | y << 1n) >> 12n | 0xfffffffffffffn >> z * 2n;
31
+ return bigIntToIndex(quadbin);
32
+ }
33
+ export function quadbinToTile(index) {
34
+ const quadbin = indexToBigInt(index);
35
+ const mode = quadbin >> 59n & 7n;
36
+ const modeDep = quadbin >> 57n & 3n;
37
+ const z = quadbin >> 52n & 0x1fn;
38
+ const q = (quadbin & 0xfffffffffffffn) << 12n;
39
+
40
+ if (mode !== 1n && modeDep !== 0n) {
41
+ throw new Error('Wrong mode');
42
+ }
43
+
44
+ let x = q;
45
+ let y = q >> 1n;
46
+
47
+ for (let i = 0; i < 6; i++) {
48
+ const s = S[i];
49
+ const b = B[i];
50
+ x = (x | x >> s) & b;
51
+ y = (y | y >> s) & b;
52
+ }
53
+
54
+ x = x >> 32n - z;
55
+ y = y >> 32n - z;
56
+ return {
57
+ z: Number(z),
58
+ x: Number(x),
59
+ y: Number(y)
60
+ };
61
+ }
62
+ export function quadbinZoom(index) {
63
+ const quadbin = indexToBigInt(index);
64
+ return quadbin >> 52n & 0x1fn;
65
+ }
66
+ export function quadbinParent(index) {
67
+ const quadbin = indexToBigInt(index);
68
+ const zparent = quadbinZoom(index) - 1n;
69
+ const parent = quadbin & ~(0x1fn << 52n) | zparent << 52n | 0xfffffffffffffn >> zparent * 2n;
70
+ return bigIntToIndex(parent);
71
+ }
72
+ export function quadbinToWorldBounds(quadbin) {
73
+ const {
74
+ x,
75
+ y,
76
+ z
77
+ } = quadbinToTile(quadbin);
78
+ const mask = 1 << z;
79
+ const scale = mask / TILE_SIZE;
80
+ return [[x / scale, TILE_SIZE - y / scale], [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]];
81
+ }
82
+ export function getQuadbinPolygon(quadbin) {
83
+ const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin);
84
+ const [w, n] = worldToLngLat(topLeft);
85
+ const [e, s] = worldToLngLat(bottomRight);
86
+ return [e, n, e, s, w, s, w, n, e, n];
87
+ }
88
+ //# sourceMappingURL=quadbin-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/quadbin-utils.ts"],"names":["worldToLngLat","TILE_SIZE","B","S","indexToBigInt","index","BigInt","bigIntToIndex","quadbin","toString","tileToQuadbin","tile","z","Error","x","y","i","s","b","quadbinToTile","mode","modeDep","q","Number","quadbinZoom","quadbinParent","zparent","parent","quadbinToWorldBounds","mask","scale","getQuadbinPolygon","topLeft","bottomRight","w","n","e"],"mappings":"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","sourcesContent":["import {worldToLngLat} from '@math.gl/web-mercator';\n\nconst TILE_SIZE = 512;\n\nconst B = [\n 0x5555555555555555n,\n 0x3333333333333333n,\n 0x0f0f0f0f0f0f0f0fn,\n 0x00ff00ff00ff00ffn,\n 0x0000ffff0000ffffn,\n 0x00000000ffffffffn\n];\nconst S = [0n, 1n, 2n, 4n, 8n, 16n];\n\nfunction indexToBigInt(index: string): bigint {\n return BigInt(`0x${index}`);\n}\n\nfunction bigIntToIndex(quadbin: bigint): string {\n return quadbin.toString(16);\n}\n\nexport function tileToQuadbin(tile): string {\n if (tile.z < 0 || tile.z > 26) {\n throw new Error('Wrong zoom');\n }\n const z = BigInt(tile.z);\n let x = BigInt(tile.x) << (32n - z);\n let y = BigInt(tile.y) << (32n - z);\n\n for (let i = 0; i < 5; i++) {\n const s = S[5 - i];\n const b = B[4 - i];\n x = (x | (x << s)) & b;\n y = (y | (y << s)) & b;\n }\n\n const quadbin =\n 0x4000000000000000n |\n (1n << 59n) | // | (mode << 59) | (mode_dep << 57)\n (z << 52n) |\n ((x | (y << 1n)) >> 12n) |\n (0xfffffffffffffn >> (z * 2n));\n return bigIntToIndex(quadbin);\n}\n\nexport function quadbinToTile(index: string) {\n const quadbin = indexToBigInt(index);\n const mode = (quadbin >> 59n) & 7n;\n const modeDep = (quadbin >> 57n) & 3n;\n const z = (quadbin >> 52n) & 0x1fn;\n const q = (quadbin & 0xfffffffffffffn) << 12n;\n\n if (mode !== 1n && modeDep !== 0n) {\n throw new Error('Wrong mode');\n }\n\n let x = q;\n let y = q >> 1n;\n\n for (let i = 0; i < 6; i++) {\n const s = S[i];\n const b = B[i];\n x = (x | (x >> s)) & b;\n y = (y | (y >> s)) & b;\n }\n\n x = x >> (32n - z);\n y = y >> (32n - z);\n\n return {z: Number(z), x: Number(x), y: Number(y)};\n}\n\nexport function quadbinZoom(index: string) {\n const quadbin = indexToBigInt(index);\n return (quadbin >> 52n) & 0x1fn;\n}\n\nexport function quadbinParent(index: string) {\n const quadbin = indexToBigInt(index);\n const zparent = quadbinZoom(index) - 1n;\n const parent =\n (quadbin & ~(0x1fn << 52n)) | (zparent << 52n) | (0xfffffffffffffn >> (zparent * 2n));\n return bigIntToIndex(parent);\n}\n\nexport function quadbinToWorldBounds(quadbin: string): [number[], number[]] {\n const {x, y, z} = quadbinToTile(quadbin);\n const mask = 1 << z;\n const scale = mask / TILE_SIZE;\n return [\n [x / scale, TILE_SIZE - y / scale],\n [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]\n ];\n}\n\nexport function getQuadbinPolygon(quadbin: string): number[] {\n const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin);\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"}