@deck.gl/carto 8.9.3 → 8.9.5
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/dist.dev.js +359 -174
- package/dist/es5/api/layer-map.js +44 -44
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +22 -4
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +64 -48
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/index.js +8 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/point-label-layer.js +268 -0
- package/dist/es5/layers/point-label-layer.js.map +1 -0
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -9
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile.js +5 -31
- package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +12 -6
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -21
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/fast-pbf.js +22 -0
- package/dist/es5/layers/schema/fast-pbf.js.map +1 -0
- package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
- package/dist/es5/layers/schema/tile-loader-utils.js.map +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +19 -1
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/api/layer-map.js +29 -21
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +12 -1
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +59 -44
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/point-label-layer.js +198 -0
- package/dist/esm/layers/point-label-layer.js.map +1 -0
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +2 -4
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile.js +3 -28
- package/dist/esm/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-tile.js +12 -6
- package/dist/esm/layers/schema/carto-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +2 -18
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/fast-pbf.js +13 -0
- package/dist/esm/layers/schema/fast-pbf.js.map +1 -0
- package/dist/esm/layers/schema/tile-loader-utils.js +0 -16
- package/dist/esm/layers/schema/tile-loader-utils.js.map +1 -1
- package/dist/esm/layers/spatial-index-tile-layer.js +21 -1
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist.min.js +24 -23
- package/package.json +2 -2
- package/src/api/layer-map.ts +21 -25
- package/src/api/maps-v3-client.ts +19 -4
- package/src/api/parseMap.ts +67 -44
- package/src/api/types.ts +1 -0
- package/src/index.ts +1 -0
- package/src/layers/point-label-layer.ts +266 -0
- package/src/layers/schema/carto-spatial-tile-loader.ts +2 -5
- package/src/layers/schema/carto-spatial-tile.ts +5 -30
- package/src/layers/schema/carto-tile.ts +11 -12
- package/src/layers/schema/carto-vector-tile-loader.ts +2 -9
- package/src/layers/schema/fast-pbf.ts +13 -0
- package/src/layers/schema/tile-loader-utils.ts +0 -15
- package/src/layers/spatial-index-tile-layer.ts +22 -1
- package/typed/api/layer-map.d.ts +1 -2
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts +4 -1
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/api/parseMap.d.ts +1 -1
- package/typed/api/parseMap.d.ts.map +1 -1
- package/typed/api/types.d.ts +1 -0
- package/typed/api/types.d.ts.map +1 -1
- package/typed/index.d.ts +1 -0
- package/typed/index.d.ts.map +1 -1
- package/typed/layers/point-label-layer.d.ts +56 -0
- package/typed/layers/point-label-layer.d.ts.map +1 -0
- package/typed/layers/schema/carto-spa-tile.d.ts +57 -0
- package/typed/layers/schema/carto-spa-tile.d.ts.map +1 -0
- package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-spatial-tile.d.ts +2 -2
- package/typed/layers/schema/carto-spatial-tile.d.ts.map +1 -1
- package/typed/layers/schema/carto-tile.d.ts +2 -9
- package/typed/layers/schema/carto-tile.d.ts.map +1 -1
- package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/fast-pbf.d.ts +3 -0
- package/typed/layers/schema/fast-pbf.d.ts.map +1 -0
- package/typed/layers/schema/tile-loader-utils.d.ts +0 -3
- package/typed/layers/schema/tile-loader-utils.d.ts.map +1 -1
- package/typed/layers/spatial-index-tile-layer.d.ts +1 -0
- package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/typed/api/index.js +0 -3
- package/typed/api/layer-map.js +0 -264
- package/typed/api/maps-api-common.js +0 -50
- package/typed/api/maps-client.js +0 -125
- package/typed/api/maps-v3-client.js +0 -304
- package/typed/api/parseMap.js +0 -178
- package/typed/basemap.js +0 -9
- package/typed/config.js +0 -35
- package/typed/index.js +0 -10
- package/typed/layers/carto-layer.js +0 -173
- package/typed/layers/carto-tile-layer.js +0 -105
- package/typed/layers/h3-tile-layer.js +0 -47
- package/typed/layers/h3-tileset-2d.js +0 -85
- package/typed/layers/quadkey-tile-layer.js +0 -42
- package/typed/layers/quadkey-tileset-2d.js +0 -36
- package/typed/layers/schema/carto-tile.js +0 -161
- package/typed/layers/spatial-index-tile-layer.js +0 -40
- package/typed/style/color-bins-style.js +0 -12
- package/typed/style/color-categories-style.js +0 -16
- package/typed/style/color-continuous-style.js +0 -12
- package/typed/style/palette.js +0 -62
- package/typed/style/utils.js +0 -15
- package/typed/utils.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/parseMap.ts"],"names":["AGGREGATION","getLayer","getColorAccessor","getColorValueAccessor","getSizeAccessor","getTextAccessor","getTextPixelOffsetAccessor","OPACITY_MAP","opacityToAlpha","getIconUrlAccessor","negateAccessor","getMaxMarkerSize","_flatten","flatten","log","assert","parseMap","json","keplerMapConfig","datasets","token","version","mapState","mapStyle","config","layers","layerBlending","interactionConfig","visState","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","dataId","dataset","find","d","data","Layer","propMap","defaultProps","styleProps","createStyleProps","textLabel","createInteractionProps","createChannelProps","createParametersProp","parameters","createLoadOptions","e","error","message","undefined","rest","configRest","filter","t","field","name","label","visConfig","opacity","blendFunc","blendEquation","Object","keys","length","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","key","value","entries","result","stroked","getLineColor","getFillColor","colorAccessor","Array","isArray","color","opacityKey","highlightColor","enable3d","colorField","colorScale","radiusField","radiusScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","colorScaleType","colorAggregation","getColorValue","getColorWeight","aggregation","colorRange","range","altitude","columns","dataTransform","features","forEach","geometry","properties","coordinates","getPointRadius","sizeAggregation","radiusRange","sizeRange","fallbackOpacity","strokeOpacity","strokeColorAggregation","strokeColorRange","getElevation","heightAggregation","heightRange","getText","pointType","radius","getTextPixelOffset","customMarkers","maxIconSize","customMarkersUrl","customMarkersRange","filled","useMaskedIcons","getIcon","customMarkersField","fallbackUrl","_subLayerProps","loadOptions","image","imagebitmap","resizeWidth","resizeHeight","resizeQuality","getIconColor","getIconSize","rotationField","getIconAngle","accessToken","fetch","headers","Authorization"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n AGGREGATION,\n getLayer,\n getColorAccessor,\n getColorValueAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor,\n OPACITY_MAP,\n opacityToAlpha,\n getIconUrlAccessor,\n negateAccessor,\n getMaxMarkerSize\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\nimport {assert} from '../utils';\nimport {MapDataset, MapTextSubLayerConfig, VisualChannels} from './types';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets, token} = json;\n assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n token,\n layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n try {\n const {dataId} = config;\n const dataset: MapDataset | null = datasets.find(d => d.id === dataId);\n assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n assert(data, `No data loaded for dataId: ${dataId}`);\n const {Layer, propMap, defaultProps} = getLayer(type, config, dataset);\n const styleProps = createStyleProps(config, propMap);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...styleProps,\n ...createChannelProps(visualChannels, type, config, data), // Must come after style\n ...createParametersProp(layerBlending, styleProps.parameters || {}), // Must come after style\n ...createLoadOptions(token)\n });\n } catch (e: any) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction extractTextLayers(layers) {\n return flatten(\n layers.map(({id, config, ...rest}) => {\n const {textLabel, ...configRest} = config;\n return [\n // Original layer without textLabel\n {id, config: configRest, ...rest},\n\n // One layer per valid text label, with full opacity\n ...textLabel\n .filter(t => t.field)\n .map(t => {\n return {\n id: `${id}-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\n label: `${config.label}-label-${t.field.name}`,\n visConfig: {...configRest.visConfig, opacity: 1}\n },\n ...rest\n };\n })\n ];\n })\n );\n}\n\nfunction createParametersProp(layerBlending, parameters: Record<string, any>) {\n if (layerBlending === 'additive') {\n parameters.blendFunc = [GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = GL.FUNC_ADD;\n } else if (layerBlending === 'subtractive') {\n parameters.blendFunc = [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = [GL.FUNC_SUBTRACT, GL.FUNC_ADD];\n }\n\n return Object.keys(parameters).length ? {parameters} : {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'function') {\n const [key, value] = Object.entries(targetKey(sourceValue))[0];\n target[key] = value;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level (also handles arrays)\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config: MapTextSubLayerConfig, mapping) {\n const result: Record<string, any> = {};\n mapProps(config, result, mapping);\n\n // Kepler format sometimes omits strokeColor. TODO: remove once we can rely on\n // `strokeColor` always being set when `stroke: true`.\n if (result.stroked && !result.getLineColor) {\n result.getLineColor = result.getFillColor;\n }\n\n for (const colorAccessor in OPACITY_MAP) {\n if (Array.isArray(result[colorAccessor])) {\n const color = [...result[colorAccessor]];\n const opacityKey = OPACITY_MAP[colorAccessor];\n const opacity = config.visConfig[opacityKey];\n color[3] = opacityToAlpha(opacity);\n result[colorAccessor] = color;\n }\n }\n\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity, max-statements */\nfunction createChannelProps(\n visualChannels: VisualChannels,\n type: string,\n config: MapTextSubLayerConfig,\n data\n) {\n const {\n colorField,\n colorScale,\n radiusField,\n radiusScale,\n sizeField,\n sizeScale,\n strokeColorField,\n strokeColorScale\n } = visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result: Record<string, any> = {};\n const textLabelField = textLabel && textLabel.field;\n\n if (type === 'grid' || type === 'hexagon') {\n result.colorScaleType = colorScale;\n if (colorField) {\n const {colorAggregation} = config.visConfig;\n if (!AGGREGATION[colorAggregation]) {\n result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);\n } else {\n result.getColorWeight = d => d[colorField.name];\n }\n }\n } else if (colorField) {\n const {colorAggregation: aggregation, colorRange: range} = visConfig;\n result.getFillColor = getColorAccessor(\n colorField,\n // @ts-ignore\n colorScale,\n {aggregation, range},\n visConfig.opacity,\n data\n );\n }\n\n if (type === 'point') {\n const altitude = config.columns?.altitude;\n if (altitude) {\n result.dataTransform = data => {\n data.features.forEach(({geometry, properties}) => {\n const {type, coordinates} = geometry;\n if (type === 'Point') {\n coordinates[2] = properties[altitude];\n }\n });\n return data;\n };\n }\n }\n\n if (radiusField || sizeField) {\n result.getPointRadius = getSizeAccessor(\n // @ts-ignore\n radiusField || sizeField,\n // @ts-ignore\n radiusScale || sizeScale,\n visConfig.sizeAggregation,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n\n if (strokeColorField) {\n const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;\n const opacity =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;\n const {strokeColorAggregation: aggregation, strokeColorRange: range} = visConfig;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n // @ts-ignore\n strokeColorScale,\n // @ts-ignore\n {aggregation, range},\n opacity,\n data\n );\n }\n\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n // @ts-ignore\n heightScale,\n visConfig.heightAggregation,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n\n if (textLabelField) {\n result.getText = getTextAccessor(textLabelField, data);\n result.pointType = 'text';\n const radius = result.getPointRadius || visConfig.radius;\n result.getTextPixelOffset = getTextPixelOffsetAccessor(textLabel, radius);\n } else if (visConfig.customMarkers) {\n const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);\n const {getPointRadius, getFillColor} = result;\n const {customMarkersUrl, customMarkersRange, filled: useMaskedIcons} = visConfig;\n\n result.pointType = 'icon';\n result.getIcon = getIconUrlAccessor(\n visualChannels.customMarkersField,\n customMarkersRange,\n {fallbackUrl: customMarkersUrl, maxIconSize, useMaskedIcons},\n data\n );\n result._subLayerProps = {\n 'points-icon': {\n loadOptions: {\n image: {\n type: 'imagebitmap'\n },\n imagebitmap: {\n resizeWidth: maxIconSize,\n resizeHeight: maxIconSize,\n resizeQuality: 'high'\n }\n }\n }\n };\n\n if (getFillColor && useMaskedIcons) {\n result.getIconColor = getFillColor;\n }\n\n if (getPointRadius) {\n result.getIconSize = getPointRadius;\n }\n\n if (visualChannels.rotationField) {\n result.getIconAngle = negateAccessor(\n getSizeAccessor(visualChannels.rotationField, undefined, null, undefined, data)\n );\n }\n }\n\n return result;\n}\n\nfunction createLoadOptions(accessToken: string) {\n return {\n loadOptions: {fetch: {headers: {Authorization: `Bearer ${accessToken}`}}}\n };\n}\n"],"file":"parseMap.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/parseMap.ts"],"names":["AGGREGATION","getLayer","getColorAccessor","getColorValueAccessor","getSizeAccessor","getTextAccessor","OPACITY_MAP","opacityToAlpha","getIconUrlAccessor","negateAccessor","getMaxMarkerSize","PointLabelLayer","log","CollisionFilterExtension","assert","collisionFilterExtension","parseMap","json","keplerMapConfig","datasets","token","version","mapState","mapStyle","config","layers","layerBlending","interactionConfig","visState","id","title","description","createdAt","updatedAt","initialViewState","reverse","map","type","visualChannels","dataId","dataset","find","d","data","Layer","propMap","defaultProps","styleProps","createStyleProps","createInteractionProps","createChannelProps","createParametersProp","parameters","createLoadOptions","e","error","message","undefined","blendFunc","blendEquation","Object","keys","length","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","key","value","entries","result","stroked","getLineColor","getFillColor","colorAccessor","Array","isArray","color","opacityKey","opacity","visConfig","highlightColor","enable3d","colorField","colorScale","radiusField","radiusScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabel","colorScaleType","colorAggregation","getColorValue","getColorWeight","name","aggregation","colorRange","range","altitude","columns","dataTransform","features","forEach","geometry","properties","coordinates","getPointRadius","sizeAggregation","radiusRange","sizeRange","fallbackOpacity","strokeOpacity","strokeColorAggregation","strokeColorRange","getElevation","heightAggregation","heightRange","customMarkers","maxIconSize","customMarkersUrl","customMarkersRange","filled","useMaskedIcons","pointType","getIcon","customMarkersField","fallbackUrl","_subLayerProps","loadOptions","image","imagebitmap","resizeWidth","resizeHeight","resizeQuality","getIconColor","getIconSize","rotationField","getIconAngle","field","mainLabel","secondaryLabel","collisionGroup","alignment","getTextAlignmentBaseline","anchor","getTextAnchor","getTextColor","outlineColor","textOutlineColor","size","textSizeScale","getSecondaryColor","secondaryField","secondaryOutlineColor","secondarySizeScale","getText","getSecondaryText","textCharacterSet","textFontFamily","textFontSettings","sdf","textFontWeight","textOutlineWidth","extensions","collisionEnabled","getRadius","radius","accessToken","fetch","headers","Authorization"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n AGGREGATION,\n getLayer,\n getColorAccessor,\n getColorValueAccessor,\n getSizeAccessor,\n getTextAccessor,\n OPACITY_MAP,\n opacityToAlpha,\n getIconUrlAccessor,\n negateAccessor,\n getMaxMarkerSize\n} from './layer-map';\nimport PointLabelLayer from '../layers/point-label-layer';\nimport {log} from '@deck.gl/core';\nimport {CollisionFilterExtension} from '@deck.gl/extensions';\nimport {assert} from '../utils';\nimport {MapDataset, MapLayerConfig, VisualChannels} from './types';\n\nconst collisionFilterExtension = new CollisionFilterExtension();\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets, token} = json;\n assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n token,\n layers: layers.reverse().map(({id, type, config, visualChannels}) => {\n try {\n const {dataId} = config;\n const dataset: MapDataset | null = datasets.find(d => d.id === dataId);\n assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n assert(data, `No data loaded for dataId: ${dataId}`);\n const {Layer, propMap, defaultProps} = getLayer(type, config, dataset);\n const styleProps = createStyleProps(config, propMap);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createInteractionProps(interactionConfig),\n ...styleProps,\n ...createChannelProps(id, type, config, visualChannels, data), // Must come after style\n ...createParametersProp(layerBlending, styleProps.parameters || {}), // Must come after style\n ...createLoadOptions(token)\n });\n } catch (e: any) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction createParametersProp(layerBlending, parameters: Record<string, any>) {\n if (layerBlending === 'additive') {\n parameters.blendFunc = [GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = GL.FUNC_ADD;\n } else if (layerBlending === 'subtractive') {\n parameters.blendFunc = [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = [GL.FUNC_SUBTRACT, GL.FUNC_ADD];\n }\n\n return Object.keys(parameters).length ? {parameters} : {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'function') {\n const [key, value] = Object.entries(targetKey(sourceValue))[0];\n target[key] = value;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level (also handles arrays)\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config: MapLayerConfig, mapping) {\n const result: Record<string, any> = {};\n mapProps(config, result, mapping);\n\n // Kepler format sometimes omits strokeColor. TODO: remove once we can rely on\n // `strokeColor` always being set when `stroke: true`.\n if (result.stroked && !result.getLineColor) {\n result.getLineColor = result.getFillColor;\n }\n\n for (const colorAccessor in OPACITY_MAP) {\n if (Array.isArray(result[colorAccessor])) {\n const color = [...result[colorAccessor]];\n const opacityKey = OPACITY_MAP[colorAccessor];\n const opacity = config.visConfig[opacityKey];\n color[3] = opacityToAlpha(opacity);\n result[colorAccessor] = color;\n }\n }\n\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity, max-statements */\nfunction createChannelProps(\n id: string,\n type: string,\n config: MapLayerConfig,\n visualChannels: VisualChannels,\n data\n) {\n const {\n colorField,\n colorScale,\n radiusField,\n radiusScale,\n sizeField,\n sizeScale,\n strokeColorField,\n strokeColorScale\n } = visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result: Record<string, any> = {};\n\n if (type === 'grid' || type === 'hexagon') {\n result.colorScaleType = colorScale;\n if (colorField) {\n const {colorAggregation} = config.visConfig;\n if (!AGGREGATION[colorAggregation]) {\n result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);\n } else {\n result.getColorWeight = d => d[colorField.name];\n }\n }\n } else if (colorField) {\n const {colorAggregation: aggregation, colorRange: range} = visConfig;\n result.getFillColor = getColorAccessor(\n colorField,\n // @ts-ignore\n colorScale,\n {aggregation, range},\n visConfig.opacity,\n data\n );\n }\n\n if (type === 'point') {\n const altitude = config.columns?.altitude;\n if (altitude) {\n result.dataTransform = data => {\n data.features.forEach(({geometry, properties}) => {\n const {type, coordinates} = geometry;\n if (type === 'Point') {\n coordinates[2] = properties[altitude];\n }\n });\n return data;\n };\n }\n }\n\n if (radiusField || sizeField) {\n result.getPointRadius = getSizeAccessor(\n // @ts-ignore\n radiusField || sizeField,\n // @ts-ignore\n radiusScale || sizeScale,\n visConfig.sizeAggregation,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n\n if (strokeColorField) {\n const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;\n const opacity =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;\n const {strokeColorAggregation: aggregation, strokeColorRange: range} = visConfig;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n // @ts-ignore\n strokeColorScale,\n // @ts-ignore\n {aggregation, range},\n opacity,\n data\n );\n }\n\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n // @ts-ignore\n heightScale,\n visConfig.heightAggregation,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n\n if (visConfig.customMarkers) {\n const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);\n const {getPointRadius, getFillColor} = result;\n const {customMarkersUrl, customMarkersRange, filled: useMaskedIcons} = visConfig;\n\n result.pointType = 'icon';\n result.getIcon = getIconUrlAccessor(\n visualChannels.customMarkersField,\n customMarkersRange,\n {fallbackUrl: customMarkersUrl, maxIconSize, useMaskedIcons},\n data\n );\n result._subLayerProps = {\n 'points-icon': {\n loadOptions: {\n image: {\n type: 'imagebitmap'\n },\n imagebitmap: {\n resizeWidth: maxIconSize,\n resizeHeight: maxIconSize,\n resizeQuality: 'high'\n }\n }\n }\n };\n\n if (getFillColor && useMaskedIcons) {\n result.getIconColor = getFillColor;\n }\n\n if (getPointRadius) {\n result.getIconSize = getPointRadius;\n }\n\n if (visualChannels.rotationField) {\n result.getIconAngle = negateAccessor(\n getSizeAccessor(visualChannels.rotationField, undefined, null, undefined, data)\n );\n }\n } else if (type === 'point' || type === 'tileset') {\n result.pointType = 'circle';\n }\n\n if (textLabel && textLabel.length && textLabel[0].field) {\n const [mainLabel, secondaryLabel] = textLabel;\n const collisionGroup = id;\n\n ({\n alignment: result.getTextAlignmentBaseline,\n anchor: result.getTextAnchor,\n color: result.getTextColor,\n outlineColor: result.textOutlineColor,\n size: result.textSizeScale\n } = mainLabel);\n const {\n color: getSecondaryColor,\n field: secondaryField,\n outlineColor: secondaryOutlineColor,\n size: secondarySizeScale\n } = secondaryLabel || {};\n\n result.getText = mainLabel.field && getTextAccessor(mainLabel.field, data);\n const getSecondaryText = secondaryField && getTextAccessor(secondaryField, data);\n\n result.pointType = `${result.pointType}+text`;\n result.textCharacterSet = 'auto';\n result.textFontFamily = 'Inter, sans';\n result.textFontSettings = {sdf: true};\n result.textFontWeight = 600;\n result.textOutlineWidth = 3;\n\n result._subLayerProps = {\n ...result._subLayerProps,\n 'points-text': {\n type: PointLabelLayer,\n extensions: [collisionFilterExtension],\n collisionEnabled: true,\n collisionGroup,\n\n // getPointRadius already has radiusScale baked in, so only pass one or the other\n ...(result.getPointRadius\n ? {getRadius: result.getPointRadius}\n : {radiusScale: visConfig.radius}),\n\n ...(secondaryField && {\n getSecondaryText,\n getSecondaryColor,\n secondarySizeScale,\n secondaryOutlineColor\n })\n }\n };\n }\n\n return result;\n}\n\nfunction createLoadOptions(accessToken: string) {\n return {\n loadOptions: {fetch: {headers: {Authorization: `Bearer ${accessToken}`}}}\n };\n}\n"],"file":"parseMap.js"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { getDefaultCredentials, setDefaultCredentials } from './config';
|
|
|
2
2
|
export { default as CartoLayer } from './layers/carto-layer';
|
|
3
3
|
export { default as _CartoTileLayer } from './layers/carto-tile-layer';
|
|
4
4
|
export { default as _H3TileLayer } from './layers/h3-tile-layer';
|
|
5
|
+
export { default as _PointLabelLayer } from './layers/point-label-layer';
|
|
5
6
|
export { default as _QuadbinTileLayer } from './layers/quadbin-tile-layer';
|
|
6
7
|
export { default as BASEMAP } from './basemap';
|
|
7
8
|
export { default as colorBins } from './style/color-bins-style';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["getDefaultCredentials","setDefaultCredentials","default","CartoLayer","_CartoTileLayer","_H3TileLayer","_QuadbinTileLayer","BASEMAP","colorBins","colorCategories","colorContinuous","FORMATS","TILE_FORMATS","MAP_TYPES","API_VERSIONS","CartoAPIError","fetchLayerData","fetchMap","getDataV2","_getDataV2","mapInstantiation","_mapInstantiation"],"mappings":"AAAA,SAAQA,qBAAR,EAA+BC,qBAA/B,QAA2D,UAA3D;AACA,SAAQC,OAAO,IAAIC,UAAnB,QAAoC,sBAApC;AACA,SAAQD,OAAO,IAAIE,eAAnB,QAAyC,2BAAzC;AACA,SAAQF,OAAO,IAAIG,YAAnB,QAAsC,wBAAtC;AACA,SAAQH,OAAO,IAAII,iBAAnB,QAA2C,6BAA3C;AACA,
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["getDefaultCredentials","setDefaultCredentials","default","CartoLayer","_CartoTileLayer","_H3TileLayer","_PointLabelLayer","_QuadbinTileLayer","BASEMAP","colorBins","colorCategories","colorContinuous","FORMATS","TILE_FORMATS","MAP_TYPES","API_VERSIONS","CartoAPIError","fetchLayerData","fetchMap","getDataV2","_getDataV2","mapInstantiation","_mapInstantiation"],"mappings":"AAAA,SAAQA,qBAAR,EAA+BC,qBAA/B,QAA2D,UAA3D;AACA,SAAQC,OAAO,IAAIC,UAAnB,QAAoC,sBAApC;AACA,SAAQD,OAAO,IAAIE,eAAnB,QAAyC,2BAAzC;AACA,SAAQF,OAAO,IAAIG,YAAnB,QAAsC,wBAAtC;AACA,SAAQH,OAAO,IAAII,gBAAnB,QAA0C,4BAA1C;AACA,SAAQJ,OAAO,IAAIK,iBAAnB,QAA2C,6BAA3C;AACA,SAAQL,OAAO,IAAIM,OAAnB,QAAiC,WAAjC;AACA,SAAQN,OAAO,IAAIO,SAAnB,QAAmC,0BAAnC;AACA,SAAQP,OAAO,IAAIQ,eAAnB,QAAyC,gCAAzC;AACA,SAAQR,OAAO,IAAIS,eAAnB,QAAyC,gCAAzC;AACA,SACEC,OADF,EAEEC,YAFF,EAGEC,SAHF,EAIEC,YAJF,EAKEC,aALF,EAMEC,cANF,EAOEC,QAPF,EAQEC,SAAS,IAAIC,UARf,EASEC,gBAAgB,IAAIC,iBATtB,QAUO,OAVP","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as _CartoTileLayer} from './layers/carto-tile-layer';\nexport {default as _H3TileLayer} from './layers/h3-tile-layer';\nexport {default as _PointLabelLayer} from './layers/point-label-layer';\nexport {default as _QuadbinTileLayer} from './layers/quadbin-tile-layer';\nexport {default as BASEMAP} from './basemap';\nexport {default as colorBins} from './style/color-bins-style';\nexport {default as colorCategories} from './style/color-categories-style';\nexport {default as colorContinuous} from './style/color-continuous-style';\nexport {\n FORMATS,\n TILE_FORMATS,\n MAP_TYPES,\n API_VERSIONS,\n CartoAPIError,\n fetchLayerData,\n fetchMap,\n getDataV2 as _getDataV2,\n mapInstantiation as _mapInstantiation\n} from './api';\nexport type {APIErrorContext, QueryParameters} from './api';\nexport type {CartoLayerProps} from './layers/carto-layer';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { CompositeLayer } from '@deck.gl/core';
|
|
3
|
+
import { TextLayer, _TextBackgroundLayer as TextBackgroundLayer } from '@deck.gl/layers';
|
|
4
|
+
const [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];
|
|
5
|
+
|
|
6
|
+
class EnhancedTextBackgroundLayer extends TextBackgroundLayer {
|
|
7
|
+
getShaders() {
|
|
8
|
+
const shaders = super.getShaders();
|
|
9
|
+
let vs = shaders.vs;
|
|
10
|
+
vs = vs.replaceAll('padding.', '_padding.');
|
|
11
|
+
vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
|
|
12
|
+
return { ...shaders,
|
|
13
|
+
vs
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
_defineProperty(EnhancedTextBackgroundLayer, "layerName", 'EnhancedTextBackgroundLayer');
|
|
20
|
+
|
|
21
|
+
class EnhancedTextLayer extends TextLayer {
|
|
22
|
+
filterSubLayer({
|
|
23
|
+
layer,
|
|
24
|
+
renderPass
|
|
25
|
+
}) {
|
|
26
|
+
const background = layer.id.includes('primary-background');
|
|
27
|
+
|
|
28
|
+
if (renderPass === 'collision') {
|
|
29
|
+
return background;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return !background;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_defineProperty(EnhancedTextLayer, "layerName", 'EnhancedTextLayer');
|
|
38
|
+
|
|
39
|
+
const defaultProps = { ...TextLayer.defaultProps,
|
|
40
|
+
getRadius: {
|
|
41
|
+
type: 'accessor',
|
|
42
|
+
value: 1
|
|
43
|
+
},
|
|
44
|
+
radiusScale: {
|
|
45
|
+
type: 'number',
|
|
46
|
+
min: 0,
|
|
47
|
+
value: 1
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export default class PointLabelLayer extends CompositeLayer {
|
|
51
|
+
calculatePixelOffset(secondary) {
|
|
52
|
+
const {
|
|
53
|
+
getTextAnchor: anchor,
|
|
54
|
+
getAlignmentBaseline: alignment,
|
|
55
|
+
getRadius,
|
|
56
|
+
getSecondaryText,
|
|
57
|
+
radiusScale,
|
|
58
|
+
secondarySizeScale,
|
|
59
|
+
sizeScale
|
|
60
|
+
} = this.props;
|
|
61
|
+
const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
|
|
62
|
+
const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
|
|
63
|
+
const xPadding = sizeScale / 4;
|
|
64
|
+
const yPadding = sizeScale * (1 + 1 / 4);
|
|
65
|
+
const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;
|
|
66
|
+
let yOffset = secondary ? secondaryOffset : 0;
|
|
67
|
+
|
|
68
|
+
if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {
|
|
69
|
+
yOffset -= secondaryOffset;
|
|
70
|
+
yOffset -= secondarySizeScale;
|
|
71
|
+
yOffset += sizeScale;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const radiusPadding = 1 + 1 / 4;
|
|
75
|
+
return typeof getRadius === 'function' ? (d, info) => {
|
|
76
|
+
const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
|
|
77
|
+
return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
|
|
78
|
+
} : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
calculateBackgroundPadding() {
|
|
82
|
+
const {
|
|
83
|
+
getTextAnchor: anchor,
|
|
84
|
+
getAlignmentBaseline: alignment,
|
|
85
|
+
sizeScale
|
|
86
|
+
} = this.props;
|
|
87
|
+
const paddingX = 12 * sizeScale;
|
|
88
|
+
const paddingY = 3 * sizeScale;
|
|
89
|
+
const backgroundPadding = [0, 0, 0, 0];
|
|
90
|
+
|
|
91
|
+
if (alignment === 'top') {
|
|
92
|
+
backgroundPadding[TOP] = paddingY;
|
|
93
|
+
} else if (alignment === 'bottom') {
|
|
94
|
+
backgroundPadding[BOTTOM] = paddingY;
|
|
95
|
+
} else {
|
|
96
|
+
backgroundPadding[TOP] = 0.5 * paddingY;
|
|
97
|
+
backgroundPadding[BOTTOM] = 0.5 * paddingY;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (anchor === 'start') {
|
|
101
|
+
backgroundPadding[LEFT] = paddingX;
|
|
102
|
+
} else if (anchor === 'end') {
|
|
103
|
+
backgroundPadding[RIGHT] = paddingX;
|
|
104
|
+
} else {
|
|
105
|
+
backgroundPadding[LEFT] = 0.5 * paddingX;
|
|
106
|
+
backgroundPadding[RIGHT] = 0.5 * paddingX;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return backgroundPadding;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
renderTextLayer(id, {
|
|
113
|
+
updateTriggers: updateTriggersOverride = {},
|
|
114
|
+
...props
|
|
115
|
+
}) {
|
|
116
|
+
const {
|
|
117
|
+
data,
|
|
118
|
+
characterSet,
|
|
119
|
+
fontFamily,
|
|
120
|
+
fontSettings,
|
|
121
|
+
fontWeight,
|
|
122
|
+
outlineColor,
|
|
123
|
+
outlineWidth,
|
|
124
|
+
sizeScale,
|
|
125
|
+
radiusScale,
|
|
126
|
+
getAlignmentBaseline,
|
|
127
|
+
getColor,
|
|
128
|
+
getPosition,
|
|
129
|
+
getTextAnchor,
|
|
130
|
+
updateTriggers
|
|
131
|
+
} = this.props;
|
|
132
|
+
return new EnhancedTextLayer(this.getSubLayerProps({
|
|
133
|
+
id,
|
|
134
|
+
data,
|
|
135
|
+
characterSet,
|
|
136
|
+
fontFamily,
|
|
137
|
+
fontSettings,
|
|
138
|
+
fontWeight,
|
|
139
|
+
outlineColor,
|
|
140
|
+
outlineWidth,
|
|
141
|
+
sizeScale,
|
|
142
|
+
getAlignmentBaseline,
|
|
143
|
+
getColor,
|
|
144
|
+
getPosition,
|
|
145
|
+
getTextAnchor,
|
|
146
|
+
updateTriggers: { ...updateTriggers,
|
|
147
|
+
...updateTriggersOverride,
|
|
148
|
+
getPixelOffset: [updateTriggers.getRadius, updateTriggers.getTextAnchor, updateTriggers.getAlignmentBaseline, radiusScale, sizeScale]
|
|
149
|
+
}
|
|
150
|
+
}), {
|
|
151
|
+
getSize: 1,
|
|
152
|
+
_subLayerProps: {
|
|
153
|
+
background: {
|
|
154
|
+
type: EnhancedTextBackgroundLayer
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}, props);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
renderLayers() {
|
|
161
|
+
const {
|
|
162
|
+
getText,
|
|
163
|
+
getSecondaryColor,
|
|
164
|
+
getSecondaryText,
|
|
165
|
+
secondaryOutlineColor,
|
|
166
|
+
secondarySizeScale,
|
|
167
|
+
updateTriggers
|
|
168
|
+
} = this.props;
|
|
169
|
+
const getPixelOffset = this.calculatePixelOffset(false);
|
|
170
|
+
const backgroundPadding = this.calculateBackgroundPadding();
|
|
171
|
+
const out = [this.renderTextLayer("".concat(updateTriggers.getText, "-primary"), {
|
|
172
|
+
backgroundPadding,
|
|
173
|
+
getText,
|
|
174
|
+
getPixelOffset,
|
|
175
|
+
background: true
|
|
176
|
+
}), Boolean(getSecondaryText) && this.renderTextLayer("".concat(updateTriggers.getSecondaryText, "-secondary"), {
|
|
177
|
+
getText: getSecondaryText,
|
|
178
|
+
getPixelOffset: this.calculatePixelOffset(true),
|
|
179
|
+
getAlignmentBaseline: 'top',
|
|
180
|
+
...(getSecondaryColor && {
|
|
181
|
+
getColor: getSecondaryColor
|
|
182
|
+
}),
|
|
183
|
+
...(secondarySizeScale && {
|
|
184
|
+
sizeScale: secondarySizeScale
|
|
185
|
+
}),
|
|
186
|
+
...(secondaryOutlineColor && {
|
|
187
|
+
outlineColor: secondaryOutlineColor
|
|
188
|
+
})
|
|
189
|
+
})];
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
_defineProperty(PointLabelLayer, "layerName", 'PointLabelLayer');
|
|
196
|
+
|
|
197
|
+
_defineProperty(PointLabelLayer, "defaultProps", defaultProps);
|
|
198
|
+
//# sourceMappingURL=point-label-layer.js.map
|
|
@@ -0,0 +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,5 +1,5 @@
|
|
|
1
1
|
import { TileReader } from './carto-spatial-tile';
|
|
2
|
-
import { parsePbf
|
|
2
|
+
import { parsePbf } from './tile-loader-utils';
|
|
3
3
|
import { binaryToSpatialjson } from './spatialjson-utils';
|
|
4
4
|
const CartoSpatialTileLoader = {
|
|
5
5
|
name: 'CARTO Spatial Tile',
|
|
@@ -29,9 +29,7 @@ function parseCartoSpatialTile(arrayBuffer, options) {
|
|
|
29
29
|
} = tile;
|
|
30
30
|
const scheme = options === null || options === void 0 ? void 0 : (_options$cartoSpatial = options.cartoSpatialTile) === null || _options$cartoSpatial === void 0 ? void 0 : _options$cartoSpatial.scheme;
|
|
31
31
|
const data = {
|
|
32
|
-
cells
|
|
33
|
-
properties: unpackProperties(cells.properties)
|
|
34
|
-
},
|
|
32
|
+
cells,
|
|
35
33
|
scheme
|
|
36
34
|
};
|
|
37
35
|
return binaryToSpatialjson(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","binaryToSpatialjson","CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","cartoSpatialTile","scheme","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAE,GAFsC;AAG/CC,EAAAA,EAAE,EAAE,kBAH2C;AAI/CC,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,MAAM,EAAE,KARuC;AAS/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CD,EAAAA,OAAO,EAAE;AACPG,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,MAAM,EAAE;AADQ;AADX;AAXsC,CAAjD;;AAkBA,SAASH,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMM,IAAU,GAAGlB,QAAQ,CAACY,WAAD,EAAcb,UAAd,CAA3B;AAEA,QAAM;AAACoB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMD,MAAM,GAAGJ,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEG,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMG,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQF,IAAAA;AAAR,GAAb;AAEA,SAAOhB,mBAAmB,CAACmB,IAAD,CAA1B;AACD;;AAED,eAAelB,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: '1',\n id: 'cartoSpatialTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n options: {\n cartoSpatialTile: {\n scheme: 'quadbin'\n } as {scheme: IndexScheme}\n }\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
+
import { readPackedFixed64 } from './fast-pbf';
|
|
1
2
|
import { NumericPropKeyValueReader, PropertiesReader } from './carto-tile';
|
|
2
3
|
export class IndicesReader {
|
|
3
4
|
static read(pbf, end) {
|
|
4
|
-
|
|
5
|
-
value
|
|
6
|
-
} = pbf.readFields(IndicesReader._readField, {
|
|
5
|
+
return pbf.readFields(IndicesReader._readField, {
|
|
7
6
|
value: []
|
|
8
7
|
}, end);
|
|
9
|
-
return {
|
|
10
|
-
value: new BigUint64Array(value)
|
|
11
|
-
};
|
|
12
8
|
}
|
|
13
9
|
|
|
14
10
|
static _readField(tag, obj, pbf) {
|
|
15
|
-
if (tag === 1) readPackedFixed64(pbf, obj
|
|
11
|
+
if (tag === 1) readPackedFixed64(pbf, obj);
|
|
16
12
|
}
|
|
17
13
|
|
|
18
14
|
}
|
|
@@ -48,25 +44,4 @@ export class TileReader {
|
|
|
48
44
|
}
|
|
49
45
|
|
|
50
46
|
}
|
|
51
|
-
const SHIFT_LEFT_32 = BigInt((1 << 16) * (1 << 16));
|
|
52
|
-
|
|
53
|
-
function readPackedEnd(pbf) {
|
|
54
|
-
return pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function readFixed64(pbf) {
|
|
58
|
-
const a = BigInt(pbf.readFixed32());
|
|
59
|
-
const b = BigInt(pbf.readFixed32());
|
|
60
|
-
return a + b * SHIFT_LEFT_32;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function readPackedFixed64(pbf, arr) {
|
|
64
|
-
if (pbf.type !== 2) return arr.push(readFixed64(pbf));
|
|
65
|
-
const end = readPackedEnd(pbf);
|
|
66
|
-
arr = arr || [];
|
|
67
|
-
|
|
68
|
-
while (pbf.pos < end) arr.push(readFixed64(pbf));
|
|
69
|
-
|
|
70
|
-
return arr;
|
|
71
|
-
}
|
|
72
47
|
//# sourceMappingURL=carto-spatial-tile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile.ts"],"names":["NumericPropKeyValueReader","PropertiesReader","IndicesReader","read","pbf","end","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile.ts"],"names":["readPackedFixed64","NumericPropKeyValueReader","PropertiesReader","IndicesReader","read","pbf","end","readFields","_readField","value","tag","obj","CellsReader","indices","properties","numericProps","readVarint","pos","push","entry","key","TileReader","scheme","cells"],"mappings":"AAAA,SAAQA,iBAAR,QAAgC,YAAhC;AAEA,SAAqBC,yBAArB,EAAgDC,gBAAhD,QAAuE,cAAvE;AAIA,OAAO,MAAMC,aAAN,CAAoB;AACd,SAAJC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA6B;AACtC,WAAOD,GAAG,CAACE,UAAJ,CAAeJ,aAAa,CAACK,UAA7B,EAAyC;AAACC,MAAAA,KAAK,EAAE;AAAR,KAAzC,EAAsDH,GAAtD,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaE,GAAb,EAA0BC,GAA1B,EAA+BN,GAA/B,EAAoC;AACnD,QAAIK,GAAG,KAAK,CAAZ,EAAeV,iBAAiB,CAACK,GAAD,EAAMM,GAAN,CAAjB;AAChB;;AANwB;;AAiB3B,MAAMC,WAAN,CAAkB;AACL,SAAJR,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA2B;AACpC,WAAOD,GAAG,CAACE,UAAJ,CACLK,WAAW,CAACJ,UADP,EAEL;AAACK,MAAAA,OAAO,EAAE,IAAV;AAAgBC,MAAAA,UAAU,EAAE,EAA5B;AAAgCC,MAAAA,YAAY,EAAE;AAA9C,KAFK,EAGLT,GAHK,CAAP;AAKD;;AACgB,SAAVE,UAAU,CAAaE,GAAb,EAA0BC,GAA1B,EAAsCN,GAAtC,EAA2C;AAC1D,QAAIK,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACE,OAAJ,GAAcV,aAAa,CAACC,IAAd,CAAmBC,GAAnB,EAAwBA,GAAG,CAACW,UAAJ,KAAmBX,GAAG,CAACY,GAA/C,CAAd,CAAf,KACK,IAAIP,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACG,UAAJ,CAAeI,IAAf,CAAoBhB,gBAAgB,CAACE,IAAjB,CAAsBC,GAAtB,EAA2BA,GAAG,CAACW,UAAJ,KAAmBX,GAAG,CAACY,GAAlD,CAApB,EAAf,KACA,IAAIP,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMS,KAAK,GAAGlB,yBAAyB,CAACG,IAA1B,CAA+BC,GAA/B,EAAoCA,GAAG,CAACW,UAAJ,KAAmBX,GAAG,CAACY,GAA3D,CAAd;AACAN,MAAAA,GAAG,CAACI,YAAJ,CAAiBI,KAAK,CAACC,GAAvB,IAA8BD,KAAK,CAACV,KAApC;AACD;AACF;;AAfe;;AA0BlB,OAAO,MAAMY,UAAN,CAAiB;AACX,SAAJjB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA0B;AACnC,WAAOD,GAAG,CAACE,UAAJ,CAAec,UAAU,CAACb,UAA1B,EAAsC;AAACc,MAAAA,MAAM,EAAE,CAAT;AAAYC,MAAAA,KAAK,EAAE;AAAnB,KAAtC,EAAgEjB,GAAhE,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaE,GAAb,EAA0BC,GAA1B,EAAqCN,GAArC,EAA0C;AACzD,QAAIK,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACW,MAAJ,GAAajB,GAAG,CAACW,UAAJ,EAAb,CAAf,KACK,IAAIN,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACY,KAAJ,GAAYX,WAAW,CAACR,IAAZ,CAAiBC,GAAjB,EAAsBA,GAAG,CAACW,UAAJ,KAAmBX,GAAG,CAACY,GAA7C,CAAZ;AACrB;;AAPqB","sourcesContent":["import {readPackedFixed64} from './fast-pbf';\nimport {Indices, IndexScheme} from './spatialjson-utils';\nimport {NumericProp, NumericPropKeyValueReader, PropertiesReader} from './carto-tile';\n\n// Indices =====================================\n\nexport class IndicesReader {\n static read(pbf, end?: number): Indices {\n return pbf.readFields(IndicesReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedFixed64(pbf, obj);\n }\n}\n\n// Cells =========================================\n\ninterface Cells {\n indices: Indices;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n}\n\nclass CellsReader {\n static read(pbf, end?: number): Cells {\n return pbf.readFields(\n CellsReader._readField,\n {indices: null, properties: [], numericProps: {}},\n end\n );\n }\n static _readField(this: void, tag: number, obj: Cells, pbf) {\n if (tag === 1) obj.indices = IndicesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 3) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n }\n }\n}\n\n// Tile ========================================\n\n// TODO this type is very similar to SpatialBinary, should align\nexport interface Tile {\n scheme: IndexScheme;\n cells: Cells;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {scheme: 0, cells: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.scheme = pbf.readVarint();\n else if (tag === 2) obj.cells = CellsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-spatial-tile.js"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readPackedDouble } from './fast-pbf';
|
|
2
|
+
|
|
1
3
|
class KeyValueObjectReader {
|
|
2
4
|
static read(pbf, end) {
|
|
3
5
|
return pbf.readFields(KeyValueObjectReader._readField, {
|
|
@@ -14,13 +16,17 @@ class KeyValueObjectReader {
|
|
|
14
16
|
|
|
15
17
|
export class PropertiesReader {
|
|
16
18
|
static read(pbf, end) {
|
|
17
|
-
return pbf.readFields(PropertiesReader._readField, {
|
|
18
|
-
data: []
|
|
19
|
-
}, end);
|
|
19
|
+
return pbf.readFields(PropertiesReader._readField, {}, end);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
static _readField(tag, obj, pbf) {
|
|
23
|
-
if (tag === 1)
|
|
23
|
+
if (tag === 1) {
|
|
24
|
+
const {
|
|
25
|
+
key,
|
|
26
|
+
value
|
|
27
|
+
} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);
|
|
28
|
+
obj[key] = value;
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
}
|
|
@@ -41,7 +47,7 @@ class DoublesReader {
|
|
|
41
47
|
}
|
|
42
48
|
|
|
43
49
|
static _readField(tag, obj, pbf) {
|
|
44
|
-
if (tag === 1)
|
|
50
|
+
if (tag === 1) readPackedDouble(pbf, obj);else if (tag === 2) obj.size = pbf.readVarint(true);
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
}
|
|
@@ -88,7 +94,7 @@ class NumericPropReader {
|
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
static _readField(tag, obj, pbf) {
|
|
91
|
-
if (tag === 1)
|
|
97
|
+
if (tag === 1) readPackedDouble(pbf, obj);
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","data","push","readVarint","pos","DoublesReader","size","Float32Array","readPackedDouble","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: ''}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport interface KeyValueProperties {\n data: KeyValueObject[];\n}\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {data: []}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueProperties, pbf) {\n if (tag === 1) obj.data.push(KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n // TODO perhaps we can do better and directly map from the source\n // ArrayBuffer using ArrayBuffer.slice()\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedDouble(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) pbf.readPackedDouble(obj.value);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: KeyValueProperties[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["readPackedDouble","KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","readVarint","pos","DoublesReader","size","Float32Array","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","push","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["import {readPackedDouble} from './fast-pbf';\n\n// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: ''}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {}, end);\n }\n static _readField(this: void, tag: number, obj: Record<string, string>, pbf) {\n if (tag === 1) {\n const {key, value} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj[key] = value;\n }\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedDouble(pbf, obj);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) readPackedDouble(pbf, obj);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
|