@deck.gl/carto 8.8.13 → 8.8.15

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 (105) hide show
  1. package/dist/dist.dev.js +42094 -41972
  2. package/dist/es5/api/layer-map.js +24 -11
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-v3-client.js +10 -1
  5. package/dist/es5/api/maps-v3-client.js.map +1 -1
  6. package/dist/es5/api/parseMap.js +57 -19
  7. package/dist/es5/api/parseMap.js.map +1 -1
  8. package/dist/es5/index.js +0 -20
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/layers/carto-layer.js +19 -2
  11. package/dist/es5/layers/carto-layer.js.map +1 -1
  12. package/dist/es5/layers/h3-tile-layer.js +10 -1
  13. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  14. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  15. package/dist/es5/layers/quadbin-tile-layer.js +10 -1
  16. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  17. package/dist/es5/layers/quadbin-tileset-2d.js +13 -11
  18. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
  19. package/dist/es5/layers/quadbin-utils.js +6 -82
  20. package/dist/es5/layers/quadbin-utils.js.map +1 -1
  21. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +10 -2
  22. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  23. package/dist/es5/layers/schema/spatialjson-utils.js +4 -3
  24. package/dist/es5/layers/schema/spatialjson-utils.js.map +1 -1
  25. package/dist/esm/api/layer-map.js +13 -2
  26. package/dist/esm/api/layer-map.js.map +1 -1
  27. package/dist/esm/api/maps-v3-client.js +9 -1
  28. package/dist/esm/api/maps-v3-client.js.map +1 -1
  29. package/dist/esm/api/parseMap.js +64 -20
  30. package/dist/esm/api/parseMap.js.map +1 -1
  31. package/dist/esm/index.js +0 -1
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/layers/carto-layer.js +18 -0
  34. package/dist/esm/layers/carto-layer.js.map +1 -1
  35. package/dist/esm/layers/h3-tile-layer.js +6 -1
  36. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  37. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  38. package/dist/esm/layers/quadbin-tile-layer.js +6 -1
  39. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  40. package/dist/esm/layers/quadbin-tileset-2d.js +12 -10
  41. package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -1
  42. package/dist/esm/layers/quadbin-utils.js +2 -67
  43. package/dist/esm/layers/quadbin-utils.js.map +1 -1
  44. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +10 -2
  45. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  46. package/dist/esm/layers/schema/spatialjson-utils.js +4 -3
  47. package/dist/esm/layers/schema/spatialjson-utils.js.map +1 -1
  48. package/dist.min.js +4 -4
  49. package/package.json +9 -8
  50. package/src/api/layer-map.ts +14 -5
  51. package/src/api/maps-v3-client.ts +5 -1
  52. package/src/api/parseMap.ts +39 -22
  53. package/src/index.ts +0 -5
  54. package/src/layers/carto-layer.ts +9 -2
  55. package/src/layers/h3-tile-layer.ts +7 -1
  56. package/src/layers/quadbin-layer.ts +1 -1
  57. package/src/layers/quadbin-tile-layer.ts +7 -1
  58. package/src/layers/quadbin-tileset-2d.ts +14 -12
  59. package/src/layers/quadbin-utils.ts +4 -85
  60. package/src/layers/schema/carto-spatial-tile-loader.ts +9 -3
  61. package/src/layers/schema/spatialjson-utils.ts +4 -4
  62. package/typed/api/layer-map.d.ts +5 -1
  63. package/typed/api/layer-map.d.ts.map +1 -1
  64. package/typed/api/maps-v3-client.d.ts +1 -0
  65. package/typed/api/maps-v3-client.d.ts.map +1 -1
  66. package/typed/api/parseMap.d.ts +1 -0
  67. package/typed/api/parseMap.d.ts.map +1 -1
  68. package/typed/index.d.ts +0 -1
  69. package/typed/index.d.ts.map +1 -1
  70. package/typed/layers/carto-layer.d.ts.map +1 -1
  71. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  72. package/typed/layers/quadbin-layer.d.ts +1 -1
  73. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  74. package/typed/layers/quadbin-tileset-2d.d.ts +6 -5
  75. package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
  76. package/typed/layers/quadbin-utils.d.ts +2 -12
  77. package/typed/layers/quadbin-utils.d.ts.map +1 -1
  78. package/typed/layers/schema/carto-spa-tile.d.ts +57 -0
  79. package/typed/layers/schema/carto-spa-tile.d.ts.map +1 -0
  80. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  81. package/typed/layers/schema/spatialjson-utils.d.ts +1 -1
  82. package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
  83. package/typed/api/index.js +0 -3
  84. package/typed/api/layer-map.js +0 -264
  85. package/typed/api/maps-api-common.js +0 -50
  86. package/typed/api/maps-client.js +0 -125
  87. package/typed/api/maps-v3-client.js +0 -304
  88. package/typed/api/parseMap.js +0 -178
  89. package/typed/basemap.js +0 -9
  90. package/typed/config.js +0 -35
  91. package/typed/index.js +0 -10
  92. package/typed/layers/carto-layer.js +0 -173
  93. package/typed/layers/carto-tile-layer.js +0 -105
  94. package/typed/layers/h3-tile-layer.js +0 -47
  95. package/typed/layers/h3-tileset-2d.js +0 -85
  96. package/typed/layers/quadkey-tile-layer.js +0 -42
  97. package/typed/layers/quadkey-tileset-2d.js +0 -36
  98. package/typed/layers/schema/carto-tile.js +0 -161
  99. package/typed/layers/spatial-index-tile-layer.js +0 -40
  100. package/typed/style/color-bins-style.js +0 -12
  101. package/typed/style/color-categories-style.js +0 -16
  102. package/typed/style/color-continuous-style.js +0 -12
  103. package/typed/style/palette.js +0 -62
  104. package/typed/style/utils.js +0 -15
  105. package/typed/utils.js +0 -4
