@deck.gl/carto 8.10.0-alpha.4 → 8.10.0-alpha.6
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/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +64 -715
- package/dist/es5/api/carto-api-error.js +3 -7
- package/dist/es5/api/carto-api-error.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +196 -200
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +50 -54
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tileset-2d.js +62 -68
- package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
- package/dist/es5/layers/point-label-layer.js +160 -165
- package/dist/es5/layers/point-label-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js +23 -27
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +31 -34
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/raster-layer.js +94 -98
- package/dist/es5/layers/raster-layer.js.map +1 -1
- package/dist/es5/layers/raster-tile-layer.js +28 -33
- package/dist/es5/layers/raster-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
- package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
- package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +161 -196
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/es5/layers/vector-tile-layer.js +83 -90
- package/dist/es5/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/api/carto-api-error.js +8 -13
- package/dist/esm/api/carto-api-error.js.map +1 -1
- package/dist/esm/api/layer-map.js +4 -4
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +3 -3
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +7 -7
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +12 -12
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +4 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +3 -3
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +12 -15
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +3 -6
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/point-label-layer.js +6 -10
- package/dist/esm/layers/point-label-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js +2 -5
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +3 -6
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/layers/raster-layer.js +4 -8
- package/dist/esm/layers/raster-layer.js.map +1 -1
- package/dist/esm/layers/raster-tile-layer.js +3 -6
- package/dist/esm/layers/raster-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/layers/utils.js +1 -1
- package/dist/esm/layers/utils.js.map +1 -1
- package/dist/esm/layers/vector-tile-layer.js +2 -5
- package/dist/esm/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/sources/base-source.js +1 -1
- package/dist/esm/sources/base-source.js.map +1 -1
- package/dist/esm/sources/utils.js +2 -2
- package/dist/esm/sources/utils.js.map +1 -1
- package/dist/esm/style/palette.js +2 -2
- package/dist/esm/style/palette.js.map +1 -1
- package/dist/esm/style/utils.js +1 -1
- package/dist/esm/style/utils.js.map +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist.min.js +46 -25
- package/package.json +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { CompositeLayer } from '@deck.gl/core';
|
|
3
2
|
import { TextLayer, _TextBackgroundLayer as TextBackgroundLayer } from '@deck.gl/layers';
|
|
4
3
|
const [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];
|
|
@@ -16,7 +15,7 @@ class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
|
|
|
16
15
|
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
EnhancedTextBackgroundLayer.layerName = 'EnhancedTextBackgroundLayer';
|
|
20
19
|
|
|
21
20
|
class EnhancedTextLayer extends TextLayer {
|
|
22
21
|
filterSubLayer({
|
|
@@ -34,8 +33,7 @@ class EnhancedTextLayer extends TextLayer {
|
|
|
34
33
|
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
EnhancedTextLayer.layerName = 'EnhancedTextLayer';
|
|
39
37
|
const defaultProps = { ...TextLayer.defaultProps,
|
|
40
38
|
getRadius: {
|
|
41
39
|
type: 'accessor',
|
|
@@ -168,12 +166,12 @@ export default class PointLabelLayer extends CompositeLayer {
|
|
|
168
166
|
} = this.props;
|
|
169
167
|
const getPixelOffset = this.calculatePixelOffset(false);
|
|
170
168
|
const backgroundPadding = this.calculateBackgroundPadding();
|
|
171
|
-
const out = [this.renderTextLayer(
|
|
169
|
+
const out = [this.renderTextLayer(`${updateTriggers.getText}-primary`, {
|
|
172
170
|
backgroundPadding,
|
|
173
171
|
getText,
|
|
174
172
|
getPixelOffset,
|
|
175
173
|
background: true
|
|
176
|
-
}), Boolean(getSecondaryText) && this.renderTextLayer(
|
|
174
|
+
}), Boolean(getSecondaryText) && this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {
|
|
177
175
|
getText: getSecondaryText,
|
|
178
176
|
getPixelOffset: this.calculatePixelOffset(true),
|
|
179
177
|
getAlignmentBaseline: 'top',
|
|
@@ -191,8 +189,6 @@ export default class PointLabelLayer extends CompositeLayer {
|
|
|
191
189
|
}
|
|
192
190
|
|
|
193
191
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
_defineProperty(PointLabelLayer, "defaultProps", defaultProps);
|
|
192
|
+
PointLabelLayer.layerName = 'PointLabelLayer';
|
|
193
|
+
PointLabelLayer.defaultProps = defaultProps;
|
|
198
194
|
//# sourceMappingURL=point-label-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["CompositeLayer","TextLayer","_TextBackgroundLayer","TextBackgroundLayer","LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","getTextAnchor","anchor","getAlignmentBaseline","alignment","getSecondaryText","secondarySizeScale","sizeScale","props","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["CompositeLayer","TextLayer","_TextBackgroundLayer","TextBackgroundLayer","LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","layerName","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","getTextAnchor","anchor","getAlignmentBaseline","alignment","getSecondaryText","secondarySizeScale","sizeScale","props","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { _GeoCellLayer as GeoCellLayer } from '@deck.gl/geo-layers';
|
|
3
2
|
import { getQuadbinPolygon } from './quadbin-utils';
|
|
4
3
|
const defaultProps = {
|
|
@@ -27,8 +26,6 @@ export default class QuadbinLayer extends GeoCellLayer {
|
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
_defineProperty(QuadbinLayer, "defaultProps", defaultProps);
|
|
29
|
+
QuadbinLayer.layerName = 'QuadbinLayer';
|
|
30
|
+
QuadbinLayer.defaultProps = defaultProps;
|
|
34
31
|
//# sourceMappingURL=quadbin-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["_GeoCellLayer","GeoCellLayer","getQuadbinPolygon","defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","data","extruded","props","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["_GeoCellLayer","GeoCellLayer","getQuadbinPolygon","defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","data","extruded","props","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","layerName"],"mappings":"AACA,SACEA,aAAa,IAAIC,YADnB,QAGO,qBAHP;AAIA,SAAQC,iBAAR,QAAgC,iBAAhC;AAEA,MAAMC,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAEC,CAAC,IAAIA,CAAC,CAACC;AAAjC;AADwC,CAAtD;AAiBA,eAAe,MAAMC,YAAN,SAAoER,YAApE,CAGb;AAIAS,EAAAA,aAAa,GAA0C;AACrD,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,QAAP;AAAiBR,MAAAA;AAAjB,QAA+B,KAAKS,KAA1C;AAEA,UAAMC,QAAQ,GAAGF,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,WAAO;AACLD,MAAAA,IADK;AAELI,MAAAA,UAAU,EAAE,KAFP;AAGLC,MAAAA,cAAc,EAAE,IAHX;AAKLC,MAAAA,UAAU,EAAE,CAACC,CAAD,EAAWC,UAAX,KAA0BjB,iBAAiB,CAACE,UAAU,CAACc,CAAD,EAAIC,UAAJ,CAAX,EAA4BL,QAA5B,CALlD;AAMLM,MAAAA,cAAc,EAAE;AAACH,QAAAA,UAAU,EAAEH;AAAb;AANX,KAAP;AAQD;;AAjBD;AAHmBL,Y,CAIZY,S,GAAY,c;AAJAZ,Y,CAKZN,Y,GAAeA,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { CompositeLayer } from '@deck.gl/core';
|
|
3
2
|
import QuadbinLayer from './quadbin-layer';
|
|
4
3
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
@@ -39,7 +38,7 @@ export default class QuadbinTileLayer extends CompositeLayer {
|
|
|
39
38
|
maxresolution: maxZoom
|
|
40
39
|
} = tileJSON;
|
|
41
40
|
return [new SpatialIndexTileLayer(this.props, {
|
|
42
|
-
id:
|
|
41
|
+
id: `quadbin-tile-layer-${this.props.id}`,
|
|
43
42
|
data,
|
|
44
43
|
TilesetClass: QuadbinTileset2D,
|
|
45
44
|
renderSubLayers,
|
|
@@ -49,8 +48,6 @@ export default class QuadbinTileLayer extends CompositeLayer {
|
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
_defineProperty(QuadbinTileLayer, "defaultProps", defaultProps);
|
|
51
|
+
QuadbinTileLayer.layerName = 'QuadbinTileLayer';
|
|
52
|
+
QuadbinTileLayer.defaultProps = defaultProps;
|
|
56
53
|
//# sourceMappingURL=quadbin-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","TilejsonPropType","injectAccessToken","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","TilejsonPropType","injectAccessToken","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,WAAR,QAA0B,SAA1B;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE,CADmC;AAExDP,EAAAA,IAAI,EAAEJ;AAFkD,CAA1D;AAeA,eAAe,MAAMY,gBAAN,SAGLjB,cAHK,CAGgE;AAI7EkB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACAH,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACW,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEhB,IAAR;AAAciB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIjB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,EAAG,sBAAqB,KAAKJ,KAAL,CAAWI,EAAG,EADJ;AAEpCH,MAAAA,IAFoC;AAIpCmB,MAAAA,YAAY,EAAE1B,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCoB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;AAH1DD,gB,CAIZY,S,GAAY,kB;AAJAZ,gB,CAKZF,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6,\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
|
|
@@ -1,2 +1,99 @@
|
|
|
1
|
-
export default
|
|
1
|
+
export default `\
|
|
2
|
+
#version 300 es
|
|
3
|
+
#define SHADER_NAME raster-layer-vertex-shader
|
|
4
|
+
|
|
5
|
+
in vec3 positions;
|
|
6
|
+
in vec3 normals;
|
|
7
|
+
|
|
8
|
+
in float instanceElevations;
|
|
9
|
+
in vec4 instanceFillColors;
|
|
10
|
+
in vec4 instanceLineColors;
|
|
11
|
+
|
|
12
|
+
in vec3 instancePickingColors;
|
|
13
|
+
|
|
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
|
+
// Result
|
|
25
|
+
out vec4 vColor;
|
|
26
|
+
#ifdef FLAT_SHADING
|
|
27
|
+
out vec4 position_commonspace;
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
void main(void) {
|
|
31
|
+
// Rather than positioning using attribute, layout pixel grid using gl_InstanceID
|
|
32
|
+
vec2 common_position = offset.xy;
|
|
33
|
+
float scale = offset.z;
|
|
34
|
+
|
|
35
|
+
int yIndex = - (gl_InstanceID / 256);
|
|
36
|
+
int xIndex = gl_InstanceID + (yIndex * 256);
|
|
37
|
+
common_position += scale * vec2(float(xIndex), float(yIndex));
|
|
38
|
+
|
|
39
|
+
vec4 color = isStroke ? instanceLineColors : instanceFillColors;
|
|
40
|
+
|
|
41
|
+
// if alpha == 0.0 or z < 0.0, do not render element
|
|
42
|
+
float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
|
|
43
|
+
float cellWidth = coverage * scale;
|
|
44
|
+
|
|
45
|
+
// Get position directly from quadbin, rather than projecting
|
|
46
|
+
// Important to set geometry.position before using project_ methods below
|
|
47
|
+
// as geometry.worldPosition is not set (we don't know our lat/long)
|
|
48
|
+
geometry.position = vec4(common_position, 0.0, 1.0);
|
|
49
|
+
if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
|
|
50
|
+
geometry.position.xyz -= project_uCommonOrigin;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// calculate elevation, if 3d not enabled set to 0
|
|
54
|
+
// cylindar geometry height are between -1.0 to 1.0, transform it to between 0, 1
|
|
55
|
+
float elevation = 0.0;
|
|
56
|
+
// calculate stroke offset
|
|
57
|
+
float strokeOffsetRatio = 1.0;
|
|
58
|
+
|
|
59
|
+
if (extruded) {
|
|
60
|
+
elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;
|
|
61
|
+
} else if (stroked) {
|
|
62
|
+
float halfOffset = project_pixel_size(widthScale) / cellWidth;
|
|
63
|
+
if (isStroke) {
|
|
64
|
+
strokeOffsetRatio -= sign(positions.z) * halfOffset;
|
|
65
|
+
} else {
|
|
66
|
+
strokeOffsetRatio -= halfOffset;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
geometry.pickingColor = instancePickingColors;
|
|
71
|
+
|
|
72
|
+
// project center of column
|
|
73
|
+
vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
|
|
74
|
+
vec3 pos = vec3(offset, project_size(elevation));
|
|
75
|
+
DECKGL_FILTER_SIZE(pos, geometry);
|
|
76
|
+
|
|
77
|
+
geometry.position.xyz += pos;
|
|
78
|
+
gl_Position = project_common_position_to_clipspace(geometry.position);
|
|
79
|
+
|
|
80
|
+
geometry.normal = project_normal(normals);
|
|
81
|
+
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
82
|
+
|
|
83
|
+
// Light calculations
|
|
84
|
+
if (extruded && !isStroke) {
|
|
85
|
+
#ifdef FLAT_SHADING
|
|
86
|
+
position_commonspace = geometry.position;
|
|
87
|
+
vColor = vec4(color.rgb, color.a * opacity);
|
|
88
|
+
#else
|
|
89
|
+
vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);
|
|
90
|
+
vColor = vec4(lightColor, color.a * opacity);
|
|
91
|
+
#endif
|
|
92
|
+
} else {
|
|
93
|
+
vColor = vec4(color.rgb, color.a * opacity);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
97
|
+
}
|
|
98
|
+
`;
|
|
2
99
|
//# sourceMappingURL=raster-layer-vertex.glsl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/raster-layer-vertex.glsl.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export default `\\\n#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// Custom uniforms\nuniform float opacity;\nuniform bool extruded;\nuniform bool stroked;\nuniform bool isStroke;\nuniform float coverage;\nuniform float elevationScale;\nuniform float widthScale;\nuniform vec3 offset;\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 = offset.xy;\n float scale = offset.z;\n\n int yIndex = - (gl_InstanceID / 256);\n int xIndex = gl_InstanceID + (yIndex * 256);\n common_position += scale * vec2(float(xIndex), float(yIndex));\n\n vec4 color = 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 = 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_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n geometry.position.xyz -= project_uCommonOrigin;\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 (extruded) {\n elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;\n } else if (stroked) {\n float halfOffset = project_pixel_size(widthScale) / cellWidth;\n if (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 (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n"],"file":"raster-layer-vertex.glsl.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/raster-layer-vertex.glsl.ts"],"names":[],"mappings":"AAAA,eAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAjGA","sourcesContent":["export default `\\\n#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// Custom uniforms\nuniform float opacity;\nuniform bool extruded;\nuniform bool stroked;\nuniform bool isStroke;\nuniform float coverage;\nuniform float elevationScale;\nuniform float widthScale;\nuniform vec3 offset;\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 = offset.xy;\n float scale = offset.z;\n\n int yIndex = - (gl_InstanceID / 256);\n int xIndex = gl_InstanceID + (yIndex * 256);\n common_position += scale * vec2(float(xIndex), float(yIndex));\n\n vec4 color = 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 = 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_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n geometry.position.xyz -= project_uCommonOrigin;\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 (extruded) {\n elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;\n } else if (stroked) {\n float halfOffset = project_pixel_size(widthScale) / cellWidth;\n if (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 (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n"],"file":"raster-layer-vertex.glsl.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { CompositeLayer } from '@deck.gl/core';
|
|
3
2
|
import { ColumnLayer } from '@deck.gl/layers';
|
|
4
3
|
import { quadbinToOffset } from './quadbin-utils';
|
|
@@ -47,8 +46,7 @@ class RasterColumnLayer extends ColumnLayer {
|
|
|
47
46
|
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
RasterColumnLayer.layerName = 'RasterColumnLayer';
|
|
52
50
|
export default class RasterLayer extends CompositeLayer {
|
|
53
51
|
renderLayers() {
|
|
54
52
|
const {
|
|
@@ -65,7 +63,7 @@ export default class RasterLayer extends CompositeLayer {
|
|
|
65
63
|
blockWidth,
|
|
66
64
|
blockHeight
|
|
67
65
|
} = data;
|
|
68
|
-
assert(blockWidth === blockHeight,
|
|
66
|
+
assert(blockWidth === blockHeight, `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`);
|
|
69
67
|
const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
|
|
70
68
|
const offset = [xOffset, yOffset, scale / blockWidth];
|
|
71
69
|
const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);
|
|
@@ -104,8 +102,6 @@ export default class RasterLayer extends CompositeLayer {
|
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
_defineProperty(RasterLayer, "defaultProps", defaultProps);
|
|
105
|
+
RasterLayer.layerName = 'RasterLayer';
|
|
106
|
+
RasterLayer.defaultProps = defaultProps;
|
|
111
107
|
//# sourceMappingURL=raster-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/raster-layer.ts"],"names":["CompositeLayer","ColumnLayer","quadbinToOffset","vs","assert","createBinaryProxy","defaultProps","extruded","diskResolution","vertices","RasterColumnLayer","getShaders","shaders","initializeState","attributeManager","getAttributeManager","addInstanced","instanceElevations","size","transition","accessor","instanceFillColors","props","colorFormat","length","type","normalized","defaultValue","instanceLineColors","RasterLayer","renderLayers","data","getElevation","getFillColor","getLineColor","getLineWidth","tileIndex","updateTriggers","blockWidth","blockHeight","xOffset","yOffset","scale","offset","CellLayer","getSubLayerClass","getSubLayerProps","id","getSubLayerAccessor","object","info","index","binaryData","proxy","cells","properties"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/raster-layer.ts"],"names":["CompositeLayer","ColumnLayer","quadbinToOffset","vs","assert","createBinaryProxy","defaultProps","extruded","diskResolution","vertices","RasterColumnLayer","getShaders","shaders","initializeState","attributeManager","getAttributeManager","addInstanced","instanceElevations","size","transition","accessor","instanceFillColors","props","colorFormat","length","type","normalized","defaultValue","instanceLineColors","layerName","RasterLayer","renderLayers","data","getElevation","getFillColor","getLineColor","getLineWidth","tileIndex","updateTriggers","blockWidth","blockHeight","xOffset","yOffset","scale","offset","CellLayer","getSubLayerClass","getSubLayerProps","id","getSubLayerAccessor","object","info","index","binaryData","proxy","cells","properties"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n Accessor,\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n DefaultProps\n} from '@deck.gl/core';\nimport {ColumnLayer, ColumnLayerProps} from '@deck.gl/layers';\nimport {quadbinToOffset} from './quadbin-utils';\nimport {Raster} from './schema/carto-raster-tile-loader';\nimport vs from './raster-layer-vertex.glsl';\nimport {assert, createBinaryProxy} from '../utils';\n\nconst defaultProps: DefaultProps<RasterLayerProps> = {\n ...ColumnLayer.defaultProps,\n extruded: false,\n diskResolution: 4,\n vertices: [\n [-0.5, -0.5],\n [0.5, -0.5],\n [0.5, 0.5],\n [-0.5, 0.5]\n ]\n};\n\n// Modified ColumnLayer with custom vertex shader\nclass RasterColumnLayer extends ColumnLayer {\n static layerName = 'RasterColumnLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n return {...shaders, vs};\n }\n\n initializeState() {\n // Only add attributes needed by shader\n const attributeManager = this.getAttributeManager()!;\n /* eslint-disable max-len */\n attributeManager.addInstanced({\n instanceElevations: {\n size: 1,\n transition: true,\n accessor: 'getElevation'\n },\n instanceFillColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getFillColor',\n defaultValue: [0, 0, 0, 255]\n },\n instanceLineColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getLineColor',\n defaultValue: [255, 255, 255, 255]\n }\n });\n }\n}\n\n/** All properties supported by RasterLayer. */\nexport type RasterLayerProps<DataT = any> = _RasterLayerProps &\n ColumnLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by RasterLayer. */\ntype _RasterLayerProps = {\n /**\n * Quadbin index of tile\n */\n tileIndex: bigint;\n};\n\n// Adapter layer around RasterColumnLayer that converts data & accessors into correct format\nexport default class RasterLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<\n Required<RasterLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'RasterLayer';\n static defaultProps = defaultProps;\n\n renderLayers(): Layer | null | LayersList {\n // Rendering props underlying layer\n const {\n data,\n getElevation,\n getFillColor,\n getLineColor,\n getLineWidth,\n tileIndex,\n updateTriggers\n } = this.props;\n if (!data || !tileIndex) return null;\n\n const {blockWidth, blockHeight} = data as unknown as Raster;\n assert(\n blockWidth === blockHeight,\n `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`\n );\n\n const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);\n const offset = [xOffset, yOffset, scale / blockWidth];\n\n // Filled Column Layer\n const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);\n return new CellLayer(\n this.props,\n this.getSubLayerProps({\n id: 'cell',\n updateTriggers,\n\n getElevation: this.getSubLayerAccessor(getElevation),\n getFillColor: this.getSubLayerAccessor(getFillColor),\n getLineColor: this.getSubLayerAccessor(getLineColor),\n getLineWidth: this.getSubLayerAccessor(getLineWidth)\n }),\n {\n data: {\n data, // Pass through data for getSubLayerAccessor()\n length: blockWidth * blockHeight\n },\n offset\n }\n );\n }\n\n protected getSubLayerAccessor<In, Out>(accessor: Accessor<In, Out>): Accessor<In, Out> {\n if (typeof accessor !== 'function') {\n return super.getSubLayerAccessor(accessor);\n }\n\n // Proxy values back in standard feature format\n return (object, info) => {\n const {data, index} = info;\n const binaryData = (data as unknown as {data: Raster}).data;\n const proxy = createBinaryProxy(binaryData.cells, index);\n // @ts-ignore (TS2349) accessor is always function\n return accessor({properties: proxy}, info);\n };\n }\n}\n"],"file":"raster-layer.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { CompositeLayer } from '@deck.gl/core';
|
|
3
2
|
import RasterLayer from './raster-layer';
|
|
4
3
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
@@ -34,7 +33,7 @@ export default class RasterTileLayer extends CompositeLayer {
|
|
|
34
33
|
maxzoom: maxZoom
|
|
35
34
|
} = tileJSON;
|
|
36
35
|
return [new SpatialIndexTileLayer(this.props, {
|
|
37
|
-
id:
|
|
36
|
+
id: `raster-tile-layer-${this.props.id}`,
|
|
38
37
|
data,
|
|
39
38
|
TilesetClass: QuadbinTileset2D,
|
|
40
39
|
renderSubLayers,
|
|
@@ -45,8 +44,6 @@ export default class RasterTileLayer extends CompositeLayer {
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
_defineProperty(RasterTileLayer, "defaultProps", defaultProps);
|
|
47
|
+
RasterTileLayer.layerName = 'RasterTileLayer';
|
|
48
|
+
RasterTileLayer.defaultProps = defaultProps;
|
|
52
49
|
//# sourceMappingURL=raster-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","TilejsonPropType","injectAccessToken","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","TilejsonPropType","injectAccessToken","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIP,WAAJ,CAAgBM,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAMP,MAAMI,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAET;AADiD,CAAzD;AAYA,eAAe,MAAMU,eAAN,SAGLd,cAHK,CAG+D;AAI5Ee,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACAR,IAAAA,iBAAiB,CAACW,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,YAAY,GAA8B;AACxC,UAAMF,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACA,QAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACG,MAAAA,KAAK,EAAEP,IAAR;AAAcQ,MAAAA,OAAO,EAAEC,OAAvB;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,QAAoDP,QAA1D;AACA,WAAO,CAEL,IAAId,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCkB,MAAAA,EAAE,EAAG,qBAAoB,KAAKlB,KAAL,CAAWkB,EAAG,EADH;AAEpCZ,MAAAA,IAFoC;AAIpCa,MAAAA,YAAY,EAAExB,gBAJsB;AAKpCI,MAAAA,eALoC;AAMpCgB,MAAAA,OANoC;AAOpCE,MAAAA,OAPoC;AAQpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AARuB,KAAtC,CAFK,CAAP;AAaD;;AA7B2E;AAHzDD,e,CAIZa,S,GAAY,iB;AAJAb,e,CAKZF,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TileReader } from './carto-raster-tile';
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
3
|
import { getWorkerUrl } from '../../utils';
|
|
4
|
-
const VERSION = typeof "8.10.0-alpha.
|
|
4
|
+
const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : 'latest';
|
|
5
5
|
const id = 'cartoRasterTile';
|
|
6
6
|
const DEFAULT_OPTIONS = {
|
|
7
7
|
cartoRasterTile: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile.ts"],"names":["readPackedTypedArray","ARRAY_TYPES","uint8","Uint8Array","uint16","Uint16Array","uint32","Uint32Array","uint64","BigUint64Array","int8","Int8Array","int16","Int16Array","int32","Int32Array","int64","BigInt64Array","float32","Float32Array","float64","Float64Array","BandReader","read","pbf","end","readFields","_readField","name","type","data","tag","obj","readString","TypedArray","Error","TileReader","blockWidth","blockHeight","bands","readVarint","push","pos"],"mappings":"AAAA,SAAQA,oBAAR,QAAmC,YAAnC;AAEA,MAAMC,WAAW,GAAG;AAClBC,EAAAA,KAAK,EAAEC,UADW;AAElBC,EAAAA,MAAM,EAAEC,WAFU;AAGlBC,EAAAA,MAAM,EAAEC,WAHU;AAIlBC,EAAAA,MAAM,EAAEC,cAJU;AAKlBC,EAAAA,IAAI,EAAEC,SALY;AAMlBC,EAAAA,KAAK,EAAEC,UANW;AAOlBC,EAAAA,KAAK,EAAEC,UAPW;AAQlBC,EAAAA,KAAK,EAAEC,aARW;AASlBC,EAAAA,OAAO,EAAEC,YATS;AAUlBC,EAAAA,OAAO,EAAEC;AAVS,CAApB;AAeA,OAAO,MAAMC,UAAN,CAAiB;AACX,SAAJC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAoB;AAC7B,WAAOD,GAAG,CAACE,UAAJ,CAAeJ,UAAU,CAACK,UAA1B,EAAsC;AAACC,MAAAA,IAAI,EAAE,EAAP;AAAWC,MAAAA,IAAI,EAAE,EAAjB;AAAqBC,MAAAA,IAAI,EAAE;AAA3B,KAAtC,EAAwEL,GAAxE,CAAP;AACD;;AAEgB,SAAVE,UAAU,CAAaI,GAAb,EAAkBC,GAAlB,EAAuBR,GAAvB,EAA4B;AAC3C,QAAIO,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACJ,IAAJ,GAAWJ,GAAG,CAACS,UAAJ,EAAX,CAAf,KACK,IAAIF,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,IAAJ,GAAWL,GAAG,CAACS,UAAJ,EAAX,CAAf,KACA,IAAIF,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMG,UAAU,GAAGjC,WAAW,CAAC+B,GAAG,CAACH,IAAL,CAA9B;;AACA,UAAI,CAACK,UAAL,EAAiB;AACf,cAAMC,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile.ts"],"names":["readPackedTypedArray","ARRAY_TYPES","uint8","Uint8Array","uint16","Uint16Array","uint32","Uint32Array","uint64","BigUint64Array","int8","Int8Array","int16","Int16Array","int32","Int32Array","int64","BigInt64Array","float32","Float32Array","float64","Float64Array","BandReader","read","pbf","end","readFields","_readField","name","type","data","tag","obj","readString","TypedArray","Error","TileReader","blockWidth","blockHeight","bands","readVarint","push","pos"],"mappings":"AAAA,SAAQA,oBAAR,QAAmC,YAAnC;AAEA,MAAMC,WAAW,GAAG;AAClBC,EAAAA,KAAK,EAAEC,UADW;AAElBC,EAAAA,MAAM,EAAEC,WAFU;AAGlBC,EAAAA,MAAM,EAAEC,WAHU;AAIlBC,EAAAA,MAAM,EAAEC,cAJU;AAKlBC,EAAAA,IAAI,EAAEC,SALY;AAMlBC,EAAAA,KAAK,EAAEC,UANW;AAOlBC,EAAAA,KAAK,EAAEC,UAPW;AAQlBC,EAAAA,KAAK,EAAEC,aARW;AASlBC,EAAAA,OAAO,EAAEC,YATS;AAUlBC,EAAAA,OAAO,EAAEC;AAVS,CAApB;AAeA,OAAO,MAAMC,UAAN,CAAiB;AACX,SAAJC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAoB;AAC7B,WAAOD,GAAG,CAACE,UAAJ,CAAeJ,UAAU,CAACK,UAA1B,EAAsC;AAACC,MAAAA,IAAI,EAAE,EAAP;AAAWC,MAAAA,IAAI,EAAE,EAAjB;AAAqBC,MAAAA,IAAI,EAAE;AAA3B,KAAtC,EAAwEL,GAAxE,CAAP;AACD;;AAEgB,SAAVE,UAAU,CAAaI,GAAb,EAAkBC,GAAlB,EAAuBR,GAAvB,EAA4B;AAC3C,QAAIO,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACJ,IAAJ,GAAWJ,GAAG,CAACS,UAAJ,EAAX,CAAf,KACK,IAAIF,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,IAAJ,GAAWL,GAAG,CAACS,UAAJ,EAAX,CAAf,KACA,IAAIF,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMG,UAAU,GAAGjC,WAAW,CAAC+B,GAAG,CAACH,IAAL,CAA9B;;AACA,UAAI,CAACK,UAAL,EAAiB;AACf,cAAMC,KAAK,CAAE,sBAAqBH,GAAG,CAACH,IAAK,EAAhC,CAAX;AACD;;AACDG,MAAAA,GAAG,CAACF,IAAJ,GAAW,EAAX;AACA9B,MAAAA,oBAAoB,CAACkC,UAAD,EAAaV,GAAb,EAAkBQ,GAAG,CAACF,IAAtB,CAApB;AACD;AACF;;AAhBqB;AAmBxB,OAAO,MAAMM,UAAN,CAAiB;AACX,SAAJb,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAW;AACpB,WAAOD,GAAG,CAACE,UAAJ,CAAeU,UAAU,CAACT,UAA1B,EAAsC;AAACU,MAAAA,UAAU,EAAE,CAAb;AAAgBC,MAAAA,WAAW,EAAE,CAA7B;AAAgCC,MAAAA,KAAK,EAAE;AAAvC,KAAtC,EAAkFd,GAAlF,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaI,GAAb,EAAkBC,GAAlB,EAAuBR,GAAvB,EAA4B;AAC3C,QAAIO,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACK,UAAJ,GAAiBb,GAAG,CAACgB,UAAJ,EAAjB,CAAf,KACK,IAAIT,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACM,WAAJ,GAAkBd,GAAG,CAACgB,UAAJ,EAAlB,CAAf,KACA,IAAIT,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACO,KAAJ,CAAUE,IAAV,CAAenB,UAAU,CAACC,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACgB,UAAJ,KAAmBhB,GAAG,CAACkB,GAA5C,CAAf;AACrB;;AARqB","sourcesContent":["import {readPackedTypedArray} from './fast-pbf';\n\nconst ARRAY_TYPES = {\n uint8: Uint8Array,\n uint16: Uint16Array,\n uint32: Uint32Array,\n uint64: BigUint64Array,\n int8: Int8Array,\n int16: Int16Array,\n int32: Int32Array,\n int64: BigInt64Array,\n float32: Float32Array,\n float64: Float64Array\n};\n\n// Band ========================================\n\nexport class BandReader {\n static read(pbf, end?: number) {\n return pbf.readFields(BandReader._readField, {name: '', type: '', data: null}, end);\n }\n\n static _readField(this: void, tag, obj, pbf) {\n if (tag === 1) obj.name = pbf.readString();\n else if (tag === 2) obj.type = pbf.readString();\n else if (tag === 3) {\n const TypedArray = ARRAY_TYPES[obj.type];\n if (!TypedArray) {\n throw Error(`Invalid data type: ${obj.type}`);\n }\n obj.data = {};\n readPackedTypedArray(TypedArray, pbf, obj.data);\n }\n }\n}\n\nexport class TileReader {\n static read(pbf, end) {\n return pbf.readFields(TileReader._readField, {blockWidth: 0, blockHeight: 0, bands: []}, end);\n }\n static _readField(this: void, tag, obj, pbf) {\n if (tag === 1) obj.blockWidth = pbf.readVarint();\n else if (tag === 2) obj.blockHeight = pbf.readVarint();\n else if (tag === 3) obj.bands.push(BandReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n"],"file":"carto-raster-tile.js"}
|
|
@@ -2,7 +2,7 @@ import { TileReader } from './carto-spatial-tile';
|
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
3
|
import { getWorkerUrl } from '../../utils';
|
|
4
4
|
import { binaryToSpatialjson } from './spatialjson-utils';
|
|
5
|
-
const VERSION = typeof "8.10.0-alpha.
|
|
5
|
+
const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : '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';
|
|
3
3
|
import { parsePbf } from './tile-loader-utils';
|
|
4
4
|
import { getWorkerUrl } from '../../utils';
|
|
5
|
-
const VERSION = typeof "8.10.0-alpha.
|
|
5
|
+
const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : 'latest';
|
|
6
6
|
const id = 'cartoVectorTile';
|
|
7
7
|
const DEFAULT_OPTIONS = {
|
|
8
8
|
cartoVectorTile: {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { registerLoaders } from '@loaders.gl/core';
|
|
3
2
|
import CartoRasterTileLoader from './schema/carto-raster-tile-loader';
|
|
4
3
|
import CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';
|
|
@@ -97,8 +96,6 @@ export default class SpatialIndexTileLayer extends TileLayer {
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
_defineProperty(SpatialIndexTileLayer, "defaultProps", defaultProps);
|
|
99
|
+
SpatialIndexTileLayer.layerName = 'SpatialIndexTileLayer';
|
|
100
|
+
SpatialIndexTileLayer.defaultProps = defaultProps;
|
|
104
101
|
//# sourceMappingURL=spatial-index-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom","layerName"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
|
package/dist/esm/layers/utils.js
CHANGED
|
@@ -6,7 +6,7 @@ export function injectAccessToken(loadOptions, accessToken) {
|
|
|
6
6
|
|
|
7
7
|
loadOptions.fetch = { ...loadOptions.fetch,
|
|
8
8
|
headers: { ...((_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers),
|
|
9
|
-
Authorization:
|
|
9
|
+
Authorization: `Bearer ${accessToken}`
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,EAAG,UAASH,WAAY;AAArE;AAFS,KAApB;AAID;AACF","sourcesContent":["/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n"],"file":"utils.js"}
|