@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.
@@ -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>, [number, number]>;
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,EACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,2BAA2B,EAI3B,iBAAiB,EACjB,iBAAiB,EAClB,2BAAwB;AAMzB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAgBtD,MAAM,MAAM,2BAA2B,CAAC,kBAAkB,GAAG,EAAE,IAAI,oBAAoB,CACrF,iBAAiB,CAAC,kBAAkB,CAAC,EACrC,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,CAAC,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAExE,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,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhF;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;CACrE,CAAC;AAkHF,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;IAQrB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAiB1C"}
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 }) => getQuadbinPolygon(id, 0.5).slice(2, 4)
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 { zoom } = this.context.viewport;
43
- const { clusterLevel, getPosition, getWeight } = this.props;
44
- const { aggregationCache } = this.state;
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: 'quadbin' }
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: QuadbinTileset2D,
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":"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"}
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>, [number, number]>, getWeight: Accessor<ParsedQuadbinCell<FeaturePropertiesT>, number>): boolean;
25
- export declare function extractAggregationProperties<FeaturePropertiesT extends {}>(tile: Tile2DHeader<ParsedQuadbinTile<FeaturePropertiesT>>): AggregationProperties<FeaturePropertiesT>;
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":"AAKA,OAAO,EAAC,aAAa,IAAI,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,QAAQ,EAAM,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAC9E,MAAM,MAAM,qBAAqB,CAAC,kBAAkB,IAAI;IACtD,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,kBAAkB,CAAC;CAChC,EAAE,CAAC;AACJ,MAAM,MAAM,2BAA2B,CAAC,kBAAkB,IAAI,kBAAkB,GAAG;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,kBAAkB,IAAI;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAA;CAAC,CAAC;AACjG,MAAM,MAAM,iBAAiB,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,kBAAkB,EAC9C,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EACzD,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACpF,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,YAAK,EAC1D,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9E,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,GACjE,OAAO,CAoET;AAED,wBAAgB,4BAA4B,CAAC,kBAAkB,SAAS,EAAE,EACxE,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GACxD,qBAAqB,CAAC,kBAAkB,CAAC,CAa3C;AAED,wBAAgB,uBAAuB,CAAC,kBAAkB,EACxD,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,EACvD,UAAU,EAAE,qBAAqB,CAAC,kBAAkB,CAAC;SAEM,MAAM;SAAO,MAAM;GAY/E;AAED,KAAK,gCAAgC,CAAC,kBAAkB,IAAI,IAAI,CAC9D,uBAAuB,EACvB,QAAQ,CACT,GAAG;IACF,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG;QAC1C,UAAU,CAAC,EAAE;YACX,KAAK,EAAE,MAAM,CAAC,MAAM,kBAAkB,EAAE;gBAAC,GAAG,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAA;aAAC,CAAC,CAAC;SACrE,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,kBAAkB,EACjD,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,GACtD,gCAAgC,CAAC,kBAAkB,CAAC,CAYtD"}
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
- id = cellToParent(id);
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
- // Unfortunately TS doesn't support Record<bigint, any>
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 = Number(id);
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":"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"}
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.1" !== 'undefined' ? "9.2.0-beta.1" : 'latest';
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.1" !== 'undefined' ? "9.2.0-beta.1" : 'latest';
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.1" !== 'undefined' ? "9.2.0-beta.1" : 'latest';
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.1" !== 'undefined' ? "9.2.0-beta.1" : 'latest';
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: {