@deck.gl/carto 9.0.13 → 9.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/api/basemap.d.ts +17 -0
  2. package/dist/api/basemap.d.ts.map +1 -0
  3. package/dist/api/basemap.js +76 -0
  4. package/dist/api/fetch-map.d.ts +10 -12
  5. package/dist/api/fetch-map.d.ts.map +1 -1
  6. package/dist/api/fetch-map.js +7 -3
  7. package/dist/api/index.d.ts +2 -2
  8. package/dist/api/index.d.ts.map +1 -1
  9. package/dist/api/parse-map.d.ts +21 -1
  10. package/dist/api/parse-map.d.ts.map +1 -1
  11. package/dist/api/parse-map.js +1 -0
  12. package/dist/api/query.d.ts.map +1 -1
  13. package/dist/api/query.js +4 -3
  14. package/dist/api/request-with-parameters.d.ts +1 -1
  15. package/dist/api/request-with-parameters.d.ts.map +1 -1
  16. package/dist/api/request-with-parameters.js +6 -3
  17. package/dist/api/types.d.ts +82 -1
  18. package/dist/api/types.d.ts.map +1 -1
  19. package/dist/basemap.d.ts +17 -0
  20. package/dist/basemap.d.ts.map +1 -1
  21. package/dist/basemap.js +97 -7
  22. package/dist/cartoRasterTile-worker.js +1 -1
  23. package/dist/cartoSpatialTile-worker.js +1 -1
  24. package/dist/cartoVectorTile-worker.js +1 -1
  25. package/dist/dist.dev.js +1745 -2368
  26. package/dist/index.cjs +270 -89
  27. package/dist/index.cjs.map +4 -4
  28. package/dist/index.d.ts +3 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -1
  31. package/dist/layers/heatmap.d.ts +3 -2
  32. package/dist/layers/heatmap.d.ts.map +1 -1
  33. package/dist/layers/heatmap.js +18 -6
  34. package/dist/layers/quadbin-heatmap-tile-layer.d.ts +5 -2
  35. package/dist/layers/quadbin-heatmap-tile-layer.d.ts.map +1 -1
  36. package/dist/layers/quadbin-heatmap-tile-layer.js +3 -2
  37. package/dist/layers/schema/carto-raster-tile-loader.js +1 -1
  38. package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
  39. package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
  40. package/dist/sources/base-source.d.ts +1 -1
  41. package/dist/sources/base-source.d.ts.map +1 -1
  42. package/dist/sources/boundary-query-source.js +2 -2
  43. package/dist/sources/boundary-table-source.js +1 -1
  44. package/dist/sources/h3-query-source.js +1 -1
  45. package/dist/sources/quadbin-query-source.js +1 -1
  46. package/dist/sources/vector-query-source.js +2 -2
  47. package/dist/sources/vector-table-source.js +1 -1
  48. package/dist/utils.d.ts +2 -0
  49. package/dist/utils.d.ts.map +1 -1
  50. package/dist/utils.js +2 -0
  51. package/dist.min.js +21 -15
  52. package/package.json +6 -6
  53. package/src/api/basemap.ts +100 -0
  54. package/src/api/fetch-map.ts +20 -6
  55. package/src/api/index.ts +11 -2
  56. package/src/api/parse-map.ts +24 -3
  57. package/src/api/query.ts +4 -2
  58. package/src/api/request-with-parameters.ts +12 -9
  59. package/src/api/types.ts +103 -1
  60. package/src/basemap.ts +134 -7
  61. package/src/index.ts +14 -2
  62. package/src/layers/heatmap.ts +23 -8
  63. package/src/layers/quadbin-heatmap-tile-layer.ts +8 -5
  64. package/src/sources/base-source.ts +1 -1
  65. package/src/sources/boundary-query-source.ts +4 -4
  66. package/src/sources/boundary-table-source.ts +2 -2
  67. package/src/sources/h3-query-source.ts +2 -2
  68. package/src/sources/quadbin-query-source.ts +2 -2
  69. package/src/sources/vector-query-source.ts +4 -4
  70. package/src/sources/vector-table-source.ts +2 -2
  71. package/src/utils.ts +5 -0
package/dist/index.d.ts CHANGED
@@ -13,12 +13,13 @@ declare const CARTO_LAYERS: {
13
13
  VectorTileLayer: typeof VectorTileLayer;
14
14
  };
