@deck.gl/carto 8.8.0-beta.2 → 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 (103) hide show
  1. package/dist/dist.dev.js +2276 -1144
  2. package/dist/es5/api/index.js +0 -6
  3. package/dist/es5/api/index.js.map +1 -1
  4. package/dist/es5/api/maps-v3-client.js +44 -86
  5. package/dist/es5/api/maps-v3-client.js.map +1 -1
  6. package/dist/es5/index.js +3 -9
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/layers/carto-layer.js +14 -19
  9. package/dist/es5/layers/carto-layer.js.map +1 -1
  10. package/dist/es5/layers/h3-tile-layer.js +28 -3
  11. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  12. package/dist/es5/layers/h3-tileset-2d.js +19 -13
  13. package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
  14. package/dist/es5/layers/quadbin-layer.js +71 -0
  15. package/dist/es5/layers/quadbin-layer.js.map +1 -0
  16. package/dist/es5/layers/{quadkey-tile-layer.js → quadbin-tile-layer.js} +17 -17
  17. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -0
  18. package/dist/es5/layers/{quadkey-tileset-2d.js → quadbin-tileset-2d.js} +25 -34
  19. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -0
  20. package/dist/es5/layers/quadbin-utils.js +122 -0
  21. package/dist/es5/layers/quadbin-utils.js.map +1 -0
  22. package/dist/esm/api/index.js +1 -1
  23. package/dist/esm/api/index.js.map +1 -1
  24. package/dist/esm/api/maps-v3-client.js +0 -24
  25. package/dist/esm/api/maps-v3-client.js.map +1 -1
  26. package/dist/esm/index.js +2 -2
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/layers/carto-layer.js +12 -17
  29. package/dist/esm/layers/carto-layer.js.map +1 -1
  30. package/dist/esm/layers/h3-tile-layer.js +22 -3
  31. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  32. package/dist/esm/layers/h3-tileset-2d.js +20 -16
  33. package/dist/esm/layers/h3-tileset-2d.js.map +1 -1
  34. package/dist/esm/layers/quadbin-layer.js +29 -0
  35. package/dist/esm/layers/quadbin-layer.js.map +1 -0
  36. package/dist/esm/layers/{quadkey-tile-layer.js → quadbin-tile-layer.js} +10 -10
  37. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -0
  38. package/dist/esm/layers/quadbin-tileset-2d.js +37 -0
  39. package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -0
  40. package/dist/esm/layers/quadbin-utils.js +88 -0
  41. package/dist/esm/layers/quadbin-utils.js.map +1 -0
  42. package/dist.min.js +138 -138
  43. package/package.json +2 -2
  44. package/src/api/index.ts +1 -1
  45. package/src/api/maps-v3-client.ts +0 -24
  46. package/src/index.ts +1 -2
  47. package/src/layers/carto-layer.ts +28 -35
  48. package/src/layers/h3-tile-layer.ts +25 -3
  49. package/src/layers/h3-tileset-2d.ts +20 -10
  50. package/src/layers/quadbin-layer.ts +43 -0
  51. package/src/layers/{quadkey-tile-layer.ts → quadbin-tile-layer.ts} +15 -13
  52. package/src/layers/quadbin-tileset-2d.ts +34 -0
  53. package/src/layers/quadbin-utils.ts +102 -0
  54. package/typed/api/index.d.ts +1 -1
  55. package/typed/api/index.d.ts.map +1 -1
  56. package/typed/api/maps-v3-client.d.ts +0 -1
  57. package/typed/api/maps-v3-client.d.ts.map +1 -1
  58. package/typed/index.d.ts +2 -2
  59. package/typed/index.d.ts.map +1 -1
  60. package/typed/layers/carto-layer.d.ts +6 -10
  61. package/typed/layers/carto-layer.d.ts.map +1 -1
  62. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  63. package/typed/layers/h3-tileset-2d.d.ts +6 -0
  64. package/typed/layers/h3-tileset-2d.d.ts.map +1 -1
  65. package/typed/layers/quadbin-layer.d.ts +20 -0
  66. package/typed/layers/quadbin-layer.d.ts.map +1 -0
  67. package/typed/layers/quadbin-tile-layer.d.ts +21 -0
  68. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -0
  69. package/typed/layers/quadbin-tileset-2d.d.ts +13 -0
  70. package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -0
  71. package/typed/layers/quadbin-utils.d.ts +11 -0
  72. package/typed/layers/quadbin-utils.d.ts.map +1 -0
  73. package/typed/layers/quadkey-tileset-2d.d.ts +1 -1
  74. package/typed/layers/quadkey-tileset-2d.d.ts.map +1 -1
  75. package/dist/es5/layers/quadkey-tile-layer.js.map +0 -1
  76. package/dist/es5/layers/quadkey-tileset-2d.js.map +0 -1
  77. package/dist/esm/layers/quadkey-tile-layer.js.map +0 -1
  78. package/dist/esm/layers/quadkey-tileset-2d.js +0 -48
  79. package/dist/esm/layers/quadkey-tileset-2d.js.map +0 -1
  80. package/src/layers/quadkey-tileset-2d.ts +0 -41
  81. package/typed/api/index.js +0 -3
  82. package/typed/api/layer-map.js +0 -264
  83. package/typed/api/maps-api-common.js +0 -50
  84. package/typed/api/maps-client.js +0 -125
  85. package/typed/api/maps-v3-client.js +0 -304
  86. package/typed/api/parseMap.js +0 -178
  87. package/typed/basemap.js +0 -9
  88. package/typed/config.js +0 -35
  89. package/typed/index.js +0 -10
  90. package/typed/layers/carto-layer.js +0 -173
  91. package/typed/layers/carto-tile-layer.js +0 -105
  92. package/typed/layers/h3-tile-layer.js +0 -47
  93. package/typed/layers/h3-tileset-2d.js +0 -85
  94. package/typed/layers/quadkey-tile-layer.js +0 -42
  95. package/typed/layers/quadkey-tileset-2d.js +0 -36
  96. package/typed/layers/schema/carto-tile.js +0 -161
  97. package/typed/layers/spatial-index-tile-layer.js +0 -40
  98. package/typed/style/color-bins-style.js +0 -12
  99. package/typed/style/color-categories-style.js +0 -16
  100. package/typed/style/color-continuous-style.js +0 -12
  101. package/typed/style/palette.js +0 -62
  102. package/typed/style/utils.js +0 -15
  103. package/typed/utils.js +0 -4
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@deck.gl/carto",
3
3
  "description": "CARTO official integration with Deck.gl. Build geospatial applications using CARTO and Deck.gl.",
