@deck.gl/carto 9.0.40 → 9.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/basemap.d.ts +2 -1
- package/dist/api/basemap.d.ts.map +1 -1
- package/dist/api/basemap.js +4 -0
- package/dist/api/basemap.js.map +1 -0
- package/dist/api/fetch-map.d.ts.map +1 -1
- package/dist/api/fetch-map.js +33 -28
- package/dist/api/fetch-map.js.map +1 -0
- package/dist/api/index.d.ts +1 -4
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -2
- package/dist/api/index.js.map +1 -0
- package/dist/api/layer-map.d.ts.map +1 -1
- package/dist/api/layer-map.js +7 -3
- package/dist/api/layer-map.js.map +1 -0
- package/dist/api/parse-map.d.ts.map +1 -1
- package/dist/api/parse-map.js +4 -0
- package/dist/api/parse-map.js.map +1 -0
- package/dist/api/types.d.ts +0 -56
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +5 -20
- package/dist/api/types.js.map +1 -0
- package/dist/basemap.d.ts +2 -1
- package/dist/basemap.d.ts.map +1 -1
- package/dist/basemap.js +5 -1
- package/dist/basemap.js.map +1 -0
- package/dist/cartoRasterTile-worker.js +147 -18
- package/dist/cartoSpatialTile-worker.js +150 -19
- package/dist/cartoVectorTile-worker.js +151 -19
- package/dist/constants.d.ts +0 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -3
- package/dist/constants.js.map +1 -0
- package/dist/dist.dev.js +4262 -3235
- package/dist/index.cjs +263 -555
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +20 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -0
- 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 +5 -0
- package/dist/layers/cluster-tile-layer.js.map +1 -0
- package/dist/layers/cluster-utils.d.ts.map +1 -1
- package/dist/layers/cluster-utils.js +4 -0
- package/dist/layers/cluster-utils.js.map +1 -0
- package/dist/layers/h3-tile-layer.d.ts +1 -1
- package/dist/layers/h3-tile-layer.d.ts.map +1 -1
- package/dist/layers/h3-tile-layer.js +4 -0
- package/dist/layers/h3-tile-layer.js.map +1 -0
- package/dist/layers/h3-tileset-2d.d.ts.map +1 -1
- package/dist/layers/h3-tileset-2d.js +4 -0
- package/dist/layers/h3-tileset-2d.js.map +1 -0
- package/dist/layers/heatmap-tile-layer.d.ts +1 -1
- package/dist/layers/heatmap-tile-layer.d.ts.map +1 -1
- package/dist/layers/heatmap-tile-layer.js +24 -7
- package/dist/layers/heatmap-tile-layer.js.map +1 -0
- package/dist/layers/heatmap.d.ts +3 -3
- package/dist/layers/heatmap.d.ts.map +1 -1
- package/dist/layers/heatmap.js +70 -36
- package/dist/layers/heatmap.js.map +1 -0
- package/dist/layers/point-label-layer.d.ts.map +1 -1
- package/dist/layers/point-label-layer.js +6 -2
- package/dist/layers/point-label-layer.js.map +1 -0
- package/dist/layers/post-process-utils.d.ts +1 -1
- package/dist/layers/post-process-utils.d.ts.map +1 -1
- package/dist/layers/post-process-utils.js +11 -6
- package/dist/layers/post-process-utils.js.map +1 -0
- package/dist/layers/quadbin-layer.d.ts.map +1 -1
- package/dist/layers/quadbin-layer.js +4 -0
- package/dist/layers/quadbin-layer.js.map +1 -0
- package/dist/layers/quadbin-tile-layer.d.ts +1 -1
- package/dist/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/dist/layers/quadbin-tile-layer.js +4 -0
- package/dist/layers/quadbin-tile-layer.js.map +1 -0
- package/dist/layers/quadbin-tileset-2d.d.ts.map +1 -1
- package/dist/layers/quadbin-tileset-2d.js +4 -0
- package/dist/layers/quadbin-tileset-2d.js.map +1 -0
- package/dist/layers/quadbin-utils.d.ts.map +1 -1
- package/dist/layers/quadbin-utils.js +4 -0
- package/dist/layers/quadbin-utils.js.map +1 -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 +21 -25
- package/dist/layers/raster-layer-vertex.glsl.js.map +1 -0
- 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 +7 -1
- package/dist/layers/raster-layer.js.map +1 -0
- 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 +4 -0
- package/dist/layers/raster-tile-layer.js.map +1 -0
- package/dist/layers/schema/carto-properties-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-properties-tile-loader.js +4 -0
- package/dist/layers/schema/carto-properties-tile-loader.js.map +1 -0
- package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-properties-tile.js +4 -0
- package/dist/layers/schema/carto-properties-tile.js.map +1 -0
- package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-raster-tile-loader.js +6 -1
- package/dist/layers/schema/carto-raster-tile-loader.js.map +1 -0
- package/dist/layers/schema/carto-raster-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-raster-tile.js +4 -0
- package/dist/layers/schema/carto-raster-tile.js.map +1 -0
- package/dist/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-spatial-tile-loader.js +5 -1
- package/dist/layers/schema/carto-spatial-tile-loader.js.map +1 -0
- package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-spatial-tile.js +4 -0
- package/dist/layers/schema/carto-spatial-tile.js.map +1 -0
- package/dist/layers/schema/carto-tile.d.ts.map +1 -1
- package/dist/layers/schema/carto-tile.js +4 -0
- package/dist/layers/schema/carto-tile.js.map +1 -0
- package/dist/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
- package/dist/layers/schema/carto-vector-tile-loader.js +5 -1
- package/dist/layers/schema/carto-vector-tile-loader.js.map +1 -0
- package/dist/layers/schema/fast-pbf.d.ts.map +1 -1
- package/dist/layers/schema/fast-pbf.js +4 -0
- package/dist/layers/schema/fast-pbf.js.map +1 -0
- package/dist/layers/schema/spatialjson-utils.d.ts.map +1 -1
- package/dist/layers/schema/spatialjson-utils.js +4 -0
- package/dist/layers/schema/spatialjson-utils.js.map +1 -0
- package/dist/layers/schema/tile-loader-utils.d.ts.map +1 -1
- package/dist/layers/schema/tile-loader-utils.js +4 -0
- package/dist/layers/schema/tile-loader-utils.js.map +1 -0
- package/dist/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/dist/layers/spatial-index-tile-layer.js +4 -0
- package/dist/layers/spatial-index-tile-layer.js.map +1 -0
- package/dist/layers/utils.d.ts +2 -2
- package/dist/layers/utils.d.ts.map +1 -1
- package/dist/layers/utils.js +4 -0
- package/dist/layers/utils.js.map +1 -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 +4 -0
- package/dist/layers/vector-tile-layer.js.map +1 -0
- package/dist/style/color-bins-style.d.ts.map +1 -1
- package/dist/style/color-bins-style.js +4 -0
- package/dist/style/color-bins-style.js.map +1 -0
- package/dist/style/color-categories-style.d.ts.map +1 -1
- package/dist/style/color-categories-style.js +4 -0
- package/dist/style/color-categories-style.js.map +1 -0
- package/dist/style/color-continuous-style.d.ts.map +1 -1
- package/dist/style/color-continuous-style.js +4 -0
- package/dist/style/color-continuous-style.js.map +1 -0
- package/dist/style/palette.d.ts.map +1 -1
- package/dist/style/palette.js +4 -0
- package/dist/style/palette.js.map +1 -0
- package/dist/style/utils.d.ts.map +1 -1
- package/dist/style/utils.js +4 -0
- package/dist/style/utils.js.map +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -0
- package/dist/utils.js.map +1 -0
- package/dist/workers/cartoRasterTile.js +4 -0
- package/dist/workers/cartoRasterTile.js.map +1 -0
- package/dist/workers/cartoSpatialTile.js +4 -0
- package/dist/workers/cartoSpatialTile.js.map +1 -0
- package/dist/workers/cartoVectorTile.js +4 -0
- package/dist/workers/cartoVectorTile.js.map +1 -0
- package/dist.min.js +113 -73
- package/package.json +13 -11
- package/src/api/basemap.ts +6 -1
- package/src/api/fetch-map.ts +56 -61
- package/src/api/index.ts +5 -13
- package/src/api/layer-map.ts +7 -3
- 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 +19 -18
- package/src/layers/cluster-tile-layer.ts +6 -1
- package/src/layers/cluster-utils.ts +4 -0
- package/src/layers/h3-tile-layer.ts +5 -1
- package/src/layers/h3-tileset-2d.ts +4 -0
- package/src/layers/heatmap-tile-layer.ts +29 -8
- package/src/layers/heatmap.ts +8 -2
- package/src/layers/point-label-layer.ts +6 -2
- package/src/layers/post-process-utils.ts +11 -6
- package/src/layers/quadbin-layer.ts +4 -0
- package/src/layers/quadbin-tile-layer.ts +5 -1
- 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 +6 -2
- 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 +7 -1
- 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
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {ShaderModule} from '@luma.gl/shadertools';
|
|
1
6
|
import {getResolution} from 'quadbin';
|
|
2
7
|
|
|
3
8
|
import {
|
|
@@ -15,7 +20,7 @@ import {HeatmapProps, heatmap} from './heatmap';
|
|
|
15
20
|
import {RTTModifier, PostProcessModifier} from './post-process-utils';
|
|
16
21
|
import QuadbinTileLayer, {QuadbinTileLayerProps} from './quadbin-tile-layer';
|
|
17
22
|
import {TilejsonPropType} from './utils';
|
|
18
|
-
import {TilejsonResult} from '
|
|
23
|
+
import {TilejsonResult} from '@carto/api-client';
|
|
19
24
|
import {_Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';
|
|
20
25
|
import {Texture, TextureProps} from '@luma.gl/core';
|
|
21
26
|
|
|
@@ -64,6 +69,21 @@ function colorRangeToFlatArray(colorRange: Color[]): Uint8Array {
|
|
|
64
69
|
return flatArray;
|
|
65
70
|
}
|
|
66
71
|
|
|
72
|
+
const uniformBlock = `\
|
|
73
|
+
uniform densityUniforms {
|
|
74
|
+
float factor;
|
|
75
|
+
} density;
|
|
76
|
+
`;
|
|
77
|
+
|
|
78
|
+
type DensityProps = {factor: number};
|
|
79
|
+
const densityUniforms = {
|
|
80
|
+
name: 'density',
|
|
81
|
+
vs: uniformBlock,
|
|
82
|
+
uniformTypes: {
|
|
83
|
+
factor: 'f32'
|
|
84
|
+
}
|
|
85
|
+
} as const satisfies ShaderModule<DensityProps>;
|
|
86
|
+
|
|
67
87
|
// Modified polygon layer to draw offscreen and output value expected by heatmap
|
|
68
88
|
class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
|
|
69
89
|
static layerName = 'RTTSolidPolygonLayer';
|
|
@@ -71,16 +91,13 @@ class RTTSolidPolygonLayer extends RTTModifier(SolidPolygonLayer) {
|
|
|
71
91
|
getShaders(type) {
|
|
72
92
|
const shaders = super.getShaders(type);
|
|
73
93
|
shaders.inject = {
|
|
74
|
-
'vs:#decl': `
|
|
75
|
-
uniform float densityFactor;
|
|
76
|
-
`,
|
|
77
94
|
'vs:#main-end': `
|
|
78
95
|
// Value from getWeight accessor
|
|
79
96
|
float weight = elevations;
|
|
80
97
|
|
|
81
98
|
// Keep "power" delivered to screen constant when tiles update
|
|
82
|
-
// by outputting normalized density
|
|
83
|
-
weight *=
|
|
99
|
+
// by outputting normalized density
|
|
100
|
+
weight *= density.factor;
|
|
84
101
|
|
|
85
102
|
// Pack float into 3 channels to pass to heatmap shader
|
|
86
103
|
// SCALE value important, as we don't want to saturate
|
|
@@ -93,15 +110,18 @@ uniform float densityFactor;
|
|
|
93
110
|
vColor = vec4(mod(vec3(weight, floor(weight / SHIFT.yz)), 256.0), 255.0) / 255.0;
|
|
94
111
|
`
|
|
95
112
|
};
|
|
113
|
+
shaders.modules = [...shaders.modules, densityUniforms];
|
|
96
114
|
return shaders;
|
|
97
115
|
}
|
|
98
116
|
|
|
99
117
|
draw(this, opts: any) {
|
|
100
118
|
const cell = this.props!.data[0];
|
|
101
119
|
const maxDensity = this.props.elevationScale;
|
|
102
|
-
const
|
|
120
|
+
const densityProps: DensityProps = {
|
|
121
|
+
factor: unitDensityForCell(cell.id) / maxDensity
|
|
122
|
+
};
|
|
103
123
|
for (const model of this.state.models) {
|
|
104
|
-
model.
|
|
124
|
+
model.shaderInputs.setProps({density: densityProps});
|
|
105
125
|
}
|
|
106
126
|
|
|
107
127
|
super.draw(opts);
|
|
@@ -305,6 +325,7 @@ class HeatmapTileLayer<DataT = any, ExtraProps extends {} = {}> extends Composit
|
|
|
305
325
|
(colorTexture as any).setSubImageData({data: colors});
|
|
306
326
|
} else {
|
|
307
327
|
colorTexture?.destroy();
|
|
328
|
+
// @ts-ignore TODO v9.1
|
|
308
329
|
colorTexture = this.context.device.createTexture({
|
|
309
330
|
...TEXTURE_PROPS,
|
|
310
331
|
data: colors,
|
package/src/layers/heatmap.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import type {ShaderPass} from '@luma.gl/shadertools';
|
|
2
6
|
import {Texture} from '@luma.gl/core';
|
|
3
|
-
const glsl = (s: TemplateStringsArray) => `${s}`;
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* @filter Heatmap
|
|
@@ -11,7 +14,7 @@ const glsl = (s: TemplateStringsArray) => `${s}`;
|
|
|
11
14
|
* @param opacity Output opacity
|
|
12
15
|
*/
|
|
13
16
|
|
|
14
|
-
const fs = glsl`\
|
|
17
|
+
const fs = /* glsl */ `\
|
|
15
18
|
uniform heatmapUniforms {
|
|
16
19
|
vec2 colorDomain;
|
|
17
20
|
vec2 delta;
|
|
@@ -134,6 +137,7 @@ export const heatmap = {
|
|
|
134
137
|
opacity: 'f32',
|
|
135
138
|
radiusPixels: 'f32'
|
|
136
139
|
},
|
|
140
|
+
// @ts-ignore TODO v9.1
|
|
137
141
|
getUniforms: opts => {
|
|
138
142
|
if (!opts) return {};
|
|
139
143
|
const {
|
|
@@ -155,7 +159,9 @@ export const heatmap = {
|
|
|
155
159
|
},
|
|
156
160
|
fs,
|
|
157
161
|
passes: [
|
|
162
|
+
// @ts-expect-error Seems typing in luma.gl should be Partial<>
|
|
158
163
|
{sampler: true, uniforms: {delta: [1, 0]}},
|
|
164
|
+
// @ts-expect-error Seems typing in luma.gl should be Partial<>
|
|
159
165
|
{sampler: true, uniforms: {delta: [0, 1]}}
|
|
160
166
|
]
|
|
161
167
|
} as const satisfies ShaderPass<HeatmapProps & PassProps>;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {
|
|
2
6
|
Accessor,
|
|
3
7
|
Color,
|
|
@@ -24,10 +28,10 @@ class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
|
|
|
24
28
|
|
|
25
29
|
// Modify shader so that the padding is offset by the pixel offset to ensure the padding
|
|
26
30
|
// always captures the anchor point. As padding is uniform we cannot pass it a per-label value
|
|
27
|
-
vs = vs.replaceAll('padding.', '_padding.');
|
|
31
|
+
vs = vs.replaceAll('textBackground.padding.', '_padding.');
|
|
28
32
|
vs = vs.replace(
|
|
29
33
|
'void main(void) {',
|
|
30
|
-
'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'
|
|
34
|
+
'void main(void) {\n vec4 _padding = textBackground.padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'
|
|
31
35
|
);
|
|
32
36
|
|
|
33
37
|
return {...shaders, vs};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {Framebuffer, TextureProps} from '@luma.gl/core';
|
|
2
6
|
import type {ShaderPass} from '@luma.gl/shadertools';
|
|
3
7
|
import {
|
|
@@ -68,8 +72,8 @@ export function RTTModifier<T extends _ConstructorOf<Layer>>(BaseLayer: T): T {
|
|
|
68
72
|
static layerName = `RTT-${BaseLayer.layerName}`;
|
|
69
73
|
|
|
70
74
|
draw(this: RTTLayer, opts: any) {
|
|
71
|
-
const {
|
|
72
|
-
const {picking} =
|
|
75
|
+
const {shaderModuleProps} = opts;
|
|
76
|
+
const {picking} = shaderModuleProps;
|
|
73
77
|
const postProcessLayer = getPostProcessLayer(this);
|
|
74
78
|
|
|
75
79
|
if (!picking.isActive) {
|
|
@@ -134,10 +138,11 @@ export function PostProcessModifier<T extends Constructor<DrawableCompositeLayer
|
|
|
134
138
|
|
|
135
139
|
_resizeBuffers(this: PostProcessLayer, opts: any) {
|
|
136
140
|
// TODO we could likely render to a smaller buffer for better perf
|
|
137
|
-
const {
|
|
141
|
+
const {shaderModuleProps} = opts;
|
|
138
142
|
const {viewport} = this.context;
|
|
139
|
-
const
|
|
140
|
-
const
|
|
143
|
+
const {devicePixelRatio} = shaderModuleProps.project;
|
|
144
|
+
const width = devicePixelRatio * viewport.width;
|
|
145
|
+
const height = devicePixelRatio * viewport.height;
|
|
141
146
|
this.internalState.renderBuffers.forEach((fbo: Framebuffer) => fbo.resize({width, height}));
|
|
142
147
|
}
|
|
143
148
|
|
|
@@ -192,7 +197,7 @@ export function PostProcessModifier<T extends Constructor<DrawableCompositeLayer
|
|
|
192
197
|
}
|
|
193
198
|
|
|
194
199
|
const fs = /* glsl */ `\
|
|
195
|
-
vec4
|
|
200
|
+
vec4 copy_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
196
201
|
return color;
|
|
197
202
|
}
|
|
198
203
|
`;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';
|
|
2
6
|
import QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';
|
|
3
7
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
4
8
|
import SpatialIndexTileLayer, {SpatialIndexTileLayerProps} from './spatial-index-tile-layer';
|
|
5
9
|
import {hexToBigInt} from 'quadbin';
|
|
6
|
-
import type {TilejsonResult} from '
|
|
10
|
+
import type {TilejsonResult} from '@carto/api-client';
|
|
7
11
|
import {injectAccessToken, TilejsonPropType} from './utils';
|
|
8
12
|
import {DEFAULT_TILE_SIZE} from '../constants';
|
|
9
13
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
export default `\
|
|
2
6
|
#version 300 es
|
|
3
7
|
#define SHADER_NAME raster-layer-vertex-shader
|
|
@@ -11,16 +15,6 @@ in vec4 instanceLineColors;
|
|
|
11
15
|
|
|
12
16
|
in vec3 instancePickingColors;
|
|
13
17
|
|
|
14
|
-
// Custom uniforms
|
|
15
|
-
uniform float opacity;
|
|
16
|
-
uniform bool extruded;
|
|
17
|
-
uniform bool stroked;
|
|
18
|
-
uniform bool isStroke;
|
|
19
|
-
uniform float coverage;
|
|
20
|
-
uniform float elevationScale;
|
|
21
|
-
uniform float widthScale;
|
|
22
|
-
uniform vec3 offset;
|
|
23
|
-
|
|
24
18
|
// Result
|
|
25
19
|
out vec4 vColor;
|
|
26
20
|
#ifdef FLAT_SHADING
|
|
@@ -29,8 +23,8 @@ out vec4 position_commonspace;
|
|
|
29
23
|
|
|
30
24
|
void main(void) {
|
|
31
25
|
// Rather than positioning using attribute, layout pixel grid using gl_InstanceID
|
|
32
|
-
vec2 tileOrigin = offset.xy;
|
|
33
|
-
float scale =
|
|
26
|
+
vec2 tileOrigin = column.offset.xy;
|
|
27
|
+
float scale = column.widthScale; // Re-use widthScale prop to pass cell scale
|
|
34
28
|
|
|
35
29
|
int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
|
|
36
30
|
int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
|
|
@@ -38,18 +32,18 @@ void main(void) {
|
|
|
38
32
|
// Avoid precision issues by applying 0.5 offset here, rather than when laying out vertices
|
|
39
33
|
vec2 cellCenter = scale * vec2(float(xIndex) + 0.5, float(yIndex) - 0.5);
|
|
40
34
|
|
|
41
|
-
vec4 color = isStroke ? instanceLineColors : instanceFillColors;
|
|
35
|
+
vec4 color = column.isStroke ? instanceLineColors : instanceFillColors;
|
|
42
36
|
|
|
43
37
|
// if alpha == 0.0 or z < 0.0, do not render element
|
|
44
38
|
float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
|
|
45
|
-
float cellWidth = coverage * scale;
|
|
39
|
+
float cellWidth = column.coverage * scale;
|
|
46
40
|
|
|
47
41
|
// Get position directly from quadbin, rather than projecting
|
|
48
42
|
// Important to set geometry.position before using project_ methods below
|
|
49
43
|
// as geometry.worldPosition is not set (we don't know our lat/long)
|
|
50
44
|
geometry.position = vec4(tileOrigin + cellCenter, 0.0, 1.0);
|
|
51
|
-
if (
|
|
52
|
-
geometry.position.xyz -=
|
|
45
|
+
if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
|
|
46
|
+
geometry.position.xyz -= project.commonOrigin;
|
|
53
47
|
}
|
|
54
48
|
|
|
55
49
|
// calculate elevation, if 3d not enabled set to 0
|
|
@@ -58,11 +52,11 @@ void main(void) {
|
|
|
58
52
|
// calculate stroke offset
|
|
59
53
|
float strokeOffsetRatio = 1.0;
|
|
60
54
|
|
|
61
|
-
if (extruded) {
|
|
62
|
-
elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;
|
|
63
|
-
} else if (stroked) {
|
|
64
|
-
float halfOffset = project_pixel_size(widthScale) / cellWidth;
|
|
65
|
-
if (isStroke) {
|
|
55
|
+
if (column.extruded) {
|
|
56
|
+
elevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale;
|
|
57
|
+
} else if (column.stroked) {
|
|
58
|
+
float halfOffset = project_pixel_size(column.widthScale) / cellWidth;
|
|
59
|
+
if (column.isStroke) {
|
|
66
60
|
strokeOffsetRatio -= sign(positions.z) * halfOffset;
|
|
67
61
|
} else {
|
|
68
62
|
strokeOffsetRatio -= halfOffset;
|
|
@@ -72,7 +66,7 @@ void main(void) {
|
|
|
72
66
|
geometry.pickingColor = instancePickingColors;
|
|
73
67
|
|
|
74
68
|
// Cell coordinates centered on origin
|
|
75
|
-
vec2 base = positions.xy * scale * strokeOffsetRatio * coverage * shouldRender;
|
|
69
|
+
vec2 base = positions.xy * scale * strokeOffsetRatio * column.coverage * shouldRender;
|
|
76
70
|
vec3 cell = vec3(base, project_size(elevation));
|
|
77
71
|
DECKGL_FILTER_SIZE(cell, geometry);
|
|
78
72
|
|
|
@@ -83,16 +77,16 @@ void main(void) {
|
|
|
83
77
|
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
84
78
|
|
|
85
79
|
// Light calculations
|
|
86
|
-
if (extruded && !isStroke) {
|
|
80
|
+
if (column.extruded && !column.isStroke) {
|
|
87
81
|
#ifdef FLAT_SHADING
|
|
88
82
|
position_commonspace = geometry.position;
|
|
89
|
-
vColor = vec4(color.rgb, color.a * opacity);
|
|
83
|
+
vColor = vec4(color.rgb, color.a * layer.opacity);
|
|
90
84
|
#else
|
|
91
|
-
vec3 lightColor = lighting_getLightColor(color.rgb,
|
|
92
|
-
vColor = vec4(lightColor, color.a * opacity);
|
|
85
|
+
vec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);
|
|
86
|
+
vColor = vec4(lightColor, color.a * layer.opacity);
|
|
93
87
|
#endif
|
|
94
88
|
} else {
|
|
95
|
-
vColor = vec4(color.rgb, color.a * opacity);
|
|
89
|
+
vColor = vec4(color.rgb, color.a * layer.opacity);
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {
|
|
2
6
|
Accessor,
|
|
3
7
|
CompositeLayer,
|
|
@@ -115,7 +119,8 @@ export default class RasterLayer<DataT = any, ExtraProps = {}> extends Composite
|
|
|
115
119
|
|
|
116
120
|
const blockSize = data.blockSize ?? 0;
|
|
117
121
|
const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
|
|
118
|
-
const offset = [xOffset, yOffset
|
|
122
|
+
const offset = [xOffset, yOffset];
|
|
123
|
+
const lineWidthScale = scale / blockSize;
|
|
119
124
|
|
|
120
125
|
// Filled Column Layer
|
|
121
126
|
const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);
|
|
@@ -138,6 +143,7 @@ export default class RasterLayer<DataT = any, ExtraProps = {}> extends Composite
|
|
|
138
143
|
},
|
|
139
144
|
dataComparator: wrappedDataComparator,
|
|
140
145
|
offset,
|
|
146
|
+
lineWidthScale, // Re-use widthScale prop to pass cell scale,
|
|
141
147
|
highlightedObjectIndex,
|
|
142
148
|
highlightColor,
|
|
143
149
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {
|
|
2
6
|
CompositeLayer,
|
|
3
7
|
CompositeLayerProps,
|
|
@@ -8,7 +12,7 @@ import {
|
|
|
8
12
|
} from '@deck.gl/core';
|
|
9
13
|
import RasterLayer, {RasterLayerProps} from './raster-layer';
|
|
10
14
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
11
|
-
import type {TilejsonResult} from '
|
|
15
|
+
import type {TilejsonResult} from '@carto/api-client';
|
|
12
16
|
import {injectAccessToken, TilejsonPropType} from './utils';
|
|
13
17
|
import {DEFAULT_TILE_SIZE} from '../constants';
|
|
14
18
|
import {TileLayer, TileLayerProps} from '@deck.gl/geo-layers';
|
|
@@ -61,7 +65,7 @@ export default class RasterTileLayer<
|
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
renderLayers(): Layer | null | LayersList {
|
|
64
|
-
const tileJSON = this.props.data as TilejsonResult
|
|
68
|
+
const tileJSON = this.props.data as TilejsonResult;
|
|
65
69
|
if (!tileJSON) return null;
|
|
66
70
|
|
|
67
71
|
const {tiles: data, minzoom: minZoom, maxzoom: maxZoom, raster_metadata: metadata} = tileJSON;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
6
|
+
import type {RasterMetadata} from '@carto/api-client';
|
|
2
7
|
|
|
3
8
|
import {TileReader} from './carto-raster-tile';
|
|
4
9
|
import {parsePbf} from './tile-loader-utils';
|
|
@@ -10,7 +15,7 @@ const id = 'cartoRasterTile';
|
|
|
10
15
|
|
|
11
16
|
type CartoRasterTileLoaderOptions = LoaderOptions & {
|
|
12
17
|
cartoRasterTile?: {
|
|
13
|
-
metadata:
|
|
18
|
+
metadata: RasterMetadata | null;
|
|
14
19
|
workerUrl: string;
|
|
15
20
|
};
|
|
16
21
|
};
|
|
@@ -52,6 +57,7 @@ function parseCartoRasterTile(
|
|
|
52
57
|
): Raster | null {
|
|
53
58
|
const metadata = options?.cartoRasterTile?.metadata;
|
|
54
59
|
if (!arrayBuffer || !metadata) return null;
|
|
60
|
+
// @ts-expect-error Upstream type needs to be updated
|
|
55
61
|
TileReader.compression = metadata.compression;
|
|
56
62
|
const out = parsePbf(arrayBuffer, TileReader);
|
|
57
63
|
const {bands, blockSize} = out;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {readPackedTypedArray} from './fast-pbf';
|
|
2
6
|
import {Indices, IndexScheme} from './spatialjson-utils';
|
|
3
7
|
import {NumericProp, NumericPropKeyValueReader, PropertiesReader} from './carto-tile';
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import earcut from 'earcut';
|
|
2
6
|
import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
3
7
|
import type {BinaryFeatureCollection, BinaryPolygonFeature, TypedArray} from '@loaders.gl/schema';
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {registerLoaders} from '@loaders.gl/core';
|
|
2
6
|
import {DefaultProps, LayerProps} from '@deck.gl/core';
|
|
3
7
|
import CartoRasterTileLoader from './schema/carto-raster-tile-loader';
|
package/src/layers/utils.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {log} from '@deck.gl/core';
|
|
2
6
|
import {Tile as PropertiesTile} from './schema/carto-properties-tile';
|
|
3
7
|
import {Tile as VectorTile} from './schema/carto-tile';
|
|
4
8
|
import {_deepEqual as deepEqual} from '@deck.gl/core';
|
|
5
|
-
import type {TilejsonResult} from '
|
|
9
|
+
import type {TilejsonResult} from '@carto/api-client';
|
|
6
10
|
|
|
7
11
|
/**
|
|
8
12
|
* Adds access token to Authorization header in loadOptions
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {registerLoaders} from '@loaders.gl/core';
|
|
2
6
|
import CartoPropertiesTileLoader from './schema/carto-properties-tile-loader';
|
|
3
7
|
import CartoVectorTileLoader from './schema/carto-vector-tile-loader';
|
|
@@ -15,7 +19,7 @@ import {
|
|
|
15
19
|
} from '@deck.gl/geo-layers';
|
|
16
20
|
import {GeoJsonLayer} from '@deck.gl/layers';
|
|
17
21
|
|
|
18
|
-
import type {TilejsonResult} from '
|
|
22
|
+
import type {TilejsonResult} from '@carto/api-client';
|
|
19
23
|
import {TilejsonPropType, injectAccessToken, mergeBoundaryData} from './utils';
|
|
20
24
|
import {DEFAULT_TILE_SIZE} from '../constants';
|
|
21
25
|
|
package/src/style/palette.ts
CHANGED
package/src/style/utils.ts
CHANGED
package/src/utils.ts
CHANGED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { APIErrorContext } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* Custom error for reported errors in CARTO Maps API.
|
|
5
|
-
* Provides useful debugging information in console and context for applications.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
export declare class CartoAPIError extends Error {
|
|
9
|
-
/** Source error from server */
|
|
10
|
-
error: Error;
|
|
11
|
-
/** Context (API call & parameters) in which error occured */
|
|
12
|
-
errorContext: APIErrorContext;
|
|
13
|
-
/** Response from server */
|
|
14
|
-
response?: Response;
|
|
15
|
-
/** JSON Response from server */
|
|
16
|
-
responseJson?: any;
|
|
17
|
-
constructor(error: Error, errorContext: APIErrorContext, response?: Response, responseJson?: any);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=carto-api-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carto-api-error.d.ts","sourceRoot":"","sources":["../../src/api/carto-api-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,mBAAgB;AAE7C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,+BAA+B;IAC/B,KAAK,EAAE,KAAK,CAAC;IAEb,6DAA6D;IAC7D,YAAY,EAAE,eAAe,CAAC;IAE9B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,gCAAgC;IAChC,YAAY,CAAC,EAAE,GAAG,CAAC;gBAGjB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,QAAQ,EACnB,YAAY,CAAC,EAAE,GAAG;CAmCrB"}
|