@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.
- package/dist/dist.dev.js +42094 -41972
- package/dist/es5/api/layer-map.js +24 -11
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +10 -1
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +57 -19
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/index.js +0 -20
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +19 -2
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +10 -1
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +10 -1
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +13 -11
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/quadbin-utils.js +6 -82
- package/dist/es5/layers/quadbin-utils.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +10 -2
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/spatialjson-utils.js +4 -3
- package/dist/es5/layers/schema/spatialjson-utils.js.map +1 -1
- package/dist/esm/api/layer-map.js +13 -2
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +9 -1
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +64 -20
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +18 -0
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +6 -1
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +6 -1
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tileset-2d.js +12 -10
- package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/esm/layers/quadbin-utils.js +2 -67
- package/dist/esm/layers/quadbin-utils.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +10 -2
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/spatialjson-utils.js +4 -3
- package/dist/esm/layers/schema/spatialjson-utils.js.map +1 -1
- package/dist.min.js +4 -4
- package/package.json +9 -8
- package/src/api/layer-map.ts +14 -5
- package/src/api/maps-v3-client.ts +5 -1
- package/src/api/parseMap.ts +39 -22
- package/src/index.ts +0 -5
- package/src/layers/carto-layer.ts +9 -2
- package/src/layers/h3-tile-layer.ts +7 -1
- package/src/layers/quadbin-layer.ts +1 -1
- package/src/layers/quadbin-tile-layer.ts +7 -1
- package/src/layers/quadbin-tileset-2d.ts +14 -12
- package/src/layers/quadbin-utils.ts +4 -85
- package/src/layers/schema/carto-spatial-tile-loader.ts +9 -3
- package/src/layers/schema/spatialjson-utils.ts +4 -4
- package/typed/api/layer-map.d.ts +5 -1
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts +1 -0
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/api/parseMap.d.ts +1 -0
- package/typed/api/parseMap.d.ts.map +1 -1
- package/typed/index.d.ts +0 -1
- package/typed/index.d.ts.map +1 -1
- package/typed/layers/carto-layer.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-layer.d.ts +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tileset-2d.d.ts +6 -5
- package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
- package/typed/layers/quadbin-utils.d.ts +2 -12
- package/typed/layers/quadbin-utils.d.ts.map +1 -1
- package/typed/layers/schema/carto-spa-tile.d.ts +57 -0
- package/typed/layers/schema/carto-spa-tile.d.ts.map +1 -0
- package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/spatialjson-utils.d.ts +1 -1
- package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
- package/typed/api/index.js +0 -3
- package/typed/api/layer-map.js +0 -264
- package/typed/api/maps-api-common.js +0 -50
- package/typed/api/maps-client.js +0 -125
- package/typed/api/maps-v3-client.js +0 -304
- package/typed/api/parseMap.js +0 -178
- package/typed/basemap.js +0 -9
- package/typed/config.js +0 -35
- package/typed/index.js +0 -10
- package/typed/layers/carto-layer.js +0 -173
- package/typed/layers/carto-tile-layer.js +0 -105
- package/typed/layers/h3-tile-layer.js +0 -47
- package/typed/layers/h3-tileset-2d.js +0 -85
- package/typed/layers/quadkey-tile-layer.js +0 -42
- package/typed/layers/quadkey-tileset-2d.js +0 -36
- package/typed/layers/schema/carto-tile.js +0 -161
- package/typed/layers/spatial-index-tile-layer.js +0 -40
- package/typed/style/color-bins-style.js +0 -12
- package/typed/style/color-categories-style.js +0 -16
- package/typed/style/color-continuous-style.js +0 -12
- package/typed/style/palette.js +0 -62
- package/typed/style/utils.js +0 -15
- 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
|
-
} =
|
|
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","
|
|
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,
|
|
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 {
|
|
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 =
|
|
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":["
|
|
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"}
|