@deck.gl/carto 9.2.0-beta.1 → 9.2.0-beta.3
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/cartoPropertiesTile-worker.js +1 -1
- package/dist/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +2694 -725
- package/dist/index.cjs +180 -130
- package/dist/index.cjs.map +4 -4
- package/dist/layers/cluster-tile-layer.d.ts +9 -6
- package/dist/layers/cluster-tile-layer.d.ts.map +1 -1
- package/dist/layers/cluster-tile-layer.js +59 -10
- package/dist/layers/cluster-tile-layer.js.map +1 -1
- package/dist/layers/cluster-utils.d.ts +11 -3
- package/dist/layers/cluster-utils.d.ts.map +1 -1
- package/dist/layers/cluster-utils.js +11 -4
- package/dist/layers/cluster-utils.js.map +1 -1
- package/dist/layers/schema/carto-properties-tile-loader.js +1 -1
- package/dist/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist.min.js +10 -9
- package/package.json +6 -6
- package/src/layers/cluster-tile-layer.ts +97 -22
- package/src/layers/cluster-utils.ts +24 -9
|
@@ -2,11 +2,11 @@ import { GeoJsonLayerProps } from '@deck.gl/layers';
|
|
|
2
2
|
import { TileLayerProps, TileLayerPickingInfo } from '@deck.gl/geo-layers';
|
|
3
3
|
import type { Feature, Geometry } from 'geojson';
|
|
4
4
|
import { Accessor, DefaultProps, CompositeLayer, Layer, LayersList, PickingInfo } from '@deck.gl/core';
|
|
5
|
-
import { ClusteredFeaturePropertiesT, ParsedQuadbinCell, ParsedQuadbinTile } from "./cluster-utils.js";
|
|
5
|
+
import { ClusteredFeaturePropertiesT, ParsedQuadbinCell, ParsedQuadbinTile, ParsedH3Cell, ParsedH3Tile } from "./cluster-utils.js";
|
|
6
6
|
import type { TilejsonResult } from '@carto/api-client';
|
|
7
|
-
export type ClusterTileLayerPickingInfo<FeaturePropertiesT = {}> = TileLayerPickingInfo<ParsedQuadbinTile<FeaturePropertiesT>, PickingInfo<Feature<Geometry, FeaturePropertiesT>>>;
|
|
7
|
+
export type ClusterTileLayerPickingInfo<FeaturePropertiesT = {}> = TileLayerPickingInfo<ParsedQuadbinTile<FeaturePropertiesT> | ParsedH3Tile<FeaturePropertiesT>, PickingInfo<Feature<Geometry, FeaturePropertiesT>>>;
|
|
8
8
|
/** All properties supported by ClusterTileLayer. */
|
|
9
|
-
export type ClusterTileLayerProps<FeaturePropertiesT = unknown> = _ClusterTileLayerProps<FeaturePropertiesT> & Omit<TileLayerProps<ParsedQuadbinTile<FeaturePropertiesT>>, 'data'>;
|
|
9
|
+
export type ClusterTileLayerProps<FeaturePropertiesT = unknown> = _ClusterTileLayerProps<FeaturePropertiesT> & Omit<TileLayerProps<ParsedQuadbinTile<FeaturePropertiesT> | ParsedH3Tile<FeaturePropertiesT>>, 'data'>;
|
|
10
10
|
/** Properties added by ClusterTileLayer. */
|
|
11
11
|
type _ClusterTileLayerProps<FeaturePropertiesT> = Omit<GeoJsonLayerProps<ClusteredFeaturePropertiesT<FeaturePropertiesT>>, 'data'> & {
|
|
12
12
|
data: null | TilejsonResult | Promise<TilejsonResult>;
|
|
@@ -19,17 +19,20 @@ type _ClusterTileLayerProps<FeaturePropertiesT> = Omit<GeoJsonLayerProps<Cluster
|
|
|
19
19
|
clusterLevel?: number;
|
|
20
20
|
/**
|
|
21
21
|
* The (average) position of points in a cell used for clustering.
|
|
22
|
-
* If not supplied the center of the quadbin cell is used.
|
|
22
|
+
* If not supplied the center of the quadbin cell or H3 cell is used.
|
|
23
23
|
*
|
|
24
24
|
* @default cell center
|
|
25
25
|
*/
|
|
26
|
-
getPosition?: Accessor<ParsedQuadbinCell<FeaturePropertiesT>, [
|
|
26
|
+
getPosition?: Accessor<ParsedQuadbinCell<FeaturePropertiesT> | ParsedH3Cell<FeaturePropertiesT>, [
|
|
27
|
+
number,
|
|
28
|
+
number
|
|
29
|
+
]>;
|
|
27
30
|
/**
|
|
28
31
|
* The weight of each cell used for clustering.
|
|
29
32
|
*
|
|
30
33
|
* @default 1
|
|
31
34
|
*/
|
|
32
|
-
getWeight?: Accessor<ParsedQuadbinCell<FeaturePropertiesT>, number>;
|
|
35
|
+
getWeight?: Accessor<ParsedQuadbinCell<FeaturePropertiesT> | ParsedH3Cell<FeaturePropertiesT>, number>;
|
|
33
36
|
};
|
|
34
37
|
export default class ClusterTileLayer<FeaturePropertiesT = any, ExtraProps extends {} = {}> extends CompositeLayer<ExtraProps & Required<_ClusterTileLayerProps<FeaturePropertiesT>>> {
|
|
35
38
|
static layerName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/cluster-tile-layer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAGL,cAAc,EACd,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE/C,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAGd,KAAK,EACL,UAAU,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"cluster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/cluster-tile-layer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAGL,cAAc,EACd,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE/C,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAGd,KAAK,EACL,UAAU,EACV,WAAW,EAEZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,2BAA2B,EAI3B,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,2BAAwB;AAQzB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AA8BtD,MAAM,MAAM,2BAA2B,CAAC,kBAAkB,GAAG,EAAE,IAAI,oBAAoB,CACrF,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,EACxE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CACnD,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,CAAC,kBAAkB,GAAG,OAAO,IAC5D,sBAAsB,CAAC,kBAAkB,CAAC,GACxC,IAAI,CACF,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC,EACxF,MAAM,CACP,CAAC;AAEN,4CAA4C;AAC5C,KAAK,sBAAsB,CAAC,kBAAkB,IAAI,IAAI,CACpD,iBAAiB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,EAClE,MAAM,CACP,GAAG;IACF,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,QAAQ,CACpB,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,EACxE;QAAC,MAAM;QAAE,MAAM;KAAC,CACjB,CAAC;IAEF;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAClB,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,EACxE,MAAM,CACP,CAAC;CACH,CAAC;AA6JF,MAAM,CAAC,OAAO,OAAO,gBAAgB,CACnC,kBAAkB,GAAG,GAAG,EACxB,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzF,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,YAAY,+CAAgB;IAEnC,cAAc,IAAI,GAAG;IASrB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAoB1C"}
|
|
@@ -10,16 +10,33 @@ import { CompositeLayer, _deepEqual as deepEqual } from '@deck.gl/core';
|
|
|
10
10
|
import { aggregateTile, clustersToBinary, computeAggregationStats, extractAggregationProperties } from "./cluster-utils.js";
|
|
11
11
|
import { DEFAULT_TILE_SIZE } from "../constants.js";
|
|
12
12
|
import QuadbinTileset2D from "./quadbin-tileset-2d.js";
|
|
13
|
+
import H3Tileset2D, { getHexagonResolution } from "./h3-tileset-2d.js";
|
|
13
14
|
import { getQuadbinPolygon } from "./quadbin-utils.js";
|
|
15
|
+
import { getResolution, cellToLatLng } from 'h3-js';
|
|
14
16
|
import CartoSpatialTileLoader from "./schema/carto-spatial-tile-loader.js";
|
|
15
17
|
import { TilejsonPropType, mergeLoadOptions } from "./utils.js";
|
|
16
18
|
registerLoaders([CartoSpatialTileLoader]);
|
|
19
|
+
function getScheme(tilesetClass) {
|
|
20
|
+
if (tilesetClass === H3Tileset2D)
|
|
21
|
+
return 'h3';
|
|
22
|
+
if (tilesetClass === QuadbinTileset2D)
|
|
23
|
+
return 'quadbin';
|
|
24
|
+
throw new Error('Invalid tileset class');
|
|
25
|
+
}
|
|
17
26
|
const defaultProps = {
|
|
18
27
|
data: TilejsonPropType,
|
|
19
28
|
clusterLevel: { type: 'number', value: 5, min: 1 },
|
|
20
29
|
getPosition: {
|
|
21
30
|
type: 'accessor',
|
|
22
|
-
value: ({ id }) =>
|
|
31
|
+
value: ({ id }) => {
|
|
32
|
+
// Determine scheme based on ID type: H3 uses string IDs, Quadbin uses bigint IDs
|
|
33
|
+
if (typeof id === 'string') {
|
|
34
|
+
const [lat, lng] = cellToLatLng(id);
|
|
35
|
+
return [lng, lat];
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
38
|
+
return getQuadbinPolygon(id, 0.5).slice(2, 4);
|
|
39
|
+
}
|
|
23
40
|
},
|
|
24
41
|
getWeight: { type: 'accessor', value: 1 },
|
|
25
42
|
refinementStrategy: 'no-overlap',
|
|
@@ -29,32 +46,42 @@ class ClusterGeoJsonLayer extends TileLayer {
|
|
|
29
46
|
initializeState() {
|
|
30
47
|
super.initializeState();
|
|
31
48
|
this.state.aggregationCache = new WeakMap();
|
|
49
|
+
this.state.scheme = getScheme(this.props.TilesetClass);
|
|
50
|
+
}
|
|
51
|
+
updateState(opts) {
|
|
52
|
+
const { props } = opts;
|
|
53
|
+
const scheme = getScheme(props.TilesetClass);
|
|
54
|
+
if (this.state.scheme !== scheme) {
|
|
55
|
+
// Clear caches when scheme changes
|
|
56
|
+
this.setState({ scheme, tileset: null });
|
|
57
|
+
this.state.aggregationCache = new WeakMap();
|
|
58
|
+
}
|
|
59
|
+
super.updateState(opts);
|
|
32
60
|
}
|
|
33
61
|
// eslint-disable-next-line max-statements
|
|
34
62
|
renderLayers() {
|
|
35
63
|
const visibleTiles = this.state.tileset?.tiles.filter((tile) => {
|
|
36
64
|
return tile.isLoaded && tile.content && this.state.tileset.isTileVisible(tile);
|
|
37
65
|
});
|
|
38
|
-
if (!visibleTiles?.length) {
|
|
66
|
+
if (!visibleTiles?.length || !this.state.tileset) {
|
|
39
67
|
return null;
|
|
40
68
|
}
|
|
41
69
|
visibleTiles.sort((a, b) => b.zoom - a.zoom);
|
|
42
|
-
const {
|
|
43
|
-
const {
|
|
44
|
-
const
|
|
70
|
+
const { getPosition, getWeight } = this.props;
|
|
71
|
+
const { aggregationCache, scheme } = this.state;
|
|
72
|
+
const isH3 = scheme === 'h3';
|
|
45
73
|
const properties = extractAggregationProperties(visibleTiles[0]);
|
|
46
74
|
const data = [];
|
|
47
75
|
let needsUpdate = false;
|
|
76
|
+
const aggregationLevels = this._getAggregationLevels(visibleTiles);
|
|
48
77
|
for (const tile of visibleTiles) {
|
|
49
78
|
// Calculate aggregation based on viewport zoom
|
|
50
|
-
const overZoom = Math.round(zoom - tile.zoom);
|
|
51
|
-
const aggregationLevels = Math.round(clusterLevel) - overZoom;
|
|
52
79
|
let tileAggregationCache = aggregationCache.get(tile.content);
|
|
53
80
|
if (!tileAggregationCache) {
|
|
54
81
|
tileAggregationCache = new Map();
|
|
55
82
|
aggregationCache.set(tile.content, tileAggregationCache);
|
|
56
83
|
}
|
|
57
|
-
const didAggregate = aggregateTile(tile, tileAggregationCache, aggregationLevels, properties, getPosition, getWeight);
|
|
84
|
+
const didAggregate = aggregateTile(tile, tileAggregationCache, aggregationLevels, properties, getPosition, getWeight, isH3 ? 'h3' : 'quadbin');
|
|
58
85
|
needsUpdate || (needsUpdate = didAggregate);
|
|
59
86
|
data.push(...tileAggregationCache.get(aggregationLevels));
|
|
60
87
|
}
|
|
@@ -98,6 +125,25 @@ class ClusterGeoJsonLayer extends TileLayer {
|
|
|
98
125
|
filterSubLayer() {
|
|
99
126
|
return true;
|
|
100
127
|
}
|
|
128
|
+
_getAggregationLevels(visibleTiles) {
|
|
129
|
+
const isH3 = this.state.scheme === 'h3';
|
|
130
|
+
const firstTile = visibleTiles[0];
|
|
131
|
+
// Resolution of data present in tiles
|
|
132
|
+
let tileResolution;
|
|
133
|
+
// Resolution of tiles that should be (eventually) visible in the viewport
|
|
134
|
+
let viewportResolution;
|
|
135
|
+
if (isH3) {
|
|
136
|
+
tileResolution = getResolution(firstTile.id);
|
|
137
|
+
viewportResolution = getHexagonResolution(this.context.viewport, this.state.tileset.opts.tileSize);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
tileResolution = firstTile.zoom;
|
|
141
|
+
viewportResolution = this.context.viewport.zoom;
|
|
142
|
+
}
|
|
143
|
+
const resolutionDiff = Math.round(viewportResolution - tileResolution);
|
|
144
|
+
const aggregationLevels = Math.round(this.props.clusterLevel) - resolutionDiff;
|
|
145
|
+
return aggregationLevels;
|
|
146
|
+
}
|
|
101
147
|
}
|
|
102
148
|
ClusterGeoJsonLayer.layerName = 'ClusterGeoJsonLayer';
|
|
103
149
|
ClusterGeoJsonLayer.defaultProps = defaultProps;
|
|
@@ -105,9 +151,10 @@ ClusterGeoJsonLayer.defaultProps = defaultProps;
|
|
|
105
151
|
class ClusterTileLayer extends CompositeLayer {
|
|
106
152
|
getLoadOptions() {
|
|
107
153
|
const tileJSON = this.props.data;
|
|
154
|
+
const scheme = tileJSON && 'scheme' in tileJSON ? tileJSON.scheme : 'quadbin';
|
|
108
155
|
return mergeLoadOptions(super.getLoadOptions(), {
|
|
109
156
|
fetch: { headers: { Authorization: `Bearer ${tileJSON.accessToken}` } },
|
|
110
|
-
cartoSpatialTile: { scheme
|
|
157
|
+
cartoSpatialTile: { scheme }
|
|
111
158
|
});
|
|
112
159
|
}
|
|
113
160
|
renderLayers() {
|
|
@@ -115,13 +162,15 @@ class ClusterTileLayer extends CompositeLayer {
|
|
|
115
162
|
if (!tileJSON)
|
|
116
163
|
return null;
|
|
117
164
|
const { tiles: data, maxresolution: maxZoom } = tileJSON;
|
|
165
|
+
const isH3 = tileJSON && 'scheme' in tileJSON && tileJSON.scheme === 'h3';
|
|
166
|
+
const TilesetClass = isH3 ? H3Tileset2D : QuadbinTileset2D;
|
|
118
167
|
return [
|
|
119
168
|
// @ts-ignore
|
|
120
169
|
new ClusterGeoJsonLayer(this.props, {
|
|
121
170
|
id: `cluster-geojson-layer-${this.props.id}`,
|
|
122
171
|
data,
|
|
123
172
|
// TODO: Tileset2D should be generic over TileIndex type
|
|
124
|
-
TilesetClass:
|
|
173
|
+
TilesetClass: TilesetClass,
|
|
125
174
|
maxZoom,
|
|
126
175
|
loadOptions: this.getLoadOptions()
|
|
127
176
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-tile-layer.js","sourceRoot":"","sources":["../../src/layers/cluster-tile-layer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,8BAA8B;AAE9B,OAAO,EAAC,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,SAAS,EAIV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAGL,cAAc,EACd,UAAU,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"cluster-tile-layer.js","sourceRoot":"","sources":["../../src/layers/cluster-tile-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export type AggregationProperties<FeaturePropertiesT> = {
|
|
|
7
7
|
name: keyof FeaturePropertiesT;
|
|
8
8
|
}[];
|
|
9
9
|
export type ClusteredFeaturePropertiesT<FeaturePropertiesT> = FeaturePropertiesT & {
|
|
10
|
-
id: bigint;
|
|
10
|
+
id: bigint | string;
|
|
11
11
|
count: number;
|
|
12
12
|
position: [number, number];
|
|
13
13
|
};
|
|
@@ -16,13 +16,21 @@ export type ParsedQuadbinCell<FeaturePropertiesT> = {
|
|
|
16
16
|
properties: FeaturePropertiesT;
|
|
17
17
|
};
|
|
18
18
|
export type ParsedQuadbinTile<FeaturePropertiesT> = ParsedQuadbinCell<FeaturePropertiesT>[];
|
|
19
|
+
export type ParsedH3Cell<FeaturePropertiesT> = {
|
|
20
|
+
id: string;
|
|
21
|
+
properties: FeaturePropertiesT;
|
|
22
|
+
};
|
|
23
|
+
export type ParsedH3Tile<FeaturePropertiesT> = ParsedH3Cell<FeaturePropertiesT>[];
|
|
19
24
|
/**
|
|
20
25
|
* Aggregates tile by specified properties, caching result in tile.userData
|
|
21
26
|
*
|
|
22
27
|
* @returns true if data was aggregated, false if cache used
|
|
23
28
|
*/
|
|
24
|
-
export declare function aggregateTile<FeaturePropertiesT>(tile: Tile2DHeader<ParsedQuadbinTile<FeaturePropertiesT>>, tileAggregationCache: Map<number, ClusteredFeaturePropertiesT<FeaturePropertiesT>[]>, aggregationLevels: number, properties: AggregationProperties<FeaturePropertiesT> | undefined, getPosition: Accessor<ParsedQuadbinCell<FeaturePropertiesT
|
|
25
|
-
|
|
29
|
+
export declare function aggregateTile<FeaturePropertiesT>(tile: Tile2DHeader<ParsedQuadbinTile<FeaturePropertiesT> | ParsedH3Tile<FeaturePropertiesT>>, tileAggregationCache: Map<number, ClusteredFeaturePropertiesT<FeaturePropertiesT>[]>, aggregationLevels: number, properties: AggregationProperties<FeaturePropertiesT> | undefined, getPosition: Accessor<ParsedQuadbinCell<FeaturePropertiesT> | ParsedH3Cell<FeaturePropertiesT>, [
|
|
30
|
+
number,
|
|
31
|
+
number
|
|
32
|
+
]>, getWeight: Accessor<ParsedQuadbinCell<FeaturePropertiesT> | ParsedH3Cell<FeaturePropertiesT>, number>, scheme?: 'quadbin' | 'h3'): boolean;
|
|
33
|
+
export declare function extractAggregationProperties<FeaturePropertiesT extends {}>(tile: Tile2DHeader<ParsedQuadbinTile<FeaturePropertiesT> | ParsedH3Tile<FeaturePropertiesT>>): AggregationProperties<FeaturePropertiesT>;
|
|
26
34
|
export declare function computeAggregationStats<FeaturePropertiesT>(data: ClusteredFeaturePropertiesT<FeaturePropertiesT>[], properties: AggregationProperties<FeaturePropertiesT>): Record<keyof FeaturePropertiesT, {
|
|
27
35
|
min: number;
|
|
28
36
|
max: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-utils.d.ts","sourceRoot":"","sources":["../../src/layers/cluster-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cluster-utils.d.ts","sourceRoot":"","sources":["../../src/layers/cluster-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { cellToParent } from 'quadbin';
|
|
5
|
+
import { cellToParent as h3CellToParent, getResolution as getH3Resolution } from 'h3-js';
|
|
5
6
|
import { log } from '@deck.gl/core';
|
|
6
7
|
import { createBinaryPointFeature, createEmptyBinary } from "../utils.js";
|
|
7
8
|
/**
|
|
@@ -9,7 +10,7 @@ import { createBinaryPointFeature, createEmptyBinary } from "../utils.js";
|
|
|
9
10
|
*
|
|
10
11
|
* @returns true if data was aggregated, false if cache used
|
|
11
12
|
*/
|
|
12
|
-
export function aggregateTile(tile, tileAggregationCache, aggregationLevels, properties = [], getPosition, getWeight) {
|
|
13
|
+
export function aggregateTile(tile, tileAggregationCache, aggregationLevels, properties = [], getPosition, getWeight, scheme = 'quadbin') {
|
|
13
14
|
if (!tile.content)
|
|
14
15
|
return false;
|
|
15
16
|
// Aggregate on demand and cache result
|
|
@@ -31,11 +32,17 @@ export function aggregateTile(tile, tileAggregationCache, aggregationLevels, pro
|
|
|
31
32
|
const position = typeof getPosition === 'function' ? getPosition(cell, {}) : getPosition;
|
|
32
33
|
// Aggregate by parent rid
|
|
33
34
|
for (let i = 0; i < aggregationLevels - 1; i++) {
|
|
34
|
-
|
|
35
|
+
if (scheme === 'h3') {
|
|
36
|
+
const currentResolution = getH3Resolution(id);
|
|
37
|
+
id = h3CellToParent(id, Math.max(0, currentResolution - 1));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
id = cellToParent(id);
|
|
41
|
+
}
|
|
35
42
|
}
|
|
36
|
-
//
|
|
43
|
+
// Use string key for both H3 and Quadbin to avoid TypeScript Record<bigint, any> issues
|
|
37
44
|
// https://github.com/microsoft/TypeScript/issues/46395
|
|
38
|
-
const parentId =
|
|
45
|
+
const parentId = String(id);
|
|
39
46
|
if (!(parentId in out)) {
|
|
40
47
|
out[parentId] = { id, count: 0, position: [0, 0] };
|
|
41
48
|
for (const { name, aggregation } of properties) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-utils.js","sourceRoot":"","sources":["../../src/layers/cluster-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cluster-utils.js","sourceRoot":"","sources":["../../src/layers/cluster-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { TileReader } from "./carto-properties-tile.js";
|
|
5
5
|
import { parsePbf } from "./tile-loader-utils.js";
|
|
6
6
|
import { getWorkerUrl } from "../../utils.js";
|
|
7
|
-
const VERSION = typeof "9.2.0-beta.
|
|
7
|
+
const VERSION = typeof "9.2.0-beta.3" !== 'undefined' ? "9.2.0-beta.3" : 'latest';
|
|
8
8
|
const id = 'cartoPropertiesTile';
|
|
9
9
|
const DEFAULT_OPTIONS = {
|
|
10
10
|
cartoPropertiesTile: {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { TileReader } from "./carto-raster-tile.js";
|
|
5
5
|
import { parsePbf } from "./tile-loader-utils.js";
|
|
6
6
|
import { getWorkerUrl } from "../../utils.js";
|
|
7
|
-
const VERSION = typeof "9.2.0-beta.
|
|
7
|
+
const VERSION = typeof "9.2.0-beta.3" !== 'undefined' ? "9.2.0-beta.3" : 'latest';
|
|
8
8
|
const id = 'cartoRasterTile';
|
|
9
9
|
const DEFAULT_OPTIONS = {
|
|
10
10
|
cartoRasterTile: {
|
|
@@ -5,7 +5,7 @@ import { TileReader } from "./carto-spatial-tile.js";
|
|
|
5
5
|
import { parsePbf } from "./tile-loader-utils.js";
|
|
6
6
|
import { getWorkerUrl } from "../../utils.js";
|
|
7
7
|
import { binaryToSpatialjson } from "./spatialjson-utils.js";
|
|
8
|
-
const VERSION = typeof "9.2.0-beta.
|
|
8
|
+
const VERSION = typeof "9.2.0-beta.3" !== 'undefined' ? "9.2.0-beta.3" : 'latest';
|
|
9
9
|
const id = 'cartoSpatialTile';
|
|
10
10
|
const DEFAULT_OPTIONS = {
|
|
11
11
|
cartoSpatialTile: {
|
|
@@ -5,7 +5,7 @@ import earcut from 'earcut';
|
|
|
5
5
|
import { TileReader } from "./carto-tile.js";
|
|
6
6
|
import { parsePbf } from "./tile-loader-utils.js";
|
|
7
7
|
import { getWorkerUrl } from "../../utils.js";
|
|
8
|
-
const VERSION = typeof "9.2.0-beta.
|
|
8
|
+
const VERSION = typeof "9.2.0-beta.3" !== 'undefined' ? "9.2.0-beta.3" : 'latest';
|
|
9
9
|
const id = 'cartoVectorTile';
|
|
10
10
|
const DEFAULT_OPTIONS = {
|
|
11
11
|
cartoVectorTile: {
|