@deck.gl/carto 9.0.16 → 9.0.18

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 (50) hide show
  1. package/dist/api/carto-api-error.d.ts +3 -1
  2. package/dist/api/carto-api-error.d.ts.map +1 -1
  3. package/dist/api/carto-api-error.js +2 -1
  4. package/dist/api/common.d.ts +0 -8
  5. package/dist/api/common.d.ts.map +1 -1
  6. package/dist/api/common.js +0 -9
  7. package/dist/api/request-with-parameters.d.ts +1 -1
  8. package/dist/api/request-with-parameters.d.ts.map +1 -1
  9. package/dist/api/request-with-parameters.js +48 -15
  10. package/dist/api/types.d.ts +5 -5
  11. package/dist/api/types.d.ts.map +1 -1
  12. package/dist/cartoRasterTile-worker.js +1 -1
  13. package/dist/cartoSpatialTile-worker.js +1 -1
  14. package/dist/cartoVectorTile-worker.js +1 -1
  15. package/dist/dist.dev.js +494 -560
  16. package/dist/index.cjs +445 -358
  17. package/dist/index.cjs.map +4 -4
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -3
  21. package/dist/layers/heatmap-tile-layer.d.ts +36 -0
  22. package/dist/layers/heatmap-tile-layer.d.ts.map +1 -0
  23. package/dist/layers/heatmap-tile-layer.js +165 -0
  24. package/dist/layers/heatmap.d.ts +5 -0
  25. package/dist/layers/heatmap.d.ts.map +1 -1
  26. package/dist/layers/heatmap.js +17 -15
  27. package/dist/layers/schema/carto-raster-tile-loader.js +1 -1
  28. package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
  29. package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
  30. package/dist/layers/vector-tile-layer.d.ts +1 -1
  31. package/dist/layers/vector-tile-layer.d.ts.map +1 -1
  32. package/dist/layers/vector-tile-layer.js +5 -10
  33. package/dist/sources/raster-source.d.ts +2 -2
  34. package/dist/sources/raster-source.d.ts.map +1 -1
  35. package/dist/sources/raster-source.js +4 -1
  36. package/dist.min.js +37 -31
  37. package/package.json +2 -2
  38. package/src/api/carto-api-error.ts +10 -1
  39. package/src/api/common.ts +0 -12
  40. package/src/api/request-with-parameters.ts +55 -19
  41. package/src/api/types.ts +5 -5
  42. package/src/index.ts +3 -3
  43. package/src/layers/heatmap-tile-layer.ts +236 -0
  44. package/src/layers/heatmap.ts +31 -18
  45. package/src/layers/vector-tile-layer.ts +4 -14
  46. package/src/sources/raster-source.ts +10 -5
  47. package/dist/layers/quadbin-heatmap-tile-layer.d.ts +0 -24
  48. package/dist/layers/quadbin-heatmap-tile-layer.d.ts.map +0 -1
  49. package/dist/layers/quadbin-heatmap-tile-layer.js +0 -84
  50. package/src/layers/quadbin-heatmap-tile-layer.ts +0 -125