@@ -1,77 +1,12 @@
1
1
  import { worldToLngLat } from '@math.gl/web-mercator';
2
+ import { cellToTile } from 'quadbin';
2
3
  const TILE_SIZE = 512;
3
- const B = [0x5555555555555555n, 0x3333333333333333n, 0x0f0f0f0f0f0f0f0fn, 0x00ff00ff00ff00ffn, 0x0000ffff0000ffffn, 0x00000000ffffffffn];
4
- const S = [0n, 1n, 2n, 4n, 8n, 16n];
5
- export function indexToBigInt(index) {
6
- return BigInt("0x".concat(index));
7
- }
8
- export function bigIntToIndex(quadbin) {
9
- return quadbin.toString(16);
10
- }
11
- export function tileToQuadbin(tile) {
12
- if (tile.z < 0 || tile.z > 26) {
13
- throw new Error('Wrong zoom');
14
- }
15
-
16
- const z = BigInt(tile.z);
17
- let x = BigInt(tile.x) << 32n - z;
18
- let y = BigInt(tile.y) << 32n - z;
19
-
20
- for (let i = 0; i < 5; i++) {
21
- const s = S[5 - i];
22
- const b = B[4 - i];
23
- x = (x | x << s) & b;
24
- y = (y | y << s) & b;
25
- }
26
-
27
- const quadbin = 0x4000000000000000n | 1n << 59n | z << 52n | (x | y << 1n) >> 12n | 0xfffffffffffffn >> z * 2n;
28
- return bigIntToIndex(quadbin);
29
- }
30
- export function quadbinToTile(index) {
31
- const quadbin = indexToBigInt(index);
32
- const mode = quadbin >> 59n & 7n;
33
- const modeDep = quadbin >> 57n & 3n;
34
- const z = quadbin >> 52n & 0x1fn;
35
- const q = (quadbin & 0xfffffffffffffn) << 12n;
36
-
37
- if (mode !== 1n && modeDep !== 0n) {
38
- throw new Error('Wrong mode');
39
- }
40
-
41
- let x = q;
42
- let y = q >> 1n;
43
-
44
- for (let i = 0; i < 6; i++) {
45
- const s = S[i];
46
- const b = B[i];
47
- x = (x | x >> s) & b;
48
- y = (y | y >> s) & b;
49
- }
50
-
51
- x = x >> 32n - z;
52
- y = y >> 32n - z;
53
- return {
54
- z: Number(z),
55
- x: Number(x),
56
- y: Number(y)
57
- };
58
- }
59
- export function quadbinZoom(index) {
60
- const quadbin = indexToBigInt(index);
61
- return quadbin >> 52n & 0x1fn;
62
- }
63
- export function quadbinParent(index) {
64
- const quadbin = indexToBigInt(index);
65
- const zparent = quadbinZoom(index) - 1n;
66
- const parent = quadbin & ~(0x1fn << 52n) | zparent << 52n | 0xfffffffffffffn >> zparent * 2n;
67
- return bigIntToIndex(parent);
68
- }
69
4
  export function quadbinToWorldBounds(quadbin) {
70
5
  const {
71
6
  x,
72
7
  y,
73
8
  z
74
- } = quadbinToTile(quadbin);
9
+ } = cellToTile(quadbin);
75
10
  const mask = 1 << z;