4
4
  "license": "MIT",
5
- "version": "8.8.0-beta.2",
5
+ "version": "8.8.0-beta.5",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -61,5 +61,5 @@
61
61
  "@deck.gl/layers": "^8.0.0",
62
62
  "@loaders.gl/core": "^3.0.0"
63
63
  },
64
- "gitHead": "d9bae59d015387c547366465d75d80950c60a34e"
64
+ "gitHead": "20b7becdb467aa917c17c9517461bf62ecc48b12"
65
65
  }
package/src/api/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export {FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';
2
2
  export {getDataV2, CONNECTIONS} from './maps-client';
3
- export {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';
3
+ export {fetchLayerData, fetchMap, mapInstantiation} from './maps-v3-client';
@@ -356,30 +356,6 @@ async function _fetchDataUrl({
356
356
  return {url, accessToken, mapFormat, metadata};
357
357
  }
358
358
 
359
- export async function getData({
360
- type,
361
- source,
362
- connection,
363
- credentials,
364
- geoColumn,
365
- columns,
366
- format,
367
- clientId
368
- }: FetchLayerDataParams) {
369
- log.deprecated('getData', 'fetchLayerData')();
370
- const layerData = await fetchLayerData({
371
- type,
372
- source,
373
- connection,
374
- credentials,
375
- geoColumn,
376
- columns,
377
- format,
378
- clientId
379
- });
380
- return layerData.data;
381
- }
382
-
383
359
  /* global clearInterval, setInterval, URL */
384
360
  async function _fetchMapDataset(
385
361
  dataset,
package/src/index.ts CHANGED
@@ -2,7 +2,7 @@ export {getDefaultCredentials, setDefaultCredentials} from './config';
2
2
  export {default as CartoLayer} from './layers/carto-layer';
3
3
  export {default as _CartoTileLayer} from './layers/carto-tile-layer';
4
4
  export {default as _H3TileLayer} from './layers/h3-tile-layer';
5
- export {default as _QuadkeyTileLayer} from './layers/quadkey-tile-layer';
5
+ export {default as _QuadbinTileLayer} from './layers/quadbin-tile-layer';
6
6
  export {default as BASEMAP} from './basemap';
7
7
  export {default as colorBins} from './style/color-bins-style';
8
8
  export {default as colorCategories} from './style/color-categories-style';
@@ -15,7 +15,6 @@ export {
15
15
  fetchLayerData,
16
16
  fetchMap,
17
17
  getDataV2 as _getDataV2,
18
- getData,
19
18
  mapInstantiation as _mapInstantiation
20
19
  } from './api';
21
20
 
@@ -8,13 +8,11 @@ import {
8
8
  } from '@deck.gl/core';
9
9
  import CartoTileLayer from './carto-tile-layer';
10
10
  import H3TileLayer from './h3-tile-layer';
11
- import QuadkeyTileLayer from './quadkey-tile-layer';
11
+ import QuadbinTileLayer from './quadbin-tile-layer';
12
12
  import {MVTLayer} from '@deck.gl/geo-layers';
13
- import {GeoJsonLayer} from '@deck.gl/layers';
14
13
  import {fetchLayerData, getDataV2, API_VERSIONS} from '../api';
15
14
  import {
16
15
  COLUMNS_SUPPORT,
17
- Format,
18
16
  FORMATS,
19
17
  GEO_COLUMN_SUPPORT,
20
18
  MapType,
@@ -64,10 +62,10 @@ const defaultProps = {
64
62
  // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.
65
63
  columns: {type: 'array', value: null},
66
64
 
67
- // (String, optional): aggregration SQL expression. Only used for spatial index datasets
65
+ // (String, optional): aggregation SQL expression. Only used for spatial index datasets
68
66
  aggregationExp: null,
69
67
 
70
- // (Number, optional): aggregration resolution level. Only used for spatial index datasets, defaults to 6 for quadkeys, 4 for h3
68
+ // (Number, optional): aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3
71
69
  aggregationResLevel: null
72
70
  };
73
71
 
@@ -98,19 +96,10 @@ type _CartoLayerProps = {
98
96
  */
99
97
  connection?: string;
100
98
 
101
- /**
102
- * Use to override the default data format.
103
- *
104
- * Only supported when apiVersion is `API_VERSIONS.V3`.
105
- *
106
- * Possible values are: `FORMATS.GEOJSON`, `FORMATS.JSON` and `FORMATS.TILEJSON`.
107
- */
108
- format?: Format;
109
-
110
99
  /**
111
100
  * Use to override the default tile data format.
112
101
  *
113
- * Only supported when apiVersion is `API_VERSIONS.V3` and format is `FORMATS.TILEJSON`.
102
+ * Only supported when apiVersion is `API_VERSIONS.V3`.
114
103
  *
115
104
  * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.
116
105
  */
@@ -156,6 +145,12 @@ type _CartoLayerProps = {
156
145
  onDataError?: (err: unknown) => void;
157
146
 
158
147
  clientId?: string;
148
+
149
+ /** Aggregation SQL expression. Only used for spatial index datasets **/
150
+ aggregationExp?: string;
151
+
152
+ /** Aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3. **/
153
+ aggregationResLevel?: number;
159
154
  };
160
155
 
161
156
  export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<
@@ -227,9 +222,10 @@ export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<
227
222
  this._checkProps(props);
228
223
  const shouldUpdateData =
229
224
  changeFlags.dataChanged ||
225
+ props.aggregationExp !== oldProps.aggregationExp ||
226
+ props.aggregationResLevel !== oldProps.aggregationResLevel ||
230
227
  props.connection !== oldProps.connection ||
231
228
  props.geoColumn !== oldProps.geoColumn ||
232
- props.format !== oldProps.format ||
233
229
  props.formatTiles !== oldProps.formatTiles ||
234
230
  props.type !== oldProps.type ||
235
231
  JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||
@@ -260,7 +256,9 @@ export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<
260
256
  clientId,
261
257
  credentials: credentials as CloudNativeCredentials,
262
258
  connection,
263
- ...rest
259
+ ...rest,
260
+ // CartoLayer only supports tiled output from v8.8, force data format
261
+ format: FORMATS.TILEJSON
264
262
  });
265
263
  }
266
264
 
@@ -282,7 +280,7 @@ export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<
282
280
  _getSubLayerAndProps(): [any, LayerProps] {
283
281
  assert(this.state);
284
282
 
285
- const {data, format, apiVersion} = this.state;
283
+ const {data, apiVersion} = this.state;
286
284
 
287
285
  const {uniqueIdProperty} = defaultProps;
288
286
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -294,26 +292,21 @@ export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<
294
292
  return [MVTLayer, props];
295
293
  }
296
294
 
297
- if (format === FORMATS.TILEJSON) {
298
- /* global URL */
299
- const tileUrl = new URL(data.tiles[0]);
295
+ /* global URL */
296
+ const tileUrl = new URL(data.tiles[0]);
300
297
 
301
- props.formatTiles =
302
- props.formatTiles ||
303
- (tileUrl.searchParams.get('formatTiles') as TileFormat) ||
304
- TILE_FORMATS.MVT;
298
+ props.formatTiles =
299
+ props.formatTiles ||
300
+ (tileUrl.searchParams.get('formatTiles') as TileFormat) ||
301
+ TILE_FORMATS.MVT;
305
302
 
306
- if (data.scheme === 'h3') {
307
- return [H3TileLayer, props];
308
- }
309
- if (data.scheme === 'quadkey') {
310
- return [QuadkeyTileLayer, props];
311
- }
312
- return props.formatTiles === TILE_FORMATS.MVT ? [MVTLayer, props] : [CartoTileLayer, props];
303
+ if (data.scheme === 'h3') {
304
+ return [H3TileLayer, props];
313
305
  }
314
-
315
- // It's a geojson layer
316
- return [GeoJsonLayer, props];
306
+ if (data.scheme === 'quadbin') {
307
+ return [QuadbinTileLayer, props];
308
+ }
309
+ return props.formatTiles === TILE_FORMATS.MVT ? [MVTLayer, props] : [CartoTileLayer, props];
317
310
  }
318
311
 
319
312
  renderLayers(): Layer | null {
@@ -7,7 +7,7 @@ import {
7
7
  DefaultProps
8
8
  } from '@deck.gl/core';
9
9
  import {H3HexagonLayer} from '@deck.gl/geo-layers';
10
- import H3Tileset2D from './h3-tileset-2d';
10
+ import H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';
11
11
  import SpatialIndexTileLayer from './spatial-index-tile-layer';
12
12
 
13
13
  const renderSubLayers = props => {
@@ -50,6 +50,7 @@ export default class H3TileLayer<DataT = any, ExtraPropsT = {}> extends Composit
50
50
  };
51
51
 
52
52
  initializeState(): void {
53
+ H3HexagonLayer._checkH3Lib();
53
54
  this.setState({data: null, tileJSON: null});
54
55
  }
55
56
 
@@ -64,7 +65,26 @@ export default class H3TileLayer<DataT = any, ExtraPropsT = {}> extends Composit
64
65
 
65
66
  renderLayers(): Layer | null | LayersList {
66
67
  const {data, tileJSON} = this.state;
67
- const maxZoom = parseInt(tileJSON.maxresolution);
68
+ let minresolution = parseInt(tileJSON.minresolution);
69
+ let maxresolution = parseInt(tileJSON.maxresolution);
70
+
71
+ // Convert Mercator zooms provided in props into H3 res levels
72
+ // and clip into valid range provided from the tilejson
73
+ if (this.props.minZoom) {
74
+ minresolution = Math.max(
75
+ minresolution,
76
+ getHexagonResolution({zoom: this.props.minZoom, latitude: 0})
77
+ );
78
+ }
79
+ if (this.props.maxZoom) {
80
+ maxresolution = Math.min(
81
+ maxresolution,
82
+ getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})
83
+ );
84
+ }
85
+
86
+ // The naming is unfortunate, but minZoom & maxZoom in the context
87
+ // of a Tileset2D refer to the resolution levels, not the Mercator zooms
68
88
  return [
69
89
  new SpatialIndexTileLayer(this.props, {
70
90
  id: `h3-tile-layer-${this.props.id}`,
@@ -72,7 +92,9 @@ export default class H3TileLayer<DataT = any, ExtraPropsT = {}> extends Composit
72
92
  // @ts-expect-error Tileset2D should be generic over TileIndex
73
93
  TilesetClass: H3Tileset2D,
74
94
  renderSubLayers,
75
- maxZoom
95
+ // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects
96
+ minZoom: minresolution,
97
+ maxZoom: maxresolution
76
98
  })
77
99
  ];
78
100
  }
@@ -7,16 +7,20 @@ function getHexagonsInBoundingBox(
7
7
  {west, north, east, south}: GeoBoundingBox,
8
8
  resolution: number
9
9
  ): string[] {
10
- if (Math.abs(east - west) > 180) {
10
+ const longitudeSpan = Math.abs(east - west);
11
+ if (longitudeSpan > 180) {
11
12
  // This is a known issue in h3-js: polyfill does not work correctly
12
13
  // when longitude span is larger than 180 degrees.
13
- return [
14
- ...new Set(
15
- getHexagonsInBoundingBox({west, north, east: 0, south}, resolution).concat(
16
- getHexagonsInBoundingBox({west: 0, north, east, south}, resolution)
17
- )
18
- )
19
- ];
14
+ const nSegments = Math.ceil(longitudeSpan / 180);
15
+ let h3Indices: string[] = [];
16
+ for (let s = 0; s < nSegments; s++) {
17
+ const segmentEast = east + s * 180;
18
+ const segmentWest = Math.min(segmentEast + 179.9999999, west);
19
+ h3Indices = h3Indices.concat(
20
+ getHexagonsInBoundingBox({west: segmentWest, north, east: segmentEast, south}, resolution)
21
+ );
22
+ }
23
+ return [...new Set(h3Indices)];
20
24
  }
21
25
 
22
26
  // `polyfill()` fills based on hexagon center, which means tiles vanish
@@ -55,7 +59,7 @@ function tileToBoundingBox(index: string): GeoBoundingBox {
55
59
  // similar
56
60
  // Relative scale factor (0 = no biasing, 2 = a few hexagons cover view)
57
61
  const BIAS = 2;
58
- function getHexagonResolution(viewport): number {
62
+ export function getHexagonResolution(viewport): number {
59
63
  const hexagonScaleFactor = (2 / 3) * viewport.zoom;
60
64
  const latitudeScaleFactor = Math.log(1 / Math.cos((Math.PI * viewport.latitude) / 180));
61
65
 
@@ -64,6 +68,11 @@ function getHexagonResolution(viewport): number {
64
68
  }
65
69
 
66
70
  export default class H3Tileset2D extends Tileset2D {
71
+ /**
72
+ * Returns all tile indices in the current viewport. If the current zoom level is smaller
73
+ * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,
74
+ * return tiles that are on maxZoom.
75
+ */
67
76
  // @ts-expect-error Tileset2D should be generic over TileIndex
68
77
  getTileIndices({viewport, minZoom, maxZoom}): H3TileIndex[] {
69
78
  const [east, south, west, north] = viewport.getBounds();
@@ -71,7 +80,8 @@ export default class H3Tileset2D extends Tileset2D {
71
80
  let z = getHexagonResolution(viewport);
72
81
  let indices: string[];
73
82
  if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
74
- z = minZoom;
83
+ // TODO support `extent` prop
84
+ return [];
75
85
  }
76
86
  if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
77
87
  z = maxZoom;
@@ -0,0 +1,43 @@
1
+ import {AccessorFunction, DefaultProps} from '@deck.gl/core';
2
+ import {
3
+ _GeoCellLayer as GeoCellLayer,
4
+ _GeoCellLayerProps as GeoCellLayerProps
5
+ } from '@deck.gl/geo-layers';
6
+ import {getQuadbinPolygon} from './quadbin-utils';
7
+
8
+ const defaultProps: DefaultProps<QuadbinLayerProps> = {
9
+ getQuadbin: {type: 'accessor', value: d => d.quadbin}
10
+ };
11
+
12
+ /** All properties supported by QuadbinLayer. */
13
+ export type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;
14
+
15
+ /** Properties added by QuadbinLayer. */
16
+ type _QuadbinLayerProps<DataT> = {
17
+ /**
18
+ * Called for each data object to retrieve the quadbin string identifier.
19
+ *
20
+ * By default, it reads `quadbin` property of data object.
21
+ */
22
+ getQuadbin?: AccessorFunction<DataT, string>;
23
+ };
24
+
25
+ export default class QuadbinLayer<DataT = any, ExtraProps = {}> extends GeoCellLayer<
26
+ DataT,
27
+ Required<_QuadbinLayerProps<DataT>> & ExtraProps
28
+ > {
29
+ static layerName = 'QuadbinLayer';
30
+ static defaultProps = defaultProps;
31
+
32
+ indexToBounds(): Partial<GeoCellLayer['props']> | null {
33
+ const {data, getQuadbin} = this.props;
34
+
35
+ return {
36
+ data,
37
+ _normalize: false,
38
+ positionFormat: 'XY',
39
+
40
+ getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo))
41
+ };
42
+ }
43
+ }
@@ -6,33 +6,35 @@ import {
6
6
  UpdateParameters,
7
7
  DefaultProps
8
8
  } from '@deck.gl/core';
9
- import {QuadkeyLayer, QuadkeyLayerProps} from '@deck.gl/geo-layers';
10
- import QuadkeyTileset2D from './quadkey-tileset-2d';
9
+ import QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';
10
+ import QuadbinTileset2D from './quadbin-tileset-2d';
11
11
  import SpatialIndexTileLayer from './spatial-index-tile-layer';
12
12
 
13
13
  const renderSubLayers = props => {
14
14
  const {data} = props;
15
15
  if (!data || !data.length) return null;
16
- return new QuadkeyLayer(props, {getQuadkey: d => d.id});
16
+ return new QuadbinLayer(props, {
17
+ getQuadbin: d => d.id
18
+ });
17
19
  };
18
20
 
19
- const defaultProps: DefaultProps<QuadkeyTileLayerProps> = {
21
+ const defaultProps: DefaultProps<QuadbinTileLayerProps> = {
20
22
  aggregationResLevel: 6
21
23
  };
22
24
 
23
- /** All properties supported by QuadkeyTileLayer. */
24
- export type QuadkeyTileLayerProps<DataT = any> = _QuadkeyTileLayerProps<DataT> &
25
+ /** All properties supported by QuadbinTileLayer. */
26
+ export type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &
25
27
  CompositeLayerProps<DataT>;
26
28
 
27
- /** Properties added by QuadkeyTileLayer. */
28
- type _QuadkeyTileLayerProps<DataT> = QuadkeyLayerProps<DataT> & {
29
+ /** Properties added by QuadbinTileLayer. */
30
+ type _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {
29
31
  aggregationResLevel?: number;
30
32
  };
31
33
 
32
- export default class QuadkeyTileLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<
33
- ExtraProps & Required<_QuadkeyTileLayerProps<DataT>>
34
+ export default class QuadbinTileLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<
35
+ ExtraProps & Required<_QuadbinTileLayerProps<DataT>>
34
36
  > {
35
- static layerName = 'QuadkeyTileLayer';
37
+ static layerName = 'QuadbinTileLayer';
36
38
  static defaultProps = defaultProps;
37
39
 
38
40
  state!: {
@@ -57,10 +59,10 @@ export default class QuadkeyTileLayer<DataT = any, ExtraProps = {}> extends Comp
57
59
  const maxZoom = parseInt(tileJSON?.maxresolution);
58
60
  return [
59
61
  new SpatialIndexTileLayer(this.props, {
60
- id: `quadkey-tile-layer-${this.props.id}`,
62
+ id: `quadbin-tile-layer-${this.props.id}`,
61
63
  data,
62
64
  // TODO: Tileset2D should be generic over TileIndex type
63
- TilesetClass: QuadkeyTileset2D as any,
65
+ TilesetClass: QuadbinTileset2D as any,
64
66
  renderSubLayers,
65
67
  maxZoom
66
68
  })
@@ -0,0 +1,34 @@
1
+ import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';
2
+ import {tileToQuadbin, quadbinToTile, quadbinParent, quadbinZoom} from './quadbin-utils';
3
+
4
+ type QuadbinTileIndex = {i: string};
5
+
6
+ export default class QuadbinTileset2D extends Tileset2D {
7
+ // @ts-expect-error for spatial indices, TileSet2d should be parametrized by TileIndexT
8
+ getTileIndices(opts): QuadbinTileIndex[] {
9
+ return super
10
+ .getTileIndices(opts)
11
+ .map(tileToQuadbin)
12
+ .map(i => ({i}));
13
+ }
14
+
15
+ // @ts-expect-error TileIndex must be generic
16
+ getTileId({i}: QuadbinTileIndex): string {
17
+ return i;
18
+ }
19
+
20
+ // @ts-expect-error TileIndex must be generic
21
+ getTileMetadata({i}: QuadbinTileIndex) {
22
+ return super.getTileMetadata(quadbinToTile(i));
23
+ }
24
+
25
+ // @ts-expect-error TileIndex must be generic
26
+ getTileZoom({i}: QuadbinTileIndex): number {
27
+ return Number(quadbinZoom(i));
28
+ }
29
+
30
+ // @ts-expect-error TileIndex must be generic
31
+ getParentIndex({i}: QuadbinTileIndex): QuadbinTileIndex {
32
+ return {i: quadbinParent(i)};
33
+ }
34
+ }
@@ -0,0 +1,102 @@
1
+ import {worldToLngLat} from '@math.gl/web-mercator';
2
+
3
+ const TILE_SIZE = 512;
4
+
5
+ const B = [
6
+ 0x5555555555555555n,
7
+ 0x3333333333333333n,
8
+ 0x0f0f0f0f0f0f0f0fn,
9
+ 0x00ff00ff00ff00ffn,
10
+ 0x0000ffff0000ffffn,
11
+ 0x00000000ffffffffn
12
+ ];
13
+ const S = [0n, 1n, 2n, 4n, 8n, 16n];
14
+
15
+ function indexToBigInt(index: string): bigint {
16
+ return BigInt(`0x${index}`);
17
+ }
18
+
19
+ function bigIntToIndex(quadbin: bigint): string {
20
+ return quadbin.toString(16);
21
+ }
22
+
23
+ export function tileToQuadbin(tile): string {
24
+ if (tile.z < 0 || tile.z > 26) {
25
+ throw new Error('Wrong zoom');
26
+ }
27
+ const z = BigInt(tile.z);
28
+ let x = BigInt(tile.x) << (32n - z);
29
+ let y = BigInt(tile.y) << (32n - z);
30
+
31
+ for (let i = 0; i < 5; i++) {
32
+ const s = S[5 - i];
33
+ const b = B[4 - i];
34
+ x = (x | (x << s)) & b;
35
+ y = (y | (y << s)) & b;
36
+ }
37
+
38
+ const quadbin =
39
+ 0x4000000000000000n |
40
+ (1n << 59n) | // | (mode << 59) | (mode_dep << 57)
41
+ (z << 52n) |
42
+ ((x | (y << 1n)) >> 12n) |
43
+ (0xfffffffffffffn >> (z * 2n));
44
+ return bigIntToIndex(quadbin);
45
+ }
46
+
47
+ export function quadbinToTile(index: string) {
48
+ const quadbin = indexToBigInt(index);
49
+ const mode = (quadbin >> 59n) & 7n;
50
+ const modeDep = (quadbin >> 57n) & 3n;
51
+ const z = (quadbin >> 52n) & 0x1fn;
52
+ const q = (quadbin & 0xfffffffffffffn) << 12n;
53
+
54
+ if (mode !== 1n && modeDep !== 0n) {
55
+ throw new Error('Wrong mode');
56
+ }
57
+
58
+ let x = q;
59
+ let y = q >> 1n;
60
+
61
+ for (let i = 0; i < 6; i++) {
62
+ const s = S[i];
63
+ const b = B[i];
64
+ x = (x | (x >> s)) & b;
65
+ y = (y | (y >> s)) & b;
66
+ }
67
+
68
+ x = x >> (32n - z);
69
+ y = y >> (32n - z);
70
+
71
+ return {z: Number(z), x: Number(x), y: Number(y)};
72
+ }
73
+
74
+ export function quadbinZoom(index: string) {
75
+ const quadbin = indexToBigInt(index);
76
+ return (quadbin >> 52n) & 0x1fn;
77
+ }
78
+
79
+ export function quadbinParent(index: string) {
80
+ const quadbin = indexToBigInt(index);
81
+ const zparent = quadbinZoom(index) - 1n;
82
+ const parent =
83
+ (quadbin & ~(0x1fn << 52n)) | (zparent << 52n) | (0xfffffffffffffn >> (zparent * 2n));
84
+ return bigIntToIndex(parent);
85
+ }
86
+
87
+ export function quadbinToWorldBounds(quadbin: string): [number[], number[]] {
88
+ const {x, y, z} = quadbinToTile(quadbin);
89
+ const mask = 1 << z;
90
+ const scale = mask / TILE_SIZE;
91
+ return [
92
+ [x / scale, TILE_SIZE - y / scale],
93
+ [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]
94
+ ];
95
+ }
96
+
97
+ export function getQuadbinPolygon(quadbin: string): number[] {
98
+ const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin);
99
+ const [w, n] = worldToLngLat(topLeft);
100
+ const [e, s] = worldToLngLat(bottomRight);
101
+ return [e, n, e, s, w, s, w, n, e, n];
102
+ }
@@ -1,4 +1,4 @@
1
1
  export { FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS } from './maps-api-common';
2
2
  export { getDataV2, CONNECTIONS } from './maps-client';
3
- export { fetchLayerData, fetchMap, getData, mapInstantiation } from './maps-v3-client';
3
+ export { fetchLayerData, fetchMap, mapInstantiation } from './maps-v3-client';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAC"}
@@ -23,7 +23,6 @@ export interface FetchLayerDataResult {
23
23
  schema: SchemaField[];
24
24
  }
25
25
  export declare function fetchLayerData({ type, source, connection, credentials, geoColumn, columns, format, formatTiles, clientId, aggregationExp, aggregationResLevel }: FetchLayerDataParams): Promise<FetchLayerDataResult>;
26
- export declare function getData({ type, source, connection, credentials, geoColumn, columns, format, clientId }: FetchLayerDataParams): Promise<any>;
27
26
  export declare function fetchMap({ cartoMapId, clientId, credentials, autoRefresh, onNewData }: {
28
27
  cartoMapId: string;
29
28
  clientId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"maps-v3-client.d.ts","sourceRoot":"","sources":["../../src/api/maps-v3-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAA8C,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAC9F,OAAO,EAIL,MAAM,EAGN,gBAAgB,EAChB,OAAO,EAEP,WAAW,EACX,UAAU,EAEX,MAAM,mBAAmB,CAAC;AA0F3B,aAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAmCF,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,cAAc,EACd,mBAAmB,EACpB,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuBlD;AAsDD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AACD,wBAAsB,cAAc,CAAC,EACnC,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,mBAAmB,EACpB,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoBtD;AAgFD,wBAAsB,OAAO,CAAC,EAC5B,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACT,EAAE,oBAAoB,gBAatB;AA4CD,wBAAsB,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACV,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;4BA8B6B,IAAI;;;;;;;;;GA8BjC"}
1
+ {"version":3,"file":"maps-v3-client.d.ts","sourceRoot":"","sources":["../../src/api/maps-v3-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAA8C,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAC9F,OAAO,EAIL,MAAM,EAGN,gBAAgB,EAChB,OAAO,EAEP,WAAW,EACX,UAAU,EAEX,MAAM,mBAAmB,CAAC;AA0F3B,aAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAmCF,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,cAAc,EACd,mBAAmB,EACpB,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuBlD;AAsDD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AACD,wBAAsB,cAAc,CAAC,EACnC,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,mBAAmB,EACpB,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoBtD;AA0HD,wBAAsB,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACV,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;4BA8B6B,IAAI;;;;;;;;;GA8BjC"}
package/typed/index.d.ts CHANGED
@@ -2,11 +2,11 @@ export { getDefaultCredentials, setDefaultCredentials } from './config';
2
2
  export { default as CartoLayer } from './layers/carto-layer';
3
3
  export { default as _CartoTileLayer } from './layers/carto-tile-layer';
4
4
  export { default as _H3TileLayer } from './layers/h3-tile-layer';
5
- export { default as _QuadkeyTileLayer } from './layers/quadkey-tile-layer';
5
+ export { default as _QuadbinTileLayer } from './layers/quadbin-tile-layer';
6
6
  export { default as BASEMAP } from './basemap';
7
7
  export { default as colorBins } from './style/color-bins-style';
8
8
  export { default as colorCategories } from './style/color-categories-style';
9
9
  export { default as colorContinuous } from './style/color-continuous-style';
10
- export { FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, getDataV2 as _getDataV2, getData, mapInstantiation as _mapInstantiation } from './api';
10
+ export { FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, fetchMap, getDataV2 as _getDataV2, mapInstantiation as _mapInstantiation } from './api';
11
11
  export type { CartoLayerProps } from './layers/carto-layer';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,SAAS,IAAI,UAAU,EACvB,OAAO,EACP,gBAAgB,IAAI,iBAAiB,EACtC,MAAM,OAAO,CAAC;AAEf,YAAY,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,SAAS,IAAI,UAAU,EACvB,gBAAgB,IAAI,iBAAiB,EACtC,MAAM,OAAO,CAAC;AAEf,YAAY,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { CompositeLayer, Layer, CompositeLayerProps, LayerProps, ChangeFlags } from '@deck.gl/core/typed';
2
- import { Format, MapType, TileFormat } from '../api/maps-api-common';
2
+ import { MapType, TileFormat } from '../api/maps-api-common';
3
3
  import { Credentials } from '../config';
4
4
  /** All properties supported by CartoLayer. */
5
5
  export declare type CartoLayerProps<DataT = any> = _CartoLayerProps & CompositeLayerProps<DataT>;
@@ -24,18 +24,10 @@ declare type _CartoLayerProps = {
24
24
  * Required when apiVersion is `API_VERSIONS.V3`.
25
25
  */
26
26
  connection?: string;
27
- /**
28
- * Use to override the default data format.
29
- *
30
- * Only supported when apiVersion is `API_VERSIONS.V3`.
31
- *
32
- * Possible values are: `FORMATS.GEOJSON`, `FORMATS.JSON` and `FORMATS.TILEJSON`.
33
- */
34
- format?: Format;
35
27
  /**
36
28
  * Use to override the default tile data format.
37
29
  *
38
- * Only supported when apiVersion is `API_VERSIONS.V3` and format is `FORMATS.TILEJSON`.
30
+ * Only supported when apiVersion is `API_VERSIONS.V3`.
39
31
  *
40
32
  * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.
41
33
  */
@@ -75,6 +67,10 @@ declare type _CartoLayerProps = {
75
67
  */
76
68
  onDataError?: (err: unknown) => void;
77
69
  clientId?: string;
70
+ /** Aggregation SQL expression. Only used for spatial index datasets **/
71
+ aggregationExp?: string;
72
+ /** Aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3. **/
73
+ aggregationResLevel?: number;
78
74
  };
79
75
  export default class CartoLayer<ExtraProps = {}> extends CompositeLayer<Required<_CartoLayerProps> & ExtraProps> {
80
76
  static layerName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"carto-layer.d.ts","sourceRoot":"","sources":["../../src/layers/carto-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,EAEL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAC;AAOvB,OAAO,EAEL,MAAM,EAGN,OAAO,EAEP,UAAU,EAEX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,WAAW,EAEZ,MAAM,WAAW,CAAC;AA4CnB,8CAA8C;AAC9C,oBAAY,eAAe,CAAC,KAAK,GAAG,GAAG,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAEzF,sCAAsC;AACtC,aAAK,gBAAgB,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAErC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,UAAU,GAAG,EAAE,CAAE,SAAQ,cAAc,CACrE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,UAAU,CACxC;IACC,MAAM,CAAC,SAAS,SAAgB;IAChC,MAAM,CAAC,YAAY,MAAuB;IAE1C,eAAe,IAAI,IAAI;IAOvB,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuCzC,WAAW,CAAC,EACV,KAAK,EACL,QAAQ,EACR,WAAW,EACZ,EAAE;QACD,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,eAAe,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;KAC1B,GAAG,IAAI;IAmBF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqClC,oBAAoB,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;IAqCzC,YAAY,IAAI,KAAK,GAAG,IAAI;CAqB7B"}
1
+ {"version":3,"file":"carto-layer.d.ts","sourceRoot":"","sources":["../../src/layers/carto-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,EAEL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAC;AAMvB,OAAO,EAIL,OAAO,EAEP,UAAU,EAEX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,WAAW,EAEZ,MAAM,WAAW,CAAC;AA4CnB,8CAA8C;AAC9C,oBAAY,eAAe,CAAC,KAAK,GAAG,GAAG,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAEzF,sCAAsC;AACtC,aAAK,gBAAgB,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAErC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,UAAU,GAAG,EAAE,CAAE,SAAQ,cAAc,CACrE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,UAAU,CACxC;IACC,MAAM,CAAC,SAAS,SAAgB;IAChC,MAAM,CAAC,YAAY,MAAuB;IAE1C,eAAe,IAAI,IAAI;IAOvB,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuCzC,WAAW,CAAC,EACV,KAAK,EACL,QAAQ,EACR,WAAW,EACZ,EAAE;QACD,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,eAAe,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;KAC1B,GAAG,IAAI;IAoBF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAuClC,oBAAoB,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;IAgCzC,YAAY,IAAI,KAAK,GAAG,IAAI;CAqB7B"}