@@ -1 +0,0 @@
1
- {"version":3,"file":"quadbin-heatmap-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-heatmap-tile-layer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAGjG,OAAO,EAAC,YAAY,EAAU,qBAAkB;AAEhD,OAAyB,EAAC,qBAAqB,EAAC,gCAA6B;AAE7E,OAAO,EAAC,cAAc,EAAC,sBAAmB;AAiD1C,2DAA2D;AAC3D,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI,6BAA6B,CAAC,KAAK,CAAC,GAC9F,mBAAmB,GAAG;IACpB,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD,CAAC;AAEJ,mDAAmD;AACnD,KAAK,6BAA6B,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK,CAAC,GACtE,YAAY,GAAG;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAEJ,cAAM,uBAAuB,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CAC3F,UAAU,GAAG,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAC5D;IACC,MAAM,CAAC,SAAS,SAA6B;IAC7C,MAAM,CAAC,YAAY,sDAAgB;IAEnC,YAAY,IAAI,KAAK;CAyCtB;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,84 +0,0 @@
1
- import { getResolution } from 'quadbin';
2
- import { CompositeLayer } from '@deck.gl/core';
3
- import { SolidPolygonLayer } from '@deck.gl/layers';
4
- import { heatmap } from "./heatmap.js";
5
- import { RTTModifier, PostProcessModifier } from "./post-process-utils.js";
6
- import QuadbinTileLayer from "./quadbin-tile-layer.js";
7
- import { TilejsonPropType } from "./utils.js";
8
- // Modified polygon layer to draw offscreen and output value expected by heatmap
9
- class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
10
- static { this.layerName = 'RTTSolidPolygonLayer'; }
11
- getShaders(type) {
12
- const shaders = super.getShaders(type);
13
- shaders.inject = {
14
- 'vs:#decl': 'uniform float cellResolution;',
15
- 'vs:DECKGL_FILTER_COLOR': `
16
- const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
17
- float value = 255.0 * dot(SHIFT, color.rgb);
18
-
19
- // Keep "power" delivered to screen constant when tiles update
20
- float relativeZoom = log2(project_uScale) - cellResolution + 3.5; // range 0-1
21
- float relativeArea = pow(2.0, -2.0 * relativeZoom); // range 0.25-1
22
- value *= relativeArea;
23
-
24
- // Pack float into 3 channels to pass to heatmap shader
25
- color = vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
26
- `
27
- };
28
- return shaders;
29
- }
30
- draw(opts) {
31
- const cell0 = this.props.data[0];
32
- const cellResolution = Number(getResolution(cell0.id));
33
- for (const model of this.state.models) {
34
- model.setUniforms({ cellResolution });
35
- }
36
- super.draw(opts);
37
- }
38
- }
39
- // Modify QuadbinTileLayer to apply heatmap post process effect
40
- const PostProcessQuadbinTileLayer = PostProcessModifier(QuadbinTileLayer, heatmap);
41
- function encodeWeight(w) {
42
- return [w % 256, Math.floor(w / 256), Math.floor(w / (256 * 256))];
43
- }
44
- const defaultProps = {
45
- data: TilejsonPropType,
46
- getWeight: { type: 'accessor', value: 1 }
47
- };
48
- class QuadbinHeatmapTileLayer extends CompositeLayer {
49
- static { this.layerName = 'QuadbinHeatmapTileLayer'; }
50
- static { this.defaultProps = defaultProps; }
51
- renderLayers() {
52
- const { getWeight, colorDomain, colorRange, radiusPixels, _subLayerProps } = this.props;
53
- // Inject modified polygon layer as sublayer into TileLayer
54
- const subLayerProps = {
55
- ..._subLayerProps,
56
- cell: {
57
- ..._subLayerProps?.cell,
58
- _subLayerProps: {
59
- ..._subLayerProps?.cell?._subLayerProps,
60
- fill: {
61
- ..._subLayerProps?.cell?._subLayerProps?.fill,
62
- type: RTTSolidPolygonLayer
63
- }
64
- }
65
- }
66
- };
67
- const getFillColor = typeof getWeight === 'function'
68
- ? (d, info) => encodeWeight(getWeight(d, info))
69
- : encodeWeight(getWeight);
70
- return new PostProcessQuadbinTileLayer(this.getSubLayerProps({
71
- id: 'heatmap',
72
- data: this.props.data,
73
- getFillColor,
74
- colorDomain,
75
- colorRange,
76
- radiusPixels,
77
- _subLayerProps: subLayerProps,
78
- updateTriggers: {
79
- getPosition: this.props.updateTriggers.getWeight
80
- }
81
- }));
82
- }
83
- }
84
- export default QuadbinHeatmapTileLayer;
@@ -1,125 +0,0 @@
1
- import {getResolution} from 'quadbin';
2
-
3
- import {Accessor, CompositeLayer, CompositeLayerProps, DefaultProps, Layer} from '@deck.gl/core';
4
- import {SolidPolygonLayer} from '@deck.gl/layers';
5
-
6
- import {HeatmapProps, heatmap} from './heatmap';
7
- import {RTTModifier, PostProcessModifier} from './post-process-utils';
8
- import QuadbinTileLayer, {QuadbinTileLayerProps} from './quadbin-tile-layer';
9
- import {TilejsonPropType} from './utils';
10
- import {TilejsonResult} from '../sources';
11
-
12
- // Modified polygon layer to draw offscreen and output value expected by heatmap
13
- class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
14
- static layerName = 'RTTSolidPolygonLayer';
15
-
16
- getShaders(type) {
17
- const shaders = super.getShaders(type);
18
- shaders.inject = {
19
- 'vs:#decl': 'uniform float cellResolution;',
20
- 'vs:DECKGL_FILTER_COLOR': `
21
- const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
22
- float value = 255.0 * dot(SHIFT, color.rgb);
23
-
24
- // Keep "power" delivered to screen constant when tiles update
25
- float relativeZoom = log2(project_uScale) - cellResolution + 3.5; // range 0-1
26
- float relativeArea = pow(2.0, -2.0 * relativeZoom); // range 0.25-1
27
- value *= relativeArea;
28
-
29
- // Pack float into 3 channels to pass to heatmap shader
30
- color = vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
31
- `
32
- };
33
- return shaders;
34
- }
35
-
36
- draw(this, opts: any) {
37
- const cell0 = this.props!.data[0];
38
- const cellResolution = Number(getResolution(cell0.id));
39
- for (const model of this.state.models) {
40
- model.setUniforms({cellResolution});
41
- }
42
-
43
- super.draw(opts);
44
- }
45
- }
46
-
47
- // Modify QuadbinTileLayer to apply heatmap post process effect
48
- const PostProcessQuadbinTileLayer = PostProcessModifier(QuadbinTileLayer, heatmap);
49
-
50
- function encodeWeight(w: number) {
51
- return [w % 256, Math.floor(w / 256), Math.floor(w / (256 * 256))];
52
- }
53
-
54
- const defaultProps: DefaultProps<QuadbinHeatmapTileLayerProps> = {
55
- data: TilejsonPropType,
56
- getWeight: {type: 'accessor', value: 1}
57
- };
58
-
59
- /** All properties supported by QuadbinHeatmapTileLayer. */
60
- export type QuadbinHeatmapTileLayerProps<DataT = unknown> = _QuadbinHeatmapTileLayerProps<DataT> &
61
- CompositeLayerProps & {
62
- data: null | TilejsonResult | Promise<TilejsonResult>;
63
- };
64
-
65
- /** Properties added by QuadbinHeatmapTileLayer. */
66
- type _QuadbinHeatmapTileLayerProps<DataT> = QuadbinTileLayerProps<DataT> &
67
- HeatmapProps & {
68
- /**
69
- * The weight of each object.
70
- *
71
- * @default 1
72
- */
73
- getWeight?: Accessor<DataT, number>;
74
- };
75
-
76
- class QuadbinHeatmapTileLayer<DataT = any, ExtraProps extends {} = {}> extends CompositeLayer<
77
- ExtraProps & Required<_QuadbinHeatmapTileLayerProps<DataT>>
78
- > {
79
- static layerName = 'QuadbinHeatmapTileLayer';
80
- static defaultProps = defaultProps;
81
-
82
- renderLayers(): Layer {
83
- const {getWeight, colorDomain, colorRange, radiusPixels, _subLayerProps} = this.props;
84
-
85
- // Inject modified polygon layer as sublayer into TileLayer
86
- const subLayerProps = {
87
- ..._subLayerProps,
88
- cell: {
89
- ..._subLayerProps?.cell,
90
- _subLayerProps: {
91
- ..._subLayerProps?.cell?._subLayerProps,
92
- fill: {
93
- ..._subLayerProps?.cell?._subLayerProps?.fill,
94
- type: RTTSolidPolygonLayer
95
- }
96
- }
97
- }
98
- };
99
-
100
- const getFillColor =
101
- typeof getWeight === 'function'
102
- ? (d, info) => encodeWeight(getWeight(d, info))
103
- : encodeWeight(getWeight);
104
-
105
- return new PostProcessQuadbinTileLayer(
106
- this.getSubLayerProps({
107
- id: 'heatmap',
108
- data: this.props.data,
109
-
110
- getFillColor,
111
-
112
- colorDomain,
113
- colorRange,
114
- radiusPixels,
115
- _subLayerProps: subLayerProps,
116
-
117
- updateTriggers: {
118
- getPosition: this.props.updateTriggers.getWeight
119
- }
120
- })
121
- );
122
- }
123
- }
124
-
125
- export default QuadbinHeatmapTileLayer;