@deck.gl/carto 8.9.33 → 8.9.35
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 +8 -11
- package/dist/es5/api/layer-map.js +1 -1
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +1 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +18 -9
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/api/layer-map.js +1 -1
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +1 -1
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +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 +12 -9
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist.min.js +15 -15
- package/package.json +2 -2
- package/src/api/layer-map.ts +3 -1
- package/src/api/maps-api-common.ts +1 -1
- package/src/layers/spatial-index-tile-layer.ts +18 -10
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-api-common.d.ts.map +1 -1
- package/typed/layers/spatial-index-tile-layer.d.ts +7 -3
- package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/src/.DS_Store +0 -0
|
@@ -1045,7 +1045,7 @@
|
|
|
1045
1045
|
}
|
|
1046
1046
|
|
|
1047
1047
|
// src/layers/schema/carto-raster-tile-loader.ts
|
|
1048
|
-
var VERSION = true ? "8.9.
|
|
1048
|
+
var VERSION = true ? "8.9.35" : "latest";
|
|
1049
1049
|
var id = "cartoRasterTile";
|
|
1050
1050
|
var DEFAULT_OPTIONS = {
|
|
1051
1051
|
cartoRasterTile: {
|
|
@@ -1432,7 +1432,7 @@
|
|
|
1432
1432
|
}
|
|
1433
1433
|
|
|
1434
1434
|
// src/layers/schema/carto-spatial-tile-loader.ts
|
|
1435
|
-
var VERSION = true ? "8.9.
|
|
1435
|
+
var VERSION = true ? "8.9.35" : "latest";
|
|
1436
1436
|
var id = "cartoSpatialTile";
|
|
1437
1437
|
var DEFAULT_OPTIONS = {
|
|
1438
1438
|
cartoSpatialTile: {
|
|
@@ -1662,7 +1662,7 @@
|
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
1664
|
// src/layers/schema/carto-vector-tile-loader.ts
|
|
1665
|
-
var VERSION = true ? "8.9.
|
|
1665
|
+
var VERSION = true ? "8.9.35" : "latest";
|
|
1666
1666
|
var id = "cartoVectorTile";
|
|
1667
1667
|
var DEFAULT_OPTIONS = {
|
|
1668
1668
|
cartoVectorTile: {
|
package/dist/dist.dev.js
CHANGED
|
@@ -9155,7 +9155,7 @@ var __exports__ = (() => {
|
|
|
9155
9155
|
TILESET: "tileset",
|
|
9156
9156
|
RASTER: "raster"
|
|
9157
9157
|
};
|
|
9158
|
-
var COLUMNS_SUPPORT = [MAP_TYPES.TABLE];
|
|
9158
|
+
var COLUMNS_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
|
|
9159
9159
|
var GEO_COLUMN_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
|
|
9160
9160
|
var FORMATS = {
|
|
9161
9161
|
GEOJSON: "geojson",
|
|
@@ -12996,7 +12996,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
12996
12996
|
hoveredFeatureId
|
|
12997
12997
|
} = this.state;
|
|
12998
12998
|
const hoveredFeature = info.object;
|
|
12999
|
-
let newHoveredFeatureId;
|
|
12999
|
+
let newHoveredFeatureId = null;
|
|
13000
13000
|
if (hoveredFeature) {
|
|
13001
13001
|
newHoveredFeatureId = hoveredFeature.id;
|
|
13002
13002
|
}
|
|
@@ -13031,19 +13031,16 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13031
13031
|
return data.findIndex((feature) => feature.id === hoveredFeatureId);
|
|
13032
13032
|
}
|
|
13033
13033
|
_featureInTile(tile, featureId) {
|
|
13034
|
-
const
|
|
13035
|
-
|
|
13036
|
-
getParentIndex
|
|
13037
|
-
} = this.state.tileset;
|
|
13038
|
-
const tileZoom = getTileZoom(tile.index);
|
|
13034
|
+
const tileset = this.state.tileset;
|
|
13035
|
+
const tileZoom = tileset.getTileZoom(tile.index);
|
|
13039
13036
|
const KEY = tile.index.q ? "q" : "i";
|
|
13040
13037
|
let featureIndex = {
|
|
13041
13038
|
[KEY]: featureId
|
|
13042
13039
|
};
|
|
13043
|
-
let featureZoom = getTileZoom(featureIndex);
|
|
13040
|
+
let featureZoom = tileset.getTileZoom(featureIndex);
|
|
13044
13041
|
while (!(featureZoom <= tileZoom)) {
|
|
13045
|
-
featureIndex = getParentIndex(featureIndex);
|
|
13046
|
-
featureZoom = getTileZoom(featureIndex);
|
|
13042
|
+
featureIndex = tileset.getParentIndex(featureIndex);
|
|
13043
|
+
featureZoom = tileset.getTileZoom(featureIndex);
|
|
13047
13044
|
}
|
|
13048
13045
|
return featureIndex[KEY] === tile.index[KEY];
|
|
13049
13046
|
}
|
|
@@ -13793,7 +13790,7 @@ void main(void) {
|
|
|
13793
13790
|
return attribute.categories.map((c) => c.category).filter((c) => c !== void 0 && c !== null);
|
|
13794
13791
|
}
|
|
13795
13792
|
if (scaleType === "quantile" && attribute.quantiles) {
|
|
13796
|
-
return attribute.quantiles[scaleLength];
|
|
13793
|
+
return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
|
|
13797
13794
|
}
|
|
13798
13795
|
let {
|
|
13799
13796
|
min: min2
|
|
@@ -336,7 +336,7 @@ function domainFromAttribute(attribute, scaleType, scaleLength) {
|
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
if (scaleType === 'quantile' && attribute.quantiles) {
|
|
339
|
-
return attribute.quantiles[scaleLength];
|
|
339
|
+
return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
var min = attribute.min;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","scaleIdentity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","RasterTileLayer","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","proxy","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","colorColumn","range","scale","calculateLayerScale","alpha","accessorKeys","propertyValue","domain","scaleColor","colorMap","forEach","value","push","slice","unknown","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport RasterTileLayer from '../layers/raster-tile-layer';\nimport {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';\nimport {assert, createBinaryProxy, scaleIdentity} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold,\n identity: scaleIdentity\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: TileFormat | null = TILE_FORMATS.MVT,\n scheme: string,\n type?: MapType\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (type === 'raster') {\n return RasterTileLayer;\n }\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === 'mvt') {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') as TileFormat;\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const proxy = createBinaryProxy(data, index);\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation?: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name, colorColumn}: VisualChannelField,\n scaleType: SCALE_TYPE,\n {aggregation, range},\n opacity: number | undefined,\n data: any\n) {\n const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nfunction calculateLayerScale(name, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (scaleType !== 'identity') {\n const {colorMap, colors} = range;\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n\n return scale;\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","custom","scaleThreshold","identity","scaleIdentity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","length","median","mode","pop","stddev","deviation","variance","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","GeoJsonLayer","propMap","altitude","parameters","depthTest","Boolean","outline","geojson","grid","CPUGridLayer","worldUnitSize","cellSize","heatmap","HeatmapLayer","hexagon","HexagonLayer","H3HexagonLayer","getHexagon","layer","layerFromTileDataset","formatTiles","TILE_FORMATS","MVT","scheme","RasterTileLayer","H3TileLayer","QuadbinTileLayer","MVTLayer","CartoTileLayer","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","global","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","object","info","__source","index","proxy","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","colorColumn","range","scale","calculateLayerScale","alpha","accessorKeys","propertyValue","domain","scaleColor","colorMap","forEach","value","push","slice","unknown","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerMap","markerUrl","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport RasterTileLayer from '../layers/raster-tile-layer';\nimport {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';\nimport {assert, createBinaryProxy, scaleIdentity} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold,\n identity: scaleIdentity\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler prop value -> Deck.gl prop value\n// Supports nested definitions, and function transforms:\n// {keplerProp: 'deckProp'} is equivalent to:\n// {keplerProp: x => ({deckProp: x})}\nconst sharedPropMap = {\n // Apply the value of Kepler `color` prop to the deck `getFillColor` prop\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {\n columns: {\n altitude: x => ({parameters: {depthTest: Boolean(x)}})\n },\n visConfig: {outline: 'stroked'}\n }\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: TileFormat | null = TILE_FORMATS.MVT,\n scheme: string,\n type?: MapType\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (type === 'raster') {\n return RasterTileLayer;\n }\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === 'mvt') {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') as TileFormat;\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles.global\n ? attribute.quantiles.global[scaleLength]\n : attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return (object, info) => {\n if (object) {\n return accessor(object.properties || object.__source.object.properties);\n }\n\n const {data, index} = info;\n const proxy = createBinaryProxy(data, index);\n return accessor(proxy);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation?: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name, colorColumn}: VisualChannelField,\n scaleType: SCALE_TYPE,\n {aggregation, range},\n opacity: number | undefined,\n data: any\n) {\n const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);\n const alpha = opacityToAlpha(opacity);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nfunction calculateLayerScale(name, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (scaleType !== 'identity') {\n const {colorMap, colors} = range;\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType, colors.length);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n\n return scale;\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n if (aggregation !== 'count') {\n scale.domain(calculateDomain(data, name, scaleType));\n }\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
|
@@ -31,7 +31,7 @@ var MAP_TYPES = {
|
|
|
31
31
|
RASTER: 'raster'
|
|
32
32
|
};
|
|
33
33
|
exports.MAP_TYPES = MAP_TYPES;
|
|
34
|
-
var COLUMNS_SUPPORT = [MAP_TYPES.TABLE];
|
|
34
|
+
var COLUMNS_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
|
|
35
35
|
exports.COLUMNS_SUPPORT = COLUMNS_SUPPORT;
|
|
36
36
|
var GEO_COLUMN_SUPPORT = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
|
|
37
37
|
exports.GEO_COLUMN_SUPPORT = GEO_COLUMN_SUPPORT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","RASTER","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent","FilterTypes"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE,SAHc;AAIvBC,EAAAA,MAAM,EAAE;AAJe,CAAlB;;AAOA,IAAMC,eAA0B,GAAG,CAACL,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","RASTER","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","REQUEST_TYPES","DATA","INSTANTIATION","PUBLIC_MAP","TILE_STATS","encodeParameter","name","value","encodeURIComponent","FilterTypes"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE,SAHc;AAIvBC,EAAAA,MAAM,EAAE;AAJe,CAAlB;;AAOA,IAAMC,eAA0B,GAAG,CAACL,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAnC;;AACA,IAAMI,kBAA6B,GAAG,CAACN,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;;AAGA,IAAMK,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;;IAQKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AA8BL,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,UADqB;AAE3BC,EAAAA,aAAa,EAAE,mBAFY;AAG3BC,EAAAA,UAAU,EAAE,YAHe;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAAtB;;;AAWA,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD;;IAsBWE,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset',\n RASTER: 'raster'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\nexport const REQUEST_TYPES = {\n DATA: 'Map data',\n INSTANTIATION: 'Map instantiation',\n PUBLIC_MAP: 'Public map',\n TILE_STATS: 'Tile stats'\n} as const;\nexport type RequestType = ValuesOf<typeof REQUEST_TYPES>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n\nexport type QueryParameterValue = string | number | boolean | Array<QueryParameterValue> | object;\n\nexport type NamedQueryParameter = Record<string, QueryParameterValue>;\n\nexport type PositionalQueryParameter = QueryParameterValue[];\n\nexport type QueryParameters = NamedQueryParameter | PositionalQueryParameter;\n\nexport interface Filters {\n [column: string]: Filter;\n}\n\ninterface Filter {\n [FilterTypes.In]: number[];\n [FilterTypes.Between]: number[][];\n [FilterTypes.ClosedOpen]: number[][];\n [FilterTypes.Time]: number[][];\n [FilterTypes.StringSearch]: string[];\n}\n\nexport enum FilterTypes {\n In = 'in',\n Between = 'between', // [a, b] both are included\n ClosedOpen = 'closed_open', // [a, b) a is included, b is not\n Time = 'time',\n StringSearch = 'stringSearch'\n}\n"],"file":"maps-api-common.js"}
|
|
@@ -17,7 +17,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
|
|
|
17
17
|
|
|
18
18
|
var _utils = require("../../utils");
|
|
19
19
|
|
|
20
|
-
var VERSION = typeof "8.9.
|
|
20
|
+
var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
|
|
21
21
|
var id = 'cartoRasterTile';
|
|
22
22
|
var DEFAULT_OPTIONS = {
|
|
23
23
|
cartoRasterTile: {
|
|
@@ -19,7 +19,7 @@ var _utils = require("../../utils");
|
|
|
19
19
|
|
|
20
20
|
var _spatialjsonUtils = require("./spatialjson-utils");
|
|
21
21
|
|
|
22
|
-
var VERSION = typeof "8.9.
|
|
22
|
+
var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
|
|
23
23
|
var id = 'cartoSpatialTile';
|
|
24
24
|
var DEFAULT_OPTIONS = {
|
|
25
25
|
cartoSpatialTile: {
|
|
@@ -19,7 +19,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
|
|
|
19
19
|
|
|
20
20
|
var _utils = require("../../utils");
|
|
21
21
|
|
|
22
|
-
var VERSION = typeof "8.9.
|
|
22
|
+
var VERSION = typeof "8.9.35" !== 'undefined' ? "8.9.35" : 'latest';
|
|
23
23
|
var id = 'cartoVectorTile';
|
|
24
24
|
var DEFAULT_OPTIONS = {
|
|
25
25
|
cartoVectorTile: {
|
|
@@ -11,6 +11,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
11
11
|
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
14
16
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
17
|
|
|
16
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -49,8 +51,17 @@ var SpatialIndexTileLayer = function (_TileLayer) {
|
|
|
49
51
|
var _super = _createSuper(SpatialIndexTileLayer);
|
|
50
52
|
|
|
51
53
|
function SpatialIndexTileLayer() {
|
|
54
|
+
var _this;
|
|
55
|
+
|
|
52
56
|
(0, _classCallCheck2.default)(this, SpatialIndexTileLayer);
|
|
53
|
-
|
|
57
|
+
|
|
58
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
59
|
+
args[_key] = arguments[_key];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
63
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
|
|
64
|
+
return _this;
|
|
54
65
|
}
|
|
55
66
|
|
|
56
67
|
(0, _createClass2.default)(SpatialIndexTileLayer, [{
|
|
@@ -72,7 +83,7 @@ var SpatialIndexTileLayer = function (_TileLayer) {
|
|
|
72
83
|
value: function _updateAutoHighlight(info) {
|
|
73
84
|
var hoveredFeatureId = this.state.hoveredFeatureId;
|
|
74
85
|
var hoveredFeature = info.object;
|
|
75
|
-
var newHoveredFeatureId;
|
|
86
|
+
var newHoveredFeatureId = null;
|
|
76
87
|
|
|
77
88
|
if (hoveredFeature) {
|
|
78
89
|
newHoveredFeatureId = hoveredFeature.id;
|
|
@@ -117,17 +128,15 @@ var SpatialIndexTileLayer = function (_TileLayer) {
|
|
|
117
128
|
}, {
|
|
118
129
|
key: "_featureInTile",
|
|
119
130
|
value: function _featureInTile(tile, featureId) {
|
|
120
|
-
var
|
|
121
|
-
|
|
122
|
-
getParentIndex = _this$state$tileset.getParentIndex;
|
|
123
|
-
var tileZoom = getTileZoom(tile.index);
|
|
131
|
+
var tileset = this.state.tileset;
|
|
132
|
+
var tileZoom = tileset.getTileZoom(tile.index);
|
|
124
133
|
var KEY = tile.index.q ? 'q' : 'i';
|
|
125
134
|
var featureIndex = (0, _defineProperty2.default)({}, KEY, featureId);
|
|
126
|
-
var featureZoom = getTileZoom(featureIndex);
|
|
135
|
+
var featureZoom = tileset.getTileZoom(featureIndex);
|
|
127
136
|
|
|
128
137
|
while (!(featureZoom <= tileZoom)) {
|
|
129
|
-
featureIndex = getParentIndex(featureIndex);
|
|
130
|
-
featureZoom = getTileZoom(featureIndex);
|
|
138
|
+
featureIndex = tileset.getParentIndex(featureIndex);
|
|
139
|
+
featureZoom = tileset.getTileZoom(featureIndex);
|
|
131
140
|
}
|
|
132
141
|
|
|
133
142
|
return featureIndex[KEY] === tile.index[KEY];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoRasterTileLoader","CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","params","props","oldProps","setState","tileset","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoRasterTileLoader","CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","params","props","oldProps","setState","tileset","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","tileZoom","getTileZoom","index","KEY","q","featureIndex","featureZoom","getParentIndex","TileLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAIA;;;;;;AAHA,2BAAgB,CAACA,8BAAD,EAAwBC,+BAAxB,CAAhB;;AAKA,SAASC,kBAAT,CAA4BC,KAA5B,EAAqD;AACnD,SAAOA,KAAK,KAAKC,SAAV,IAAuBD,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;AACD;;AAED,IAAME,YAAsD,GAAG;AAC7DC,EAAAA,mBAAmB,EAAE;AADwC,CAA/D;;IAaqBC,qB;;;;;;;;;;;;;;;;;;;;;WAanB,qBAAYC,MAAZ,EAA4C;AAC1C,UAAOC,KAAP,GAA0BD,MAA1B,CAAOC,KAAP;AAAA,UAAcC,QAAd,GAA0BF,MAA1B,CAAcE,QAAd;;AACA,UAAID,KAAK,CAACH,mBAAN,KAA8BI,QAAQ,CAACJ,mBAA3C,EAAgE;AAE9D,aAAKK,QAAL,CAAc;AAACC,UAAAA,OAAO,EAAE;AAAV,SAAd;AACD;;AAED,yHAAkBJ,MAAlB;AACD;;;WAED,8BAA+BK,IAA/B,EAAwD;AACtD,UAAOC,gBAAP,GAA2B,KAAKC,KAAhC,CAAOD,gBAAP;AACA,UAAME,cAAc,GAAGH,IAAI,CAACI,MAA5B;AACA,UAAIC,mBAA2C,GAAG,IAAlD;;AAEA,UAAIF,cAAJ,EAAoB;AAClBE,QAAAA,mBAAmB,GAAGF,cAAc,CAACG,EAArC;AACD;;AAED,UAAIL,gBAAgB,KAAKI,mBAAzB,EAA8C;AAC5C,YAAKE,cAAL,GAAuB,KAAKX,KAA5B,CAAKW,cAAL;;AACA,YAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,UAAAA,cAAc,GAAGA,cAAc,CAACP,IAAD,CAA/B;AACD;;AAED,aAAKF,QAAL,CAAc;AACZS,UAAAA,cAAc,EAAdA,cADY;AAEZN,UAAAA,gBAAgB,EAAEI;AAFN,SAAd;AAID;AACF;;;WAED,gCAAuBG,IAAvB,EAA2C;AACzC,aAAO;AACLC,QAAAA,sBAAsB,EAAE,KAAKC,yBAAL,CAA+BF,IAA/B,CADnB;AAELD,QAAAA,cAAc,EAAE,KAAKL,KAAL,CAAWK;AAFtB,OAAP;AAID;;;WAED,mCAA0BC,IAA1B,EAA8C;AAC5C,UAAOP,gBAAP,GAA2B,KAAKC,KAAhC,CAAOD,gBAAP;AACA,UAAMU,IAAI,GAAGH,IAAI,CAACI,OAAlB;AAEA,UAAMC,kBAAkB,GAAGxB,kBAAkB,CAACY,gBAAD,CAA7C;;AACA,UACE,CAACY,kBAAD,IACA,CAACC,KAAK,CAACC,OAAN,CAAcJ,IAAd,CADD,IAGA,CAAC,KAAKK,cAAL,CAAoBR,IAApB,EAA0BP,gBAA1B,CAJH,EAKE;AACA,eAAO,CAAC,CAAR;AACD;;AAED,aAAOU,IAAI,CAACM,SAAL,CAAe,UAAAC,OAAO;AAAA,eAAIA,OAAO,CAACZ,EAAR,KAAeL,gBAAnB;AAAA,OAAtB,CAAP;AACD;;;WAED,wBAAeO,IAAf,EAAmCW,SAAnC,EAA+D;AAE7D,UAAMpB,OAAO,GAAG,KAAKG,KAAL,CAAWH,OAA3B;AACA,UAAMqB,QAAQ,GAAGrB,OAAO,CAACsB,WAAR,CAAoBb,IAAI,CAACc,KAAzB,CAAjB;AAEA,UAAMC,GAAG,GAAGf,IAAI,CAACc,KAAL,CAAWE,CAAX,GAAe,GAAf,GAAqB,GAAjC;AAEA,UAAIC,YAAiB,qCAAKF,GAAL,EAAWJ,SAAX,CAArB;AACA,UAAIO,WAAW,GAAG3B,OAAO,CAACsB,WAAR,CAAoBI,YAApB,CAAlB;;AACA,aAAO,EAAEC,WAAW,IAAIN,QAAjB,CAAP,EAAmC;AACjCK,QAAAA,YAAY,GAAG1B,OAAO,CAAC4B,cAAR,CAAuBF,YAAvB,CAAf;AACAC,QAAAA,WAAW,GAAG3B,OAAO,CAACsB,WAAR,CAAoBI,YAApB,CAAd;AACD;;AAED,aAAOA,YAAY,CAACF,GAAD,CAAZ,KAAsBf,IAAI,CAACc,KAAL,CAAWC,GAAX,CAA7B;AACD;;;EAjFOK,oB;;;8BAHWlC,qB,eAIA,uB;8BAJAA,qB,kBAKGF,Y","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, TileLayerProps} 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<DataT> &\n TileLayerProps<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n state!: TileLayer<DataT>['state'] & {\n // TODO: tileset: Tileset2D should be generic for either H3Tileset2D or QuadbinTileset2D\n hoveredFeatureId: BigInt | number | null;\n highlightColor?: number[];\n };\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: BigInt | number | null = null;\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 // TODO: Tile2DHeader index should be generic for H3TileIndex or QuadbinTileIndex\n const tileset = this.state.tileset!;\n const tileZoom = tileset.getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n // TODO - Tileset2D methods expect tile index in the shape of {x, y, z}\n let featureIndex: any = {[KEY]: featureId};\n let featureZoom = tileset.getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = tileset.getParentIndex(featureIndex);\n featureZoom = tileset.getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
|
|
@@ -261,7 +261,7 @@ function domainFromAttribute(attribute, scaleType, scaleLength) {
|
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
if (scaleType === 'quantile' && attribute.quantiles) {
|
|
264
|
-
return attribute.quantiles[scaleLength];
|
|
264
|
+
return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
let {
|