76
11
  const scale = mask / TILE_SIZE;
77
12
  return [[x / scale, TILE_SIZE - y / scale], [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]];
@@ -1 +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\nexport function indexToBigInt(index: string): bigint {\n return BigInt(`0x${index}`);\n}\n\nexport function 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"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-utils.ts"],"names":["worldToLngLat","cellToTile","TILE_SIZE","quadbinToWorldBounds","quadbin","x","y","z","mask","scale","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,oBAAT,CAA8BC,OAA9B,EAAqE;AAC1E,QAAM;AAACC,IAAAA,CAAD;AAAIC,IAAAA,CAAJ;AAAOC,IAAAA;AAAP,MAAYN,UAAU,CAACG,OAAD,CAA5B;AACA,QAAMI,IAAI,GAAG,KAAKD,CAAlB;AACA,QAAME,KAAK,GAAGD,IAAI,GAAGN,SAArB;AACA,SAAO,CACL,CAACG,CAAC,GAAGI,KAAL,EAAYP,SAAS,GAAGI,CAAC,GAAGG,KAA5B,CADK,EAEL,CAAC,CAACJ,CAAC,GAAG,IAAL,IAAaI,KAAd,EAAqBP,SAAS,GAAG,CAACI,CAAC,GAAG,IAAL,IAAaG,KAA9C,CAFK,CAAP;AAID;AAED,OAAO,SAASC,iBAAT,CAA2BN,OAA3B,EAAsD;AAC3D,QAAM,CAACO,OAAD,EAAUC,WAAV,IAAyBT,oBAAoB,CAACC,OAAD,CAAnD;AACA,QAAM,CAACS,CAAD,EAAIC,CAAJ,IAASd,aAAa,CAACW,OAAD,CAA5B;AACA,QAAM,CAACI,CAAD,EAAIC,CAAJ,IAAShB,aAAa,CAACY,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 quadbinToWorldBounds(quadbin: bigint): [number[], number[]] {\n const {x, y, z} = cellToTile(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: bigint): 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"}
@@ -12,19 +12,27 @@ const CartoSpatialTileLoader = {
12
12
  worker: false,
13
13
  parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
14
14
  parseSync: parseCartoSpatialTile,
15
- options: {}
15
+ options: {
16
+ cartoSpatialTile: {
17
+ scheme: 'quadbin'
18
+ }
19
+ }
16
20
  };
17
21
 
18
22
  function parseCartoSpatialTile(arrayBuffer, options) {
23
+ var _options$cartoSpatial;
24
+
19
25
  if (!arrayBuffer) return null;
20
26
  const tile = parsePbf(arrayBuffer, TileReader);
21
27
  const {
22
28
  cells
23
29
  } = tile;
30
+ const scheme = options === null || options === void 0 ? void 0 : (_options$cartoSpatial = options.cartoSpatialTile) === null || _options$cartoSpatial === void 0 ? void 0 : _options$cartoSpatial.scheme;
24
31
  const data = {
25
32
  cells: { ...cells,
26
33
  properties: unpackProperties(cells.properties)
27
- }
34
+ },
35
+ scheme
28
36
  };
29
37
  return binaryToSpatialjson(data);