15
15
  export { CARTO_LAYERS, H3TileLayer, _PointLabelLayer, QuadbinTileLayer, QuadbinHeatmapTileLayer, RasterTileLayer, VectorTileLayer };
16
- export { default as BASEMAP } from "./basemap.js";
16
+ export { default as BASEMAP, GOOGLE_BASEMAPS as _GOOGLE_BASEMAPS, getStyleUrl as _getStyleUrl, fetchStyle as _fetchStyle, applyLayerGroupFilters as _applyLayerGroupFilters, STYLE_LAYER_GROUPS as _STYLE_LAYER_GROUPS } from "./basemap.js";
17
17
  export { default as colorBins } from "./style/color-bins-style.js";
18
18
  export { default as colorCategories } from "./style/color-categories-style.js";
19
19
  export { default as colorContinuous } from "./style/color-continuous-style.js";
20
20
  export { CartoAPIError, fetchMap, query } from "./api/index.js";
21
- export type { APIErrorContext, FetchMapOptions, Format, MapType, RequestType, QueryParameters, QueryOptions } from "./api/index.js";
21
+ export { fetchBasemapProps } from "./api/basemap.js";
22
+ export type { APIErrorContext, FetchMapOptions, FetchMapResult, Format, MapType, RequestType, QueryParameters, QueryOptions, Basemap as _Basemap, MapLibreBasemap as _MapLibreBasemap, GoogleBasemap as _GoogleBasemap } from "./api/index.js";
22
23
  import { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, SOURCE_DEFAULTS } from "./sources/index.js";
