@deck.gl/carto 9.0.34 → 9.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/basemap.d.ts +2 -1
- package/dist/api/basemap.d.ts.map +1 -1
- package/dist/api/basemap.js +3 -0
- package/dist/api/fetch-map.d.ts.map +1 -1
- package/dist/api/fetch-map.js +9 -11
- package/dist/api/index.d.ts +1 -4
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -2
- package/dist/api/layer-map.d.ts.map +1 -1
- package/dist/api/layer-map.js +5 -2
- package/dist/api/parse-map.d.ts.map +1 -1
- package/dist/api/parse-map.js +3 -0
- package/dist/api/types.d.ts +0 -56
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +4 -20
- package/dist/basemap.d.ts +2 -1
- package/dist/basemap.d.ts.map +1 -1
- package/dist/basemap.js +4 -1
- package/dist/cartoRasterTile-worker.js +25 -2
- package/dist/cartoSpatialTile-worker.js +28 -3
- package/dist/cartoVectorTile-worker.js +29 -3
- package/dist/constants.d.ts +0 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -3
- package/dist/dist.dev.js +4512 -3855
- package/dist/index.cjs +328 -630
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +29 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/layers/cluster-tile-layer.d.ts +1 -1
- package/dist/layers/cluster-tile-layer.d.ts.map +1 -1
- package/dist/layers/cluster-tile-layer.js +4 -0
- package/dist/layers/cluster-utils.d.ts.map +1 -1
- package/dist/layers/cluster-utils.js +3 -0
- package/dist/layers/h3-tile-layer.d.ts +4 -4
- package/dist/layers/h3-tile-layer.d.ts.map +1 -1
- package/dist/layers/h3-tile-layer.js +15 -14
- package/dist/layers/h3-tileset-2d.d.ts.map +1 -1
- package/dist/layers/h3-tileset-2d.js +3 -0
- package/dist/layers/heatmap-tile-layer.d.ts +12 -2
- package/dist/layers/heatmap-tile-layer.d.ts.map +1 -1
- package/dist/layers/heatmap-tile-layer.js +85 -9
- package/dist/layers/heatmap.d.ts +69 -22
- package/dist/layers/heatmap.d.ts.map +1 -1
- package/dist/layers/heatmap.js +86 -102
- package/dist/layers/point-label-layer.d.ts.map +1 -1
- package/dist/layers/point-label-layer.js +5 -2
- package/dist/layers/post-process-utils.d.ts.map +1 -1
- package/dist/layers/post-process-utils.js +9 -5
- package/dist/layers/quadbin-layer.d.ts.map +1 -1
- package/dist/layers/quadbin-layer.js +3 -0
- package/dist/layers/quadbin-tile-layer.d.ts +4 -4
- package/dist/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/dist/layers/quadbin-tile-layer.js +13 -12
- package/dist/layers/quadbin-tileset-2d.d.ts.map +1 -1
- package/dist/layers/quadbin-tileset-2d.js +3 -0
- package/dist/layers/quadbin-utils.d.ts.map +1 -1
- package/dist/layers/quadbin-utils.js +3 -0
- package/dist/layers/raster-layer-vertex.glsl.d.ts +1 -1
- package/dist/layers/raster-layer-vertex.glsl.d.ts.map +1 -1
- package/dist/layers/raster-layer-vertex.glsl.js +20 -25
- package/dist/layers/raster-layer.d.ts +6 -6
- package/dist/layers/raster-layer.d.ts.map +1 -1
- package/dist/layers/raster-layer.js +6 -1
- package/dist/layers/raster-tile-layer.d.ts +1 -1
- package/dist/layers/raster-tile-layer.d.ts.map +1 -1
- package/dist/layers/raster-tile-layer.js +14 -13
- package/dist/layers/schema/carto-properties-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-properties-tile-loader.js +3 -0
- package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-properties-tile.js +3 -0
- package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-raster-tile-loader.js +4 -1
- package/dist/layers/schema/carto-raster-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-raster-tile.js +3 -0
- package/dist/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-spatial-tile-loader.js +4 -1
- package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-spatial-tile.js +3 -0
- package/dist/layers/schema/carto-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-tile.js +3 -0
- package/dist/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-vector-tile-loader.js +4 -1
- package/dist/layers/schema/fast-pbf.d.ts.map +1 -1
- package/dist/layers/schema/fast-pbf.js +3 -0
- package/dist/layers/schema/spatialjson-utils.d.ts.map +1 -1
- package/dist/layers/schema/spatialjson-utils.js +3 -0
- package/dist/layers/schema/tile-loader-utils.d.ts.map +1 -1
- package/dist/layers/schema/tile-loader-utils.js +3 -0
- package/dist/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/dist/layers/spatial-index-tile-layer.js +3 -0
- package/dist/layers/utils.d.ts +2 -2
- package/dist/layers/utils.d.ts.map +1 -1
- package/dist/layers/utils.js +3 -0
- package/dist/layers/vector-tile-layer.d.ts +1 -1
- package/dist/layers/vector-tile-layer.d.ts.map +1 -1
- package/dist/layers/vector-tile-layer.js +3 -0
- package/dist/style/color-bins-style.d.ts.map +1 -1
- package/dist/style/color-bins-style.js +3 -0
- package/dist/style/color-categories-style.d.ts.map +1 -1
- package/dist/style/color-categories-style.js +3 -0
- package/dist/style/color-continuous-style.d.ts.map +1 -1
- package/dist/style/color-continuous-style.js +3 -0
- package/dist/style/palette.d.ts.map +1 -1
- package/dist/style/palette.js +3 -0
- package/dist/style/utils.d.ts.map +1 -1
- package/dist/style/utils.js +3 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -0
- package/dist/workers/cartoRasterTile.js +3 -0
- package/dist/workers/cartoSpatialTile.js +3 -0
- package/dist/workers/cartoVectorTile.js +3 -0
- package/dist.min.js +115 -101
- package/package.json +13 -11
- package/src/api/basemap.ts +6 -1
- package/src/api/fetch-map.ts +23 -15
- package/src/api/index.ts +5 -13
- package/src/api/layer-map.ts +6 -2
- package/src/api/parse-map.ts +4 -0
- package/src/api/types.ts +4 -75
- package/src/basemap.ts +6 -2
- package/src/constants.ts +4 -4
- package/src/index.ts +28 -9
- package/src/layers/cluster-tile-layer.ts +6 -1
- package/src/layers/cluster-utils.ts +4 -0
- package/src/layers/h3-tile-layer.ts +18 -16
- package/src/layers/h3-tileset-2d.ts +4 -0
- package/src/layers/heatmap-tile-layer.ts +115 -11
- package/src/layers/heatmap.ts +41 -99
- package/src/layers/point-label-layer.ts +6 -2
- package/src/layers/post-process-utils.ts +10 -5
- package/src/layers/quadbin-layer.ts +4 -0
- package/src/layers/quadbin-tile-layer.ts +16 -14
- package/src/layers/quadbin-tileset-2d.ts +4 -0
- package/src/layers/quadbin-utils.ts +4 -0
- package/src/layers/raster-layer-vertex.glsl.ts +21 -27
- package/src/layers/raster-layer.ts +7 -1
- package/src/layers/raster-tile-layer.ts +16 -14
- package/src/layers/schema/carto-properties-tile-loader.ts +4 -0
- package/src/layers/schema/carto-properties-tile.ts +4 -0
- package/src/layers/schema/carto-raster-tile-loader.ts +4 -0
- package/src/layers/schema/carto-raster-tile.ts +4 -0
- package/src/layers/schema/carto-spatial-tile-loader.ts +4 -0
- package/src/layers/schema/carto-spatial-tile.ts +4 -0
- package/src/layers/schema/carto-tile.ts +4 -0
- package/src/layers/schema/carto-vector-tile-loader.ts +4 -0
- package/src/layers/schema/fast-pbf.ts +4 -0
- package/src/layers/schema/spatialjson-utils.ts +4 -0
- package/src/layers/schema/tile-loader-utils.ts +4 -0
- package/src/layers/spatial-index-tile-layer.ts +4 -0
- package/src/layers/utils.ts +5 -1
- package/src/layers/vector-tile-layer.ts +5 -1
- package/src/style/color-bins-style.ts +4 -0
- package/src/style/color-categories-style.ts +4 -0
- package/src/style/color-continuous-style.ts +4 -0
- package/src/style/palette.ts +4 -0
- package/src/style/utils.ts +4 -0
- package/src/utils.ts +4 -0
- package/src/workers/cartoRasterTile.ts +4 -0
- package/src/workers/cartoSpatialTile.ts +4 -0
- package/src/workers/cartoVectorTile.ts +4 -0
- package/dist/api/carto-api-error.d.ts +0 -19
- package/dist/api/carto-api-error.d.ts.map +0 -1
- package/dist/api/carto-api-error.js +0 -48
- package/dist/api/common.d.ts +0 -5
- package/dist/api/common.d.ts.map +0 -1
- package/dist/api/common.js +0 -5
- package/dist/api/endpoints.d.ts +0 -23
- package/dist/api/endpoints.d.ts.map +0 -1
- package/dist/api/endpoints.js +0 -22
- package/dist/api/query.d.ts +0 -4
- package/dist/api/query.d.ts.map +0 -1
- package/dist/api/query.js +0 -26
- package/dist/api/request-with-parameters.d.ts +0 -9
- package/dist/api/request-with-parameters.d.ts.map +0 -1
- package/dist/api/request-with-parameters.js +0 -86
- package/dist/sources/base-source.d.ts +0 -5
- package/dist/sources/base-source.d.ts.map +0 -1
- package/dist/sources/base-source.js +0 -60
- package/dist/sources/boundary-query-source.d.ts +0 -10
- package/dist/sources/boundary-query-source.d.ts.map +0 -1
- package/dist/sources/boundary-query-source.js +0 -18
- package/dist/sources/boundary-table-source.d.ts +0 -8
- package/dist/sources/boundary-table-source.d.ts.map +0 -1
- package/dist/sources/boundary-table-source.js +0 -15
- package/dist/sources/h3-query-source.d.ts +0 -4
- package/dist/sources/h3-query-source.d.ts.map +0 -1
- package/dist/sources/h3-query-source.js +0 -22
- package/dist/sources/h3-table-source.d.ts +0 -4
- package/dist/sources/h3-table-source.d.ts.map +0 -1
- package/dist/sources/h3-table-source.js +0 -19
- package/dist/sources/h3-tileset-source.d.ts +0 -4
- package/dist/sources/h3-tileset-source.d.ts.map +0 -1
- package/dist/sources/h3-tileset-source.js +0 -6
- package/dist/sources/index.d.ts +0 -28
- package/dist/sources/index.d.ts.map +0 -1
- package/dist/sources/index.js +0 -13
- package/dist/sources/quadbin-query-source.d.ts +0 -4
- package/dist/sources/quadbin-query-source.d.ts.map +0 -1
- package/dist/sources/quadbin-query-source.js +0 -22
- package/dist/sources/quadbin-table-source.d.ts +0 -4
- package/dist/sources/quadbin-table-source.d.ts.map +0 -1
- package/dist/sources/quadbin-table-source.js +0 -19
- package/dist/sources/quadbin-tileset-source.d.ts +0 -4
- package/dist/sources/quadbin-tileset-source.d.ts.map +0 -1
- package/dist/sources/quadbin-tileset-source.js +0 -6
- package/dist/sources/raster-source.d.ts +0 -4
- package/dist/sources/raster-source.d.ts.map +0 -1
- package/dist/sources/raster-source.js +0 -9
- package/dist/sources/types.d.ts +0 -219
- package/dist/sources/types.d.ts.map +0 -1
- package/dist/sources/types.js +0 -1
- package/dist/sources/vector-query-source.d.ts +0 -4
- package/dist/sources/vector-query-source.d.ts.map +0 -1
- package/dist/sources/vector-query-source.js +0 -22
- package/dist/sources/vector-table-source.d.ts +0 -4
- package/dist/sources/vector-table-source.d.ts.map +0 -1
- package/dist/sources/vector-table-source.js +0 -19
- package/dist/sources/vector-tileset-source.d.ts +0 -4
- package/dist/sources/vector-tileset-source.d.ts.map +0 -1
- package/dist/sources/vector-tileset-source.js +0 -6
- package/src/api/carto-api-error.ts +0 -68
- package/src/api/common.ts +0 -6
- package/src/api/endpoints.ts +0 -69
- package/src/api/query.ts +0 -42
- package/src/api/request-with-parameters.ts +0 -117
- package/src/sources/base-source.ts +0 -79
- package/src/sources/boundary-query-source.ts +0 -39
- package/src/sources/boundary-table-source.ts +0 -33
- package/src/sources/h3-query-source.ts +0 -55
- package/src/sources/h3-table-source.ts +0 -51
- package/src/sources/h3-tileset-source.ts +0 -14
- package/src/sources/index.ts +0 -45
- package/src/sources/quadbin-query-source.ts +0 -56
- package/src/sources/quadbin-table-source.ts +0 -52
- package/src/sources/quadbin-tileset-source.ts +0 -14
- package/src/sources/raster-source.ts +0 -17
- package/src/sources/types.ts +0 -231
- package/src/sources/vector-query-source.ts +0 -57
- package/src/sources/vector-table-source.ts +0 -51
- package/src/sources/vector-tileset-source.ts +0 -14
package/dist/layers/heatmap.js
CHANGED
|
@@ -1,143 +1,127 @@
|
|
|
1
|
-
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
2
4
|
/**
|
|
3
5
|
* @filter Heatmap
|
|
4
6
|
* @param radiusPixels Blur radius in pixels, controls smoothness of heatmap
|
|
5
7
|
* @param colorDomain Domain to apply to values prior to applying color scale
|
|
6
|
-
* @param
|
|
8
|
+
* @param colorTexture 1D RGB lookup texture for color scale
|
|
9
|
+
* @param intensity Multiplier to apply to value
|
|
10
|
+
* @param opacity Output opacity
|
|
7
11
|
*/
|
|
8
|
-
const fs = `\
|
|
12
|
+
const fs = /* glsl */ `\
|
|
9
13
|
uniform heatmapUniforms {
|
|
10
|
-
vec2
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
vec3 color3;
|
|
16
|
-
vec3 color4;
|
|
17
|
-
vec3 color5;
|
|
18
|
-
vec3 color6;
|
|
19
|
-
float intensity;
|
|
20
|
-
float opacity;
|
|
14
|
+
vec2 colorDomain;
|
|
15
|
+
vec2 delta;
|
|
16
|
+
float intensity;
|
|
17
|
+
float opacity;
|
|
18
|
+
float radiusPixels;
|
|
21
19
|
} heatmap;
|
|
22
|
-
|
|
20
|
+
|
|
21
|
+
uniform sampler2D colorTexture;
|
|
22
|
+
|
|
23
23
|
vec3 colorGradient(float value) {
|
|
24
|
-
|
|
25
|
-
vec3 c2;
|
|
26
|
-
vec2 range;
|
|
27
|
-
if (value < STOPS.x) {
|
|
28
|
-
range = vec2(0.0, STOPS.x);
|
|
29
|
-
c1 = heatmap.color1; c2 = heatmap.color2;
|
|
30
|
-
} else if (value < STOPS.y) {
|
|
31
|
-
range = STOPS.xy;
|
|
32
|
-
c1 = heatmap.color2; c2 = heatmap.color3;
|
|
33
|
-
} else if (value < STOPS.z) {
|
|
34
|
-
range = STOPS.yz;
|
|
35
|
-
c1 = heatmap.color3; c2 = heatmap.color4;
|
|
36
|
-
} else if (value < STOPS.w) {
|
|
37
|
-
range = STOPS.zw;
|
|
38
|
-
c1 = heatmap.color4; c2 = heatmap.color5;
|
|
39
|
-
} else {
|
|
40
|
-
range = vec2(STOPS.w, 1.0);
|
|
41
|
-
c1 = heatmap.color5; c2 = heatmap.color6;
|
|
42
|
-
}
|
|
43
|
-
float f = (clamp(value, 0.0, 1.0) - range.x) / (range.y - range.x);
|
|
44
|
-
return mix(c1, c2, f) / 255.0;
|
|
24
|
+
return texture(colorTexture, vec2(value, 0.5)).rgb;
|
|
45
25
|
}
|
|
26
|
+
|
|
46
27
|
const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0);
|
|
47
28
|
const float MAX_VAL = SHIFT.z * 255.0;
|
|
48
29
|
const float SCALE = MAX_VAL / 8.0;
|
|
49
30
|
vec4 pack(float value) {
|
|
50
|
-
return vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
|
|
31
|
+
return vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0;
|
|
51
32
|
}
|
|
52
33
|
float unpack(vec3 color) {
|
|
53
|
-
return 255.0 * dot(color, SHIFT);
|
|
34
|
+
return 255.0 * dot(color, SHIFT);
|
|
54
35
|
}
|
|
36
|
+
|
|
55
37
|
vec4 heatmap_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
56
|
-
bool firstPass = (heatmap.delta.y < 0.5);
|
|
57
|
-
float accumulator = 0.0;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
float
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
float
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
float
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return
|
|
38
|
+
bool firstPass = (heatmap.delta.y < 0.5);
|
|
39
|
+
float accumulator = 0.0;
|
|
40
|
+
|
|
41
|
+
// Controls quality of heatmap, larger values increase quality at expense of performance
|
|
42
|
+
float SUPPORT = clamp(heatmap.radiusPixels / 2.0, 8.0, 32.0);
|
|
43
|
+
|
|
44
|
+
// Gaussian normalization parameters
|
|
45
|
+
float sigma = SUPPORT / 3.0;
|
|
46
|
+
float a = -0.5 / (sigma * sigma);
|
|
47
|
+
float w0 = 0.3989422804014327 / sigma; // 1D normalization
|
|
48
|
+
for (float t = -SUPPORT; t <= SUPPORT; t++) {
|
|
49
|
+
vec2 percent = (t * heatmap.delta - 0.5) / SUPPORT;
|
|
50
|
+
vec2 delta = percent * heatmap.radiusPixels / texSize;
|
|
51
|
+
vec4 offsetColor = texture(source, texCoord + delta);
|
|
52
|
+
|
|
53
|
+
// Unpack float
|
|
54
|
+
float value = unpack(offsetColor.rgb);
|
|
55
|
+
|
|
56
|
+
// Gaussian
|
|
57
|
+
float weight = w0 * exp(a * t * t);
|
|
58
|
+
|
|
59
|
+
accumulator += value * weight;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (firstPass) {
|
|
63
|
+
return pack(accumulator);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Undo scaling to obtain normalized density
|
|
67
|
+
float density = 10.0 * heatmap.intensity * accumulator / SCALE;
|
|
68
|
+
|
|
69
|
+
// Domain also in normalized density units
|
|
70
|
+
vec2 domain = heatmap.colorDomain;
|
|
71
|
+
|
|
72
|
+
// Apply domain
|
|
73
|
+
float f = (density - domain[0]) / (domain[1] - domain[0]);
|
|
74
|
+
|
|
75
|
+
// sqrt/log scaling??
|
|
76
|
+
// float f = (log(density) - log(domain[0] + 1.0)) / (log(domain[1] + 1.0) - log(domain[0] + 1.0));
|
|
77
|
+
// f = sqrt(f);
|
|
78
|
+
|
|
79
|
+
// Color map
|
|
80
|
+
vec4 color = vec4(0.0);
|
|
81
|
+
color.rgb = colorGradient(f);
|
|
82
|
+
|
|
83
|
+
color.a = smoothstep(0.0, 0.1, f);
|
|
84
|
+
color.a = pow(color.a, 1.0 / 2.2);
|
|
85
|
+
color.a *= heatmap.opacity;
|
|
86
|
+
|
|
87
|
+
return color;
|
|
82
88
|
}
|
|
83
89
|
`;
|
|
84
|
-
const defaultColorRange = [
|
|
85
|
-
[255, 255, 178],
|
|
86
|
-
[254, 217, 118],
|
|
87
|
-
[254, 178, 76],
|
|
88
|
-
[253, 141, 60],
|
|
89
|
-
[240, 59, 32],
|
|
90
|
-
[189, 0, 38]
|
|
91
|
-
];
|
|
92
90
|
export const heatmap = {
|
|
93
91
|
name: 'heatmap',
|
|
94
92
|
uniformPropTypes: {
|
|
95
|
-
delta: { value: [0, 1] },
|
|
96
|
-
radiusPixels: { value: 20, min: 0, softMax: 100 },
|
|
97
93
|
colorDomain: { value: [0, 1] },
|
|
98
|
-
|
|
99
|
-
color2: { value: [0, 0, 0] },
|
|
100
|
-
color3: { value: [0, 0, 0] },
|
|
101
|
-
color4: { value: [0, 0, 0] },
|
|
102
|
-
color5: { value: [0, 0, 0] },
|
|
103
|
-
color6: { value: [0, 0, 0] },
|
|
94
|
+
delta: { value: [0, 1] },
|
|
104
95
|
intensity: { value: 1, min: 0.1, max: 10 },
|
|
105
|
-
opacity: { value: 1, min: 0, max: 1 }
|
|
96
|
+
opacity: { value: 1, min: 0, max: 1 },
|
|
97
|
+
radiusPixels: { value: 20, min: 0, softMax: 100 }
|
|
106
98
|
},
|
|
107
99
|
uniformTypes: {
|
|
108
|
-
delta: 'vec2<f32>',
|
|
109
|
-
radiusPixels: 'f32',
|
|
110
100
|
colorDomain: 'vec2<f32>',
|
|
111
|
-
|
|
112
|
-
color2: 'vec3<f32>',
|
|
113
|
-
color3: 'vec3<f32>',
|
|
114
|
-
color4: 'vec3<f32>',
|
|
115
|
-
color5: 'vec3<f32>',
|
|
116
|
-
color6: 'vec3<f32>',
|
|
101
|
+
delta: 'vec2<f32>',
|
|
117
102
|
intensity: 'f32',
|
|
118
|
-
opacity: 'f32'
|
|
103
|
+
opacity: 'f32',
|
|
104
|
+
radiusPixels: 'f32'
|
|
119
105
|
},
|
|
120
|
-
// @ts-
|
|
106
|
+
// @ts-ignore TODO v9.1
|
|
121
107
|
getUniforms: opts => {
|
|
122
|
-
|
|
123
|
-
|
|
108
|
+
if (!opts)
|
|
109
|
+
return {};
|
|
110
|
+
const { colorDomain = [0, 1], colorTexture, delta = [1, 0], intensity = 1, opacity = 1, radiusPixels = 20 } = opts;
|
|
124
111
|
return {
|
|
125
|
-
delta,
|
|
126
|
-
color1,
|
|
127
|
-
color2,
|
|
128
|
-
color3,
|
|
129
|
-
color4,
|
|
130
|
-
color5,
|
|
131
|
-
color6,
|
|
132
|
-
radiusPixels,
|
|
133
112
|
colorDomain,
|
|
113
|
+
colorTexture,
|
|
114
|
+
delta,
|
|
134
115
|
intensity,
|
|
135
|
-
opacity
|
|
116
|
+
opacity,
|
|
117
|
+
radiusPixels
|
|
136
118
|
};
|
|
137
119
|
},
|
|
138
120
|
fs,
|
|
139
121
|
passes: [
|
|
122
|
+
// @ts-expect-error Seems typing in luma.gl should be Partial<>
|
|
140
123
|
{ sampler: true, uniforms: { delta: [1, 0] } },
|
|
124
|
+
// @ts-expect-error Seems typing in luma.gl should be Partial<>
|
|
141
125
|
{ sampler: true, uniforms: { delta: [0, 1] } }
|
|
142
126
|
]
|
|
143
127
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point-label-layer.d.ts","sourceRoot":"","sources":["../../src/layers/point-label-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"point-label-layer.d.ts","sourceRoot":"","sources":["../../src/layers/point-label-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,UAAU,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAyBzB,cAAM,iBAAkB,SAAQ,SAAS;IACvC,MAAM,CAAC,SAAS,SAAuB;IAEvC,cAAc,CAAC,EAAC,KAAK,EAAE,UAAU,EAAC;;;KAAA;CAQnC;AAQD,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAC9E,cAAc,GACd,mBAAmB,CAAC;AAEtB,2CAA2C;AAC3C,KAAK,qBAAqB,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG;IAC1D;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAe,CAClC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,YAAY,8CAAgB;IAEnC,oBAAoB,CAAC,SAAS,KAAA;IA0C9B,0BAA0B;IA2B1B,eAAe,CAAC,EAAE,KAAA,EAAE,EAAC,cAAc,EAAE,sBAA2B,EAAE,GAAG,KAAK,EAAC;;;KAAA,GAAG,iBAAiB;IA2D/F,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAmC1C"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { CompositeLayer } from '@deck.gl/core';
|
|
2
5
|
import { TextLayer, _TextBackgroundLayer as TextBackgroundLayer } from '@deck.gl/layers';
|
|
3
6
|
const [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];
|
|
@@ -7,8 +10,8 @@ class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
|
|
|
7
10
|
let vs = shaders.vs;
|
|
8
11
|
// Modify shader so that the padding is offset by the pixel offset to ensure the padding
|
|
9
12
|
// always captures the anchor point. As padding is uniform we cannot pass it a per-label value
|
|
10
|
-
vs = vs.replaceAll('padding.', '_padding.');
|
|
11
|
-
vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
|
|
13
|
+
vs = vs.replaceAll('textBackground.padding.', '_padding.');
|
|
14
|
+
vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = textBackground.padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
|
|
12
15
|
return { ...shaders, vs };
|
|
13
16
|
}
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-process-utils.d.ts","sourceRoot":"","sources":["../../src/layers/post-process-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"post-process-utils.d.ts","sourceRoot":"","sources":["../../src/layers/post-process-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,KAAK,EAGL,UAAU,EAGX,MAAM,eAAe,CAAC;AAoBvB,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC;AACxE,KAAK,sBAAsB,GAAG,cAAc,GAAG;IAC7C,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC;CAC/C,CAAC;AAwBF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,KAAA;;;8BAIN,GAAG;;;;EAiBjC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,CAAC,sBAAsB,CAAC,EAC/E,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,GAAG,GACV,CAAC,CAyFH"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { Layer, PostProcessEffect } from '@deck.gl/core';
|
|
2
5
|
const TEXTURE_PROPS = {
|
|
3
6
|
format: 'rgba8unorm',
|
|
@@ -36,8 +39,8 @@ export function RTTModifier(BaseLayer) {
|
|
|
36
39
|
var _a;
|
|
37
40
|
return _a = class RTTLayer extends BaseLayer {
|
|
38
41
|
draw(opts) {
|
|
39
|
-
const {
|
|
40
|
-
const { picking } =
|
|
42
|
+
const { shaderModuleProps } = opts;
|
|
43
|
+
const { picking } = shaderModuleProps;
|
|
41
44
|
const postProcessLayer = getPostProcessLayer(this);
|
|
42
45
|
if (!picking.isActive) {
|
|
43
46
|
postProcessLayer.enableRTT(opts);
|
|
@@ -89,10 +92,11 @@ export function PostProcessModifier(BaseLayer, effect) {
|
|
|
89
92
|
}
|
|
90
93
|
_resizeBuffers(opts) {
|
|
91
94
|
// TODO we could likely render to a smaller buffer for better perf
|
|
92
|
-
const {
|
|
95
|
+
const { shaderModuleProps } = opts;
|
|
93
96
|
const { viewport } = this.context;
|
|
94
|
-
const
|
|
95
|
-
const
|
|
97
|
+
const { devicePixelRatio } = shaderModuleProps.project;
|
|
98
|
+
const width = devicePixelRatio * viewport.width;
|
|
99
|
+
const height = devicePixelRatio * viewport.height;
|
|
96
100
|
this.internalState.renderBuffers.forEach((fbo) => fbo.resize({ width, height }));
|
|
97
101
|
}
|
|
98
102
|
enableRTT(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadbin-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadbin-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,aAAa,IAAI,YAAY,EAC7B,kBAAkB,IAAI,iBAAiB,EACxC,MAAM,qBAAqB,CAAC;AAO7B,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,GACxE,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE3B,wCAAwC;AACxC,KAAK,kBAAkB,CAAC,KAAK,IAAI;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,YAAY,CAC7F,KAAK,EACL,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CACjD;IACC,MAAM,CAAC,SAAS,SAAkB;IAClC,MAAM,CAAC,YAAY,2CAAgB;IAEnC,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;CAcvD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CompositeLayer, CompositeLayerProps,
|
|
1
|
+
import { CompositeLayer, CompositeLayerProps, DefaultProps } from '@deck.gl/core';
|
|
2
2
|
import QuadbinLayer, { QuadbinLayerProps } from "./quadbin-layer.js";
|
|
3
|
-
import { SpatialIndexTileLayerProps } from "./spatial-index-tile-layer.js";
|
|
4
|
-
import type { TilejsonResult } from
|
|
3
|
+
import SpatialIndexTileLayer, { SpatialIndexTileLayerProps } from "./spatial-index-tile-layer.js";
|
|
4
|
+
import type { TilejsonResult } from '@carto/api-client';
|
|
5
5
|
export declare const renderSubLayers: (props: any) => QuadbinLayer<any, {
|
|
6
6
|
getQuadbin: (d: any) => any;
|
|
7
7
|
}> | null;
|
|
@@ -15,7 +15,7 @@ export default class QuadbinTileLayer<DataT = any, ExtraProps extends {} = {}> e
|
|
|
15
15
|
static layerName: string;
|
|
16
16
|
static defaultProps: DefaultProps<QuadbinTileLayerProps<unknown>>;
|
|
17
17
|
getLoadOptions(): any;
|
|
18
|
-
renderLayers():
|
|
18
|
+
renderLayers(): SpatialIndexTileLayer | null;
|
|
19
19
|
}
|
|
20
20
|
export {};
|
|
21
21
|
//# sourceMappingURL=quadbin-tile-layer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadbin-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-tile-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadbin-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-tile-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAqB,YAAY,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,YAAY,EAAE,EAAC,iBAAiB,EAAC,2BAAwB;AAEhE,OAAO,qBAAqB,EAAE,EAAC,0BAA0B,EAAC,sCAAmC;AAE7F,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,eAAe;;SAO3B,CAAC;AAOF,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,OAAO,IAAI,sBAAsB,CAAC,KAAK,CAAC,GAChF,mBAAmB,CAAC;AAEtB,4CAA4C;AAC5C,KAAK,sBAAsB,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GACzE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IAChD,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,gBAAgB,CACnC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,YAAY,+CAAgB;IAEnC,cAAc,IAAI,GAAG;IAQrB,YAAY,IAAI,qBAAqB,GAAG,IAAI;CAgB7C"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { CompositeLayer } from '@deck.gl/core';
|
|
2
5
|
import QuadbinLayer from "./quadbin-layer.js";
|
|
3
6
|
import QuadbinTileset2D from "./quadbin-tileset-2d.js";
|
|
@@ -31,18 +34,16 @@ class QuadbinTileLayer extends CompositeLayer {
|
|
|
31
34
|
if (!tileJSON)
|
|
32
35
|
return null;
|
|
33
36
|
const { tiles: data, maxresolution: maxZoom } = tileJSON;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})
|
|
45
|
-
];
|
|
37
|
+
const SubLayerClass = this.getSubLayerClass('spatial-index-tile', SpatialIndexTileLayer);
|
|
38
|
+
return new SubLayerClass(this.props, {
|
|
39
|
+
id: `quadbin-tile-layer-${this.props.id}`,
|
|
40
|
+
data,
|
|
41
|
+
// TODO: Tileset2D should be generic over TileIndex type
|
|
42
|
+
TilesetClass: QuadbinTileset2D,
|
|
43
|
+
renderSubLayers,
|
|
44
|
+
maxZoom,
|
|
45
|
+
loadOptions: this.getLoadOptions()
|
|
46
|
+
});
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
QuadbinTileLayer.layerName = 'QuadbinTileLayer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadbin-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-tileset-2d.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadbin-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-tileset-2d.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,IAAI,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAK5D,KAAK,gBAAgB,GAAG;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IAErD,cAAc,CAAC,IAAI,KAAA,GAAG,gBAAgB,EAAE;IAQxC,SAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,gBAAgB,GAAG,MAAM;IAK3C,eAAe,CAAC,EAAC,CAAC,EAAC,EAAE,gBAAgB;IAKrC,WAAW,CAAC,EAAC,CAAC,EAAC,EAAE,gBAAgB,GAAG,MAAM;IAK1C,cAAc,CAAC,EAAC,CAAC,EAAC,EAAE,gBAAgB,GAAG,gBAAgB;CAGxD"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { _Tileset2D as Tileset2D } from '@deck.gl/geo-layers';
|
|
2
5
|
import { bigIntToHex, cellToParent, cellToTile, getResolution, tileToCell } from 'quadbin';
|
|
3
6
|
export default class QuadbinTileset2D extends Tileset2D {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadbin-utils.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadbin-utils.d.ts","sourceRoot":"","sources":["../../src/layers/quadbin-utils.ts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAIzE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAM5F;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,EAAE,CAKzE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: "#version 300 es\n#define SHADER_NAME raster-layer-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\nin float instanceElevations;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\n\nin vec3 instancePickingColors;\n\n//
|
|
1
|
+
declare const _default: "#version 300 es\n#define SHADER_NAME raster-layer-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\nin float instanceElevations;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\n\nin vec3 instancePickingColors;\n\n// Result\nout vec4 vColor;\n#ifdef FLAT_SHADING\nout vec4 position_commonspace;\n#endif\n\nvoid main(void) {\n // Rather than positioning using attribute, layout pixel grid using gl_InstanceID\n vec2 common_position = column.offset.xy;\n float scale = column.widthScale; // Re-use widthScale prop to pass cell scale\n\n int yIndex = - (gl_InstanceID / BLOCK_WIDTH);\n int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);\n common_position += scale * vec2(float(xIndex), float(yIndex - 1));\n\n vec4 color = column.isStroke ? instanceLineColors : instanceFillColors;\n\n // if alpha == 0.0 or z < 0.0, do not render element\n float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);\n float cellWidth = column.coverage * scale;\n\n // Get position directly from quadbin, rather than projecting\n // Important to set geometry.position before using project_ methods below\n // as geometry.worldPosition is not set (we don't know our lat/long)\n geometry.position = vec4(common_position, 0.0, 1.0);\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n geometry.position.xyz -= project.commonOrigin;\n }\n\n // calculate elevation, if 3d not enabled set to 0\n // cylindar geometry height are between -1.0 to 1.0, transform it to between 0, 1\n float elevation = 0.0;\n // calculate stroke offset\n float strokeOffsetRatio = 1.0;\n\n if (column.extruded) {\n elevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale;\n } else if (column.stroked) {\n float halfOffset = project_pixel_size(column.widthScale) / cellWidth;\n if (column.isStroke) {\n strokeOffsetRatio -= sign(positions.z) * halfOffset;\n } else {\n strokeOffsetRatio -= halfOffset;\n }\n }\n\n geometry.pickingColor = instancePickingColors;\n\n // project center of column\n vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;\n vec3 pos = vec3(offset, project_size(elevation));\n DECKGL_FILTER_SIZE(pos, geometry);\n\n geometry.position.xyz += pos;\n gl_Position = project_common_position_to_clipspace(geometry.position);\n\n geometry.normal = project_normal(normals);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n // Light calculations\n if (column.extruded && !column.isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * layer.opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * layer.opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * layer.opacity);\n }\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=raster-layer-vertex.glsl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster-layer-vertex.glsl.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer-vertex.glsl.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"raster-layer-vertex.glsl.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer-vertex.glsl.ts"],"names":[],"mappings":";AAIA,wBAuFE"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
export default `\
|
|
2
5
|
#version 300 es
|
|
3
6
|
#define SHADER_NAME raster-layer-vertex-shader
|
|
@@ -7,38 +10,30 @@ in float instanceElevations;
|
|
|
7
10
|
in vec4 instanceFillColors;
|
|
8
11
|
in vec4 instanceLineColors;
|
|
9
12
|
in vec3 instancePickingColors;
|
|
10
|
-
uniform float opacity;
|
|
11
|
-
uniform bool extruded;
|
|
12
|
-
uniform bool stroked;
|
|
13
|
-
uniform bool isStroke;
|
|
14
|
-
uniform float coverage;
|
|
15
|
-
uniform float elevationScale;
|
|
16
|
-
uniform float widthScale;
|
|
17
|
-
uniform vec3 offset;
|
|
18
13
|
out vec4 vColor;
|
|
19
14
|
#ifdef FLAT_SHADING
|
|
20
15
|
out vec4 position_commonspace;
|
|
21
16
|
#endif
|
|
22
17
|
void main(void) {
|
|
23
|
-
vec2 common_position = offset.xy;
|
|
24
|
-
float scale =
|
|
18
|
+
vec2 common_position = column.offset.xy;
|
|
19
|
+
float scale = column.widthScale;
|
|
25
20
|
int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
|
|
26
21
|
int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
|
|
27
|
-
common_position += scale * vec2(float(xIndex), float(yIndex));
|
|
28
|
-
vec4 color = isStroke ? instanceLineColors : instanceFillColors;
|
|
22
|
+
common_position += scale * vec2(float(xIndex), float(yIndex - 1));
|
|
23
|
+
vec4 color = column.isStroke ? instanceLineColors : instanceFillColors;
|
|
29
24
|
float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
|
|
30
|
-
float cellWidth = coverage * scale;
|
|
25
|
+
float cellWidth = column.coverage * scale;
|
|
31
26
|
geometry.position = vec4(common_position, 0.0, 1.0);
|
|
32
|
-
if (
|
|
33
|
-
geometry.position.xyz -=
|
|
27
|
+
if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
|
|
28
|
+
geometry.position.xyz -= project.commonOrigin;
|
|
34
29
|
}
|
|
35
30
|
float elevation = 0.0;
|
|
36
31
|
float strokeOffsetRatio = 1.0;
|
|
37
|
-
if (extruded) {
|
|
38
|
-
elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;
|
|
39
|
-
} else if (stroked) {
|
|
40
|
-
float halfOffset = project_pixel_size(widthScale) / cellWidth;
|
|
41
|
-
if (isStroke) {
|
|
32
|
+
if (column.extruded) {
|
|
33
|
+
elevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale;
|
|
34
|
+
} else if (column.stroked) {
|
|
35
|
+
float halfOffset = project_pixel_size(column.widthScale) / cellWidth;
|
|
36
|
+
if (column.isStroke) {
|
|
42
37
|
strokeOffsetRatio -= sign(positions.z) * halfOffset;
|
|
43
38
|
} else {
|
|
44
39
|
strokeOffsetRatio -= halfOffset;
|
|
@@ -52,16 +47,16 @@ geometry.position.xyz += pos;
|
|
|
52
47
|
gl_Position = project_common_position_to_clipspace(geometry.position);
|
|
53
48
|
geometry.normal = project_normal(normals);
|
|
54
49
|
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
55
|
-
if (extruded && !isStroke) {
|
|
50
|
+
if (column.extruded && !column.isStroke) {
|
|
56
51
|
#ifdef FLAT_SHADING
|
|
57
52
|
position_commonspace = geometry.position;
|
|
58
|
-
vColor = vec4(color.rgb, color.a * opacity);
|
|
53
|
+
vColor = vec4(color.rgb, color.a * layer.opacity);
|
|
59
54
|
#else
|
|
60
|
-
vec3 lightColor = lighting_getLightColor(color.rgb,
|
|
61
|
-
vColor = vec4(lightColor, color.a * opacity);
|
|
55
|
+
vec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);
|
|
56
|
+
vColor = vec4(lightColor, color.a * layer.opacity);
|
|
62
57
|
#endif
|
|
63
58
|
} else {
|
|
64
|
-
vColor = vec4(color.rgb, color.a * opacity);
|
|
59
|
+
vColor = vec4(color.rgb, color.a * layer.opacity);
|
|
65
60
|
}
|
|
66
61
|
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
67
62
|
}
|
|
@@ -20,17 +20,17 @@ export default class RasterLayer<DataT = any, ExtraProps = {}> extends Composite
|
|
|
20
20
|
protected getSubLayerAccessor<In, Out>(accessor: Accessor<In, Out>): Accessor<In, Out>;
|
|
21
21
|
getPickingInfo(params: any): {
|
|
22
22
|
color: Uint8Array | null;
|
|
23
|
-
layer: Layer
|
|
24
|
-
sourceLayer?: Layer
|
|
25
|
-
viewport?: import("@deck.gl/core").Viewport
|
|
23
|
+
layer: Layer | null;
|
|
24
|
+
sourceLayer?: Layer | null;
|
|
25
|
+
viewport?: import("@deck.gl/core").Viewport;
|
|
26
26
|
index: number;
|
|
27
27
|
picked: boolean;
|
|
28
28
|
object?: any;
|
|
29
29
|
x: number;
|
|
30
30
|
y: number;
|
|
31
|
-
pixel?: [number, number]
|
|
32
|
-
coordinate?: number[]
|
|
33
|
-
devicePixel?: [number, number]
|
|
31
|
+
pixel?: [number, number];
|
|
32
|
+
coordinate?: number[];
|
|
33
|
+
devicePixel?: [number, number];
|
|
34
34
|
pixelRatio: number;
|
|
35
35
|
};
|
|
36
36
|
_updateAutoHighlight(info: PickingInfo): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAc,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAyD9D,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IAAI,iBAAiB,GAC/D,gBAAgB,CAAC,KAAK,CAAC,GACvB,mBAAmB,CAAC;AAEtB,uCAAuC;AACvC,KAAK,iBAAiB,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAYF,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE,CAAE,SAAQ,cAAc,CACnF,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAC/C;IACC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,YAAY,0CAAgB;IAEnC,KAAK,EAAG;QACN,sBAAsB,EAAE,MAAM,CAAC;QAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IAEF,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;IA8CzC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IAetF,cAAc,CAAC,MAAM,EAAE,GAAG;;;;;;;;;;;;;;;IAa1B,oBAAoB,CAAC,IAAI,EAAE,WAAW;CAoBvC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { CompositeLayer } from '@deck.gl/core';
|
|
2
5
|
import { ColumnLayer } from '@deck.gl/layers';
|
|
3
6
|
import { quadbinToOffset } from "./quadbin-utils.js";
|
|
@@ -62,7 +65,8 @@ class RasterLayer extends CompositeLayer {
|
|
|
62
65
|
return null;
|
|
63
66
|
const blockSize = data.blockSize ?? 0;
|
|
64
67
|
const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
|
|
65
|
-
const offset = [xOffset, yOffset
|
|
68
|
+
const offset = [xOffset, yOffset];
|
|
69
|
+
const lineWidthScale = scale / blockSize;
|
|
66
70
|
// Filled Column Layer
|
|
67
71
|
const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);
|
|
68
72
|
const { highlightedObjectIndex, highlightColor } = this.state;
|
|
@@ -80,6 +84,7 @@ class RasterLayer extends CompositeLayer {
|
|
|
80
84
|
},
|
|
81
85
|
dataComparator: wrappedDataComparator,
|
|
82
86
|
offset,
|
|
87
|
+
lineWidthScale, // Re-use widthScale prop to pass cell scale,
|
|
83
88
|
highlightedObjectIndex,
|
|
84
89
|
highlightColor
|
|
85
90
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList } from '@deck.gl/core';
|
|
2
2
|
import RasterLayer, { RasterLayerProps } from "./raster-layer.js";
|
|
3
|
-
import type { TilejsonResult } from
|
|
3
|
+
import type { TilejsonResult } from '@carto/api-client';
|
|
4
4
|
import { TileLayerProps } from '@deck.gl/geo-layers';
|
|
5
5
|
export declare const renderSubLayers: (props: any) => RasterLayer<any, {
|
|
6
6
|
tileIndex: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-tile-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/layers/raster-tile-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,WAAW,EAAE,EAAC,gBAAgB,EAAC,0BAAuB;AAE7D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAY,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,eAAe;;SAI3B,CAAC;AAOF,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAC9E,mBAAmB,CAAC;AAEtB,2CAA2C;AAC3C,KAAK,qBAAqB,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GACvE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IACpC,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,eAAe,CAClC,KAAK,GAAG,GAAG,EACX,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,YAAY,8CAAgB;IAEnC,cAAc,IAAI,GAAG;IAOrB,YAAY,IAAI,KAAK,GAAG,IAAI,GAAG,UAAU;CAiB1C"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { CompositeLayer } from '@deck.gl/core';
|
|
2
5
|
import RasterLayer from "./raster-layer.js";
|
|
3
6
|
import QuadbinTileset2D from "./quadbin-tileset-2d.js";
|
|
@@ -26,19 +29,17 @@ class RasterTileLayer extends CompositeLayer {
|
|
|
26
29
|
if (!tileJSON)
|
|
27
30
|
return null;
|
|
28
31
|
const { tiles: data, minzoom: minZoom, maxzoom: maxZoom } = tileJSON;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
})
|
|
41
|
-
];
|
|
32
|
+
const SubLayerClass = this.getSubLayerClass('tile', TileLayer);
|
|
33
|
+
return new SubLayerClass(this.props, {
|
|
34
|
+
id: `raster-tile-layer-${this.props.id}`,
|
|
35
|
+
data,
|
|
36
|
+
// TODO: Tileset2D should be generic over TileIndex type
|
|
37
|
+
TilesetClass: QuadbinTileset2D,
|
|
38
|
+
renderSubLayers,
|
|
39
|
+
minZoom,
|
|
40
|
+
maxZoom,
|
|
41
|
+
loadOptions: this.getLoadOptions()
|
|
42
|
+
});
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
RasterTileLayer.layerName = 'RasterTileLayer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carto-properties-tile-loader.d.ts","sourceRoot":"","sources":["../../../src/layers/schema/carto-properties-tile-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"carto-properties-tile-loader.d.ts","sourceRoot":"","sources":["../../../src/layers/schema/carto-properties-tile-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKzE,QAAA,MAAM,yBAAyB,EAAE,gBAYhC,CAAC;AAOF,eAAe,yBAAyB,CAAC"}
|