30
38
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","unpackProperties","binaryToSpatialjson","CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","tile","cells","data","properties"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,EAAkBC,gBAAlB,QAAyC,qBAAzC;AACA,SAAQC,mBAAR,QAA+C,qBAA/C;AAEA,MAAMC,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAE,GAFsC;AAG/CC,EAAAA,EAAE,EAAE,kBAH2C;AAI/CC,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,MAAM,EAAE,KARuC;AAS/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CD,EAAAA,OAAO,EAAE;AAXsC,CAAjD;;AAcA,SAASC,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAU,GAAGjB,QAAQ,CAACa,WAAD,EAAcd,UAAd,CAA3B;AAEA,QAAM;AAACmB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAME,IAAI,GAAG;AACXD,IAAAA,KAAK,EAAE,EAAC,GAAGA,KAAJ;AAAWE,MAAAA,UAAU,EAAEnB,gBAAgB,CAACiB,KAAK,CAACE,UAAP;AAAvC;AADI,GAAb;AAIA,SAAOlB,mBAAmB,CAACiB,IAAD,CAA1B;AACD;;AAED,eAAehB,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf, unpackProperties} from './tile-loader-utils';\nimport {binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: '1',\n id: 'cartoSpatialTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n options: {}\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const data = {\n cells: {...cells, properties: unpackProperties(cells.properties)}\n };\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","unpackProperties","binaryToSpatialjson","CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","cartoSpatialTile","scheme","tile","cells","data","properties"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,EAAkBC,gBAAlB,QAAyC,qBAAzC;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAE,GAFsC;AAG/CC,EAAAA,EAAE,EAAE,kBAH2C;AAI/CC,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,MAAM,EAAE,KARuC;AAS/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CD,EAAAA,OAAO,EAAE;AACPG,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,MAAM,EAAE;AADQ;AADX;AAXsC,CAAjD;;AAkBA,SAASH,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMM,IAAU,GAAGnB,QAAQ,CAACa,WAAD,EAAcd,UAAd,CAA3B;AAEA,QAAM;AAACqB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMD,MAAM,GAAGJ,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEG,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMG,IAAI,GAAG;AACXD,IAAAA,KAAK,EAAE,EAAC,GAAGA,KAAJ;AAAWE,MAAAA,UAAU,EAAErB,gBAAgB,CAACmB,KAAK,CAACE,UAAP;AAAvC,KADI;AAEXJ,IAAAA;AAFW,GAAb;AAKA,SAAOhB,mBAAmB,CAACmB,IAAD,CAA1B;AACD;;AAED,eAAelB,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf, unpackProperties} from './tile-loader-utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: '1',\n id: 'cartoSpatialTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n options: {\n cartoSpatialTile: {\n scheme: 'quadbin'\n } as {scheme: IndexScheme}\n }\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {\n cells: {...cells, properties: unpackProperties(cells.properties)},\n scheme\n };\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
@@ -1,13 +1,14 @@
1
- import { bigIntToIndex } from '../quadbin-utils';
1
+ import { bigIntToHex } from 'quadbin';
2
2
  export function binaryToSpatialjson(binary) {
3
3
  const {
4
- cells
4
+ cells,
5
+ scheme
5
6
  } = binary;
6
7
  const count = cells.indices.value.length;
7
8
  const spatial = [];
8
9
 
9
10
  for (let i = 0; i < count; i++) {
10
- const id = bigIntToIndex(cells.indices.value[i]);
11
+ const id = scheme === 'h3' ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];
11
12
  const properties = { ...cells.properties[i]
12
13
  };
13
14
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/spatialjson-utils.ts"],"names":["bigIntToIndex","binaryToSpatialjson","binary","cells","count","indices","value","length","spatial","i","id","properties","key","Object","keys","numericProps","push"],"mappings":"AAAA,SAAQA,aAAR,QAA4B,kBAA5B;AAmBA,OAAO,SAASC,mBAAT,CAA6BC,MAA7B,EAAiE;AACtE,QAAM;AAACC,IAAAA;AAAD,MAAUD,MAAhB;AACA,QAAME,KAAK,GAAGD,KAAK,CAACE,OAAN,CAAcC,KAAd,CAAoBC,MAAlC;AACA,QAAMC,OAAc,GAAG,EAAvB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAApB,EAA2BK,CAAC,EAA5B,EAAgC;AAC9B,UAAMC,EAAE,GAAGV,aAAa,CAACG,KAAK,CAACE,OAAN,CAAcC,KAAd,CAAoBG,CAApB,CAAD,CAAxB;AAEA,UAAME,UAAU,GAAG,EAAC,GAAGR,KAAK,CAACQ,UAAN,CAAiBF,CAAjB;AAAJ,KAAnB;;AACA,SAAK,MAAMG,GAAX,IAAkBC,MAAM,CAACC,IAAP,CAAYX,KAAK,CAACY,YAAlB,CAAlB,EAAmD;AACjDJ,MAAAA,UAAU,CAACC,GAAD,CAAV,GAAkBT,KAAK,CAACY,YAAN,CAAmBH,GAAnB,EAAwBN,KAAxB,CAA8BG,CAA9B,CAAlB;AACD;;AACDD,IAAAA,OAAO,CAACQ,IAAR,CAAa;AAACN,MAAAA,EAAD;AAAKC,MAAAA;AAAL,KAAb;AACD;;AAED,SAAOH,OAAP;AACD","sourcesContent":["import {bigIntToIndex} from '../quadbin-utils';\n\nexport type IndexScheme = 'h3' | 'quadbin';\ntype TypedArray = Float32Array | Float64Array;\n\nexport type Indices = {value: BigUint64Array};\nexport type NumericProps = Record<string, {value: number[] | TypedArray}>;\nexport type Properties = Record<string, string | number | boolean | null>;\nexport type Cells = {\n indices: Indices;\n numericProps: NumericProps;\n properties: Properties[];\n};\nexport type SpatialBinary = {scheme?: IndexScheme; cells: Cells};\nexport type SpatialJson = {\n id: string;\n properties: Properties;\n}[];\n\nexport function binaryToSpatialjson(binary: SpatialBinary): SpatialJson {\n const {cells} = binary;\n const count = cells.indices.value.length;\n const spatial: any[] = [];\n for (let i = 0; i < count; i++) {\n const id = bigIntToIndex(cells.indices.value[i]);\n\n const properties = {...cells.properties[i]};\n for (const key of Object.keys(cells.numericProps)) {\n properties[key] = cells.numericProps[key].value[i];\n }\n spatial.push({id, properties});\n }\n\n return spatial;\n}\n"],"file":"spatialjson-utils.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/spatialjson-utils.ts"],"names":["bigIntToHex","binaryToSpatialjson","binary","cells","scheme","count","indices","value","length","spatial","i","id","properties","key","Object","keys","numericProps","push"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,SAA1B;AAmBA,OAAO,SAASC,mBAAT,CAA6BC,MAA7B,EAAiE;AACtE,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA;AAAR,MAAkBF,MAAxB;AACA,QAAMG,KAAK,GAAGF,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBC,MAAlC;AACA,QAAMC,OAAc,GAAG,EAAvB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAApB,EAA2BK,CAAC,EAA5B,EAAgC;AAC9B,UAAMC,EAAE,GAAGP,MAAM,KAAK,IAAX,GAAkBJ,WAAW,CAACG,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBG,CAApB,CAAD,CAA7B,GAAwDP,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBG,CAApB,CAAnE;AAEA,UAAME,UAAU,GAAG,EAAC,GAAGT,KAAK,CAACS,UAAN,CAAiBF,CAAjB;AAAJ,KAAnB;;AACA,SAAK,MAAMG,GAAX,IAAkBC,MAAM,CAACC,IAAP,CAAYZ,KAAK,CAACa,YAAlB,CAAlB,EAAmD;AACjDJ,MAAAA,UAAU,CAACC,GAAD,CAAV,GAAkBV,KAAK,CAACa,YAAN,CAAmBH,GAAnB,EAAwBN,KAAxB,CAA8BG,CAA9B,CAAlB;AACD;;AACDD,IAAAA,OAAO,CAACQ,IAAR,CAAa;AAACN,MAAAA,EAAD;AAAKC,MAAAA;AAAL,KAAb;AACD;;AAED,SAAOH,OAAP;AACD","sourcesContent":["import {bigIntToHex} from 'quadbin';\n\nexport type IndexScheme = 'h3' | 'quadbin';\ntype TypedArray = Float32Array | Float64Array;\n\nexport type Indices = {value: BigUint64Array};\nexport type NumericProps = Record<string, {value: number[] | TypedArray}>;\nexport type Properties = Record<string, string | number | boolean | null>;\nexport type Cells = {\n indices: Indices;\n numericProps: NumericProps;\n properties: Properties[];\n};\nexport type SpatialBinary = {scheme?: IndexScheme; cells: Cells};\nexport type SpatialJson = {\n id: string | bigint;\n properties: Properties;\n}[];\n\nexport function binaryToSpatialjson(binary: SpatialBinary): SpatialJson {\n const {cells, scheme} = binary;\n const count = cells.indices.value.length;\n const spatial: any[] = [];\n for (let i = 0; i < count; i++) {\n const id = scheme === 'h3' ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];\n\n const properties = {...cells.properties[i]};\n for (const key of Object.keys(cells.numericProps)) {\n properties[key] = cells.numericProps[key].value[i];\n }\n spatial.push({id, properties});\n }\n\n return spatial;\n}\n"],"file":"spatialjson-utils.js"}