23
24
  declare const CARTO_SOURCES: {
24
25
  boundaryQuerySource: (options: import("./sources/boundary-query-source").BoundaryQuerySourceOptions) => Promise<import("./sources/types").TilejsonResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,kCAA+B;AAC9D,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,sCAAmC;AACvE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,uCAAoC;AACxE,OAAO,EAAC,OAAO,IAAI,uBAAuB,EAAC,+CAA4C;AACvF,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,sCAAmC;AACtE,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,sCAAmC;AACtE,QAAA,MAAM,YAAY;;;;;;;CAOjB,CAAC;AACF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,eAAe,EAChB,CAAC;AAEF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,qBAAkB;AAC7C,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,oCAAiC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,0CAAuC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,0CAAuC;AAC1E,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,uBAAoB;AAC3D,YAAY,EACV,eAAe,EACf,eAAe,EACf,MAAM,EACN,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACb,uBAAoB;AAErB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EAChB,2BAAwB;AAEzB,QAAA,MAAM,aAAa;;;;;;;;;;;;;CAalB,CAAC;AAEF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,CAAC;AAEF,YAAY,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC3B,2BAAwB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,kCAA+B;AAC9D,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,sCAAmC;AACvE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,uCAAoC;AACxE,OAAO,EAAC,OAAO,IAAI,uBAAuB,EAAC,+CAA4C;AACvF,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,sCAAmC;AACtE,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,sCAAmC;AACtE,QAAA,MAAM,YAAY;;;;;;;CAOjB,CAAC;AACF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,eAAe,EAChB,CAAC;AAEF,OAAO,EACL,OAAO,IAAI,OAAO,EAClB,eAAe,IAAI,gBAAgB,EACnC,WAAW,IAAI,YAAY,EAC3B,UAAU,IAAI,WAAW,EACzB,sBAAsB,IAAI,uBAAuB,EACjD,kBAAkB,IAAI,mBAAmB,EAC1C,qBAAkB;AACnB,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,oCAAiC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,0CAAuC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,0CAAuC;AAC1E,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,uBAAoB;AAC3D,OAAO,EAAC,iBAAiB,EAAC,yBAAsB;AAChD,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,MAAM,EACN,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACZ,OAAO,IAAI,QAAQ,EACnB,eAAe,IAAI,gBAAgB,EACnC,aAAa,IAAI,cAAc,EAChC,uBAAoB;AAErB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EAChB,2BAAwB;AAEzB,QAAA,MAAM,aAAa;;;;;;;;;;;;;CAalB,CAAC;AAEF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,CAAC;AAEF,YAAY,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC3B,2BAAwB"}
package/dist/index.js CHANGED
@@ -13,11 +13,12 @@ const CARTO_LAYERS = {
13
13
  VectorTileLayer
14
14
  };
15
15
  export { CARTO_LAYERS, H3TileLayer, _PointLabelLayer, QuadbinTileLayer, QuadbinHeatmapTileLayer, RasterTileLayer, VectorTileLayer };
16
- export { default as BASEMAP } from "./basemap.js";
16
+ export { default as BASEMAP, GOOGLE_BASEMAPS as _GOOGLE_BASEMAPS, getStyleUrl as _getStyleUrl, fetchStyle as _fetchStyle, applyLayerGroupFilters as _applyLayerGroupFilters, STYLE_LAYER_GROUPS as _STYLE_LAYER_GROUPS } from "./basemap.js";
17
17
  export { default as colorBins } from "./style/color-bins-style.js";
18
18
  export { default as colorCategories } from "./style/color-categories-style.js";
19
19
  export { default as colorContinuous } from "./style/color-continuous-style.js";
20
20
  export { CartoAPIError, fetchMap, query } from "./api/index.js";
21
+ export { fetchBasemapProps } from "./api/basemap.js";
21
22
  import { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, SOURCE_DEFAULTS } from "./sources/index.js";
22
23
  const CARTO_SOURCES = {
23
24
  boundaryQuerySource,
@@ -2,9 +2,9 @@ import type { ShaderPass } from '@luma.gl/shadertools';
2
2
  import { Color } from '@deck.gl/core';
3
3
  export type HeatmapProps = {
4
4
  /**
5
- * Radius of the circle in pixels, to which the weight of an object is distributed.
5
+ * Radius of the heatmap blur in pixels, to which the weight of a cell is distributed.
6
6
  *
7
- * @default 30
7
+ * @default 20
8
8
  */
9
9
  radiusPixels?: number;
10
10
  /**
@@ -22,6 +22,7 @@ export type HeatmapProps = {
22
22
  opacity: number;
23
23
  };
24
24
  export type HeatmapUniforms = {
25
+ delta?: [number, number];
25
26
  radiusPixels?: number;
26
27
  colorDomain?: [number, number];
27
28
  color1?: [number, number, number];
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/layers/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAgHpC,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,CA+C7D,CAAC"}
1
+ {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/layers/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAuHpC,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,CAsD7D,CAAC"}
@@ -8,6 +8,7 @@ const glsl = (s) => `${s}`;
8
8
  */
9
9
  const fs = `\
10
10
  uniform heatmapUniforms {
11
+ vec2 delta;
11
12
  float radiusPixels;
12
13
  vec2 colorDomain;
13
14
  vec3 color1;
@@ -47,24 +48,29 @@ float f = (value - range.x) / (range.y - range.x);
47
48
  return mix(c1, c2, f) / 255.0;
48
49
  }
49
50
  const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
51
+ vec4 pack(float value) {
52
+ return vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
53
+ }
50
54
  float unpack(vec3 color) {
51
55
  return 255.0 * dot(color, SHIFT);
52
56
  }
53
57
  vec4 heatmap_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
58
+ bool firstPass = (heatmap.delta.y < 0.5);
54
59
  float accumulator = 0.0;
55
60
  float offset = 0.5 * random(vec3(12.9898, 78.233, 151.7182), 0.0);
56
61
  const float sigma = SUPPORT / 3.0;
57
62
  const float a = -0.5 / (sigma * sigma);
58
- const float w0 = 1.0 / (2.0 * 3.141592653589793 * sigma * sigma);
63
+ const float w0 = 0.3989422804014327 / sigma;
59
64
  for (float t = -SUPPORT; t <= SUPPORT; t++) {
60
- for (float s = -SUPPORT; s <= SUPPORT; s++) {
61
- vec2 percent = (vec2(s, t) + offset - 0.5) / SUPPORT;
65
+ vec2 percent = (t * heatmap.delta + offset - 0.5) / SUPPORT;
62
66
  vec2 delta = percent * heatmap.radiusPixels / texSize;
63
67
  vec4 offsetColor = texture(source, texCoord + delta);
64
68
  float value = unpack(offsetColor.rgb);
65
- float weight = w0 * exp(a * (s * s + t * t));
69
+ float weight = w0 * exp(a * t * t);
66
70
  accumulator += value * weight;
67
71
  }
72
+ if (firstPass) {
73
+ return pack(accumulator);
68
74
  }
69
75
  float f = (accumulator - heatmap.colorDomain[0]) / (heatmap.colorDomain[1] - heatmap.colorDomain[0]);
70
76
  vec4 color = vec4(0.0);
@@ -86,6 +92,7 @@ const defaultColorRange = [
86
92
  export const heatmap = {
87
93
  name: 'heatmap',
88
94
  uniformPropTypes: {
95
+ delta: { value: [0, 1] },
89
96
  radiusPixels: { value: 20, min: 0, softMax: 100 },
90
97
  colorDomain: { value: [0, 1] },
91
98
  color1: { value: [0, 0, 0] },
@@ -97,6 +104,7 @@ export const heatmap = {
97
104
  opacity: { value: 1, min: 0, max: 1 }
98
105
  },
99
106
  uniformTypes: {
107
+ delta: 'vec2<f32>',
100
108
  radiusPixels: 'f32',
101
109
  colorDomain: 'vec2<f32>',
102
110
  color1: 'vec3<f32>',
@@ -108,9 +116,10 @@ export const heatmap = {
108
116
  opacity: 'f32'
109
117
  },
110
118
  getUniforms: opts => {
111
- const { colorRange = defaultColorRange, radiusPixels = 20, colorDomain = [0, 1], opacity = 1 } = opts;
119
+ const { delta = [1, 0], colorRange = defaultColorRange, radiusPixels = 20, colorDomain = [0, 1], opacity = 1 } = opts;
112
120
  const [color1, color2, color3, color4, color5, color6] = colorRange;
113
121
  return {
122
+ delta,
114
123
  color1,
115
124
  color2,
116
125
  color3,
@@ -124,5 +133,8 @@ export const heatmap = {
124
133
  },
125
134
  dependencies: [random],
126
135
  fs,
127
- passes: [{ sampler: true }]
136
+ passes: [
137
+ { sampler: true, uniforms: { delta: [1, 0] } },
138
+ { sampler: true, uniforms: { delta: [0, 1] } }
139
+ ]
128
140
  };
@@ -1,8 +1,11 @@
1
- import { Accessor, CompositeLayer, DefaultProps, Layer } from '@deck.gl/core';
1
+ import { Accessor, CompositeLayer, CompositeLayerProps, DefaultProps, Layer } from '@deck.gl/core';
2
2
  import { HeatmapProps } from "./heatmap.js";
3
3
  import { QuadbinTileLayerProps } from "./quadbin-tile-layer.js";
4
+ import { TilejsonResult } from "../sources.js";
4
5
  /** All properties supported by QuadbinHeatmapTileLayer. */
5
- export type QuadbinHeatmapTileLayerProps<DataT = unknown> = _QuadbinHeatmapTileLayerProps<DataT> & QuadbinTileLayerProps;
6
+ export type QuadbinHeatmapTileLayerProps<DataT = unknown> = _QuadbinHeatmapTileLayerProps<DataT> & CompositeLayerProps & {
7
+ data: null | TilejsonResult | Promise<TilejsonResult>;
8
+ };
6
9
  /** Properties added by QuadbinHeatmapTileLayer. */
7
10
  type _QuadbinHeatmapTileLayerProps<DataT> = QuadbinTileLayerProps<DataT> & HeatmapProps & {
8
11
  /**
@@ -1 +1 @@
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,YAAY,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAG5E,OAAO,EAAC,YAAY,EAAU,qBAAkB;AAEhD,OAAyB,EAAC,qBAAqB,EAAC,gCAA6B;AAkD7E,2DAA2D;AAC3D,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI,6BAA6B,CAAC,KAAK,CAAC,GAC9F,qBAAqB,CAAC;AAExB,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
+ {"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"}
@@ -4,6 +4,7 @@ import { SolidPolygonLayer } from '@deck.gl/layers';
4
4
  import { heatmap } from "./heatmap.js";
5
5
  import { RTTModifier, PostProcessModifier } from "./post-process-utils.js";
6
6
  import QuadbinTileLayer from "./quadbin-tile-layer.js";
7
+ import { TilejsonPropType } from "./utils.js";
7
8
  // Modified polygon layer to draw offscreen and output value expected by heatmap
8
9
  class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
9
10
  static { this.layerName = 'RTTSolidPolygonLayer'; }
@@ -16,7 +17,7 @@ class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
16
17
  float value = 255.0 * dot(SHIFT, color.rgb);
17
18
 
18
19
  // Keep "power" delivered to screen constant when tiles update
19
- float relativeZoom = log2(project_uScale) - cellResolution + 3.5; // range 0-1
20
+ float relativeZoom = log2(project.scale) - cellResolution + 3.5; // range 0-1
20
21
  float relativeArea = pow(2.0, -2.0 * relativeZoom); // range 0.25-1
21
22
  value *= relativeArea;
22
23
 
@@ -41,7 +42,7 @@ function encodeWeight(w) {
41
42
  return [w % 256, Math.floor(w / 256), Math.floor(w / (256 * 256))];
42
43
  }
43
44
  const defaultProps = {
44
- ...QuadbinTileLayer.defaultProps,
45
+ data: TilejsonPropType,
45
46
  getWeight: { type: 'accessor', value: 1 }
46
47
  };
47
48
  class QuadbinHeatmapTileLayer extends CompositeLayer {
@@ -1,7 +1,7 @@
1
1
  import { TileReader } from "./carto-raster-tile.js";
2
2
  import { parsePbf } from "./tile-loader-utils.js";
3
3
  import { getWorkerUrl } from "../../utils.js";
4
- const VERSION = typeof "9.0.13" !== 'undefined' ? "9.0.13" : 'latest';
4
+ const VERSION = typeof "9.0.15" !== 'undefined' ? "9.0.15" : 'latest';
5
5
  const id = 'cartoRasterTile';
6
6
  const DEFAULT_OPTIONS = {
7
7
  cartoRasterTile: {
@@ -2,7 +2,7 @@ import { TileReader } from "./carto-spatial-tile.js";
2
2
  import { parsePbf } from "./tile-loader-utils.js";
3
3
  import { getWorkerUrl } from "../../utils.js";
4
4
  import { binaryToSpatialjson } from "./spatialjson-utils.js";
5
- const VERSION = typeof "9.0.13" !== 'undefined' ? "9.0.13" : 'latest';
5
+ const VERSION = typeof "9.0.15" !== 'undefined' ? "9.0.15" : 'latest';
6
6
  const id = 'cartoSpatialTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoSpatialTile: {
@@ -2,7 +2,7 @@ import earcut from 'earcut';
2
2
  import { TileReader } from "./carto-tile.js";
3
3
  import { parsePbf } from "./tile-loader-utils.js";
4
4
  import { getWorkerUrl } from "../../utils.js";
5
- const VERSION = typeof "9.0.13" !== 'undefined' ? "9.0.13" : 'latest';
5
+ const VERSION = typeof "9.0.15" !== 'undefined' ? "9.0.15" : 'latest';
6
6
  const id = 'cartoVectorTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoVectorTile: {
@@ -1,5 +1,5 @@
1
1
  import type { MapType } from "../api/types.js";
2
2
  import type { GeojsonResult, JsonResult, SourceOptionalOptions, SourceRequiredOptions, TilejsonResult } from "./types.js";
3
3
  export declare const SOURCE_DEFAULTS: SourceOptionalOptions;
4
- export declare function baseSource<UrlParameters extends Record<string, string>>(endpoint: MapType, options: Partial<SourceOptionalOptions> & SourceRequiredOptions, urlParameters: UrlParameters): Promise<TilejsonResult | GeojsonResult | JsonResult>;
4
+ export declare function baseSource<UrlParameters extends Record<string, unknown>>(endpoint: MapType, options: Partial<SourceOptionalOptions> & SourceRequiredOptions, urlParameters: UrlParameters): Promise<TilejsonResult | GeojsonResult | JsonResult>;
5
5
  //# sourceMappingURL=base-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-source.d.ts","sourceRoot":"","sources":["../../src/sources/base-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,OAAO,EAAC,wBAAqB;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EAErB,cAAc,EACf,mBAAgB;AAEjB,eAAO,MAAM,eAAe,EAAE,qBAK7B,CAAC;AAEF,wBAAsB,UAAU,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3E,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,EAC/D,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC,CAiDtD"}
1
+ {"version":3,"file":"base-source.d.ts","sourceRoot":"","sources":["../../src/sources/base-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,OAAO,EAAC,wBAAqB;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EAErB,cAAc,EACf,mBAAgB;AAEjB,eAAO,MAAM,eAAe,EAAE,qBAK7B,CAAC;AAEF,wBAAsB,UAAU,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5E,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,EAC/D,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC,CAiDtD"}
@@ -10,10 +10,10 @@ export const boundaryQuerySource = async function (options) {
10
10
  urlParameters.columns = columns.join(',');
11
11
  }
12
12
  if (filters) {
13
- urlParameters.filters = JSON.stringify(filters);
13
+ urlParameters.filters = filters;
14
14
  }
15
15
  if (queryParameters) {
16
- urlParameters.queryParameters = JSON.stringify(queryParameters);
16
+ urlParameters.queryParameters = queryParameters;
17
17
  }
18
18
  return baseSource('boundary', options, urlParameters);
19
19
  };
@@ -10,7 +10,7 @@ export const boundaryTableSource = async function (options) {
10
10
  urlParameters.columns = columns.join(',');
11
11
  }
12
12
  if (filters) {
13
- urlParameters.filters = JSON.stringify(filters);
13
+ urlParameters.filters = filters;
14
14
  }
15
15
  return baseSource('boundary', options, urlParameters);
16
16
  };
@@ -13,7 +13,7 @@ export const h3QuerySource = async function (options) {
13
13
  urlParameters.aggregationResLevel = String(aggregationResLevel);
14
14
  }
15
15
  if (queryParameters) {
16
- urlParameters.queryParameters = JSON.stringify(queryParameters);
16
+ urlParameters.queryParameters = queryParameters;
17
17
  }
18
18
  return baseSource('query', options, urlParameters);
19
19
  };
@@ -13,7 +13,7 @@ export const quadbinQuerySource = async function (options) {
13
13
  urlParameters.aggregationResLevel = String(aggregationResLevel);
14
14
  }
15
15
  if (queryParameters) {
16
- urlParameters.queryParameters = JSON.stringify(queryParameters);
16
+ urlParameters.queryParameters = queryParameters;
17
17
  }
18
18
  return baseSource('query', options, urlParameters);
19
19
  };
@@ -13,10 +13,10 @@ export const vectorQuerySource = async function (options) {
13
13
  urlParameters.columns = columns.join(',');
14
14
  }
15
15
  if (filters) {
16
- urlParameters.filters = JSON.stringify(filters);
16
+ urlParameters.filters = filters;
17
17
  }
18
18
  if (queryParameters) {
19
- urlParameters.queryParameters = JSON.stringify(queryParameters);
19
+ urlParameters.queryParameters = queryParameters;
20
20
  }
21
21
  return baseSource('query', options, urlParameters);
22
22
  };
@@ -13,7 +13,7 @@ export const vectorTableSource = async function (options) {
13
13
  urlParameters.columns = columns.join(',');
14
14
  }
15
15
  if (filters) {
16
- urlParameters.filters = JSON.stringify(filters);
16
+ urlParameters.filters = filters;
17
17
  }
18
18
  return baseSource('table', options, urlParameters);
19
19
  };
package/dist/utils.d.ts CHANGED
@@ -13,4 +13,6 @@ export declare function scaleIdentity(): {
13
13
  unknown(u: any): any;
14
14
  copy(): any;
15
15
  };
16
+ export declare const isObject: (x: unknown) => boolean;
17
+ export declare const isPureObject: (x: any) => boolean;
16
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,6CAA0C;AAEhF,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAE9E;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,CAAA;CAAC,EAC5D,KAAK,EAAE,MAAM,cAed;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAIvD;AAED,wBAAgB,aAAa;;;;;;;EA0B5B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,6CAA0C;AAEhF,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAE9E;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,CAAA;CAAC,EAC5D,KAAK,EAAE,MAAM,cAed;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAIvD;AAED,wBAAgB,aAAa;;;;;;;EA0B5B;AAED,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAkD,CAAC;AAE1F,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OACU,CAAC"}
package/dist/utils.js CHANGED
@@ -43,3 +43,5 @@ export function scaleIdentity() {
43
43
  };
44
44
  return scale;
45
45
  }
46
+ export const isObject = x => x !== null && typeof x === 'object';
47
+ export const isPureObject = x => isObject(x) && x.constructor === {}.constructor;