@deck.gl/carto 8.7.0-alpha.9 → 8.7.0-beta.4
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 +1373 -2897
- package/dist/es5/api/index.js +6 -0
- package/dist/es5/api/index.js.map +1 -1
- package/dist/es5/api/layer-map.js +67 -42
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +7 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +33 -26
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +23 -18
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/index.js +14 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-dynamic-tile-layer.js +56 -13
- package/dist/es5/layers/carto-dynamic-tile-layer.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +13 -5
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-dynamic-tile.js +197 -0
- package/dist/es5/layers/schema/carto-dynamic-tile.js.map +1 -0
- package/dist/esm/api/index.js +1 -1
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/layer-map.js +50 -35
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +5 -0
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +29 -17
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +31 -27
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-dynamic-tile-layer.js +51 -10
- package/dist/esm/layers/carto-dynamic-tile-layer.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +11 -2
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-dynamic-tile.js +190 -0
- package/dist/esm/layers/schema/carto-dynamic-tile.js.map +1 -0
- package/dist.min.js +14 -14
- package/package.json +10 -9
- package/src/api/index.js +1 -1
- package/src/api/layer-map.js +47 -26
- package/src/api/maps-api-common.js +7 -0
- package/src/api/maps-v3-client.js +35 -18
- package/src/api/parseMap.js +23 -21
- package/src/index.js +2 -0
- package/src/layers/carto-dynamic-tile-layer.js +41 -11
- package/src/layers/carto-layer.js +22 -6
- package/src/layers/schema/carto-dynamic-tile.js +195 -0
package/dist/es5/api/parseMap.js
CHANGED
|
@@ -53,27 +53,32 @@ function parseMap(json) {
|
|
|
53
53
|
config = _ref.config,
|
|
54
54
|
visualChannels = _ref.visualChannels;
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
try {
|
|
57
|
+
var _getLayer = (0, _layerMap.getLayer)(type, config),
|
|
58
|
+
Layer = _getLayer.Layer,
|
|
59
|
+
propMap = _getLayer.propMap,
|
|
60
|
+
defaultProps = _getLayer.defaultProps;
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var dataId = config.dataId;
|
|
63
|
-
var dataset = datasets.find(function (d) {
|
|
64
|
-
return d.id === dataId;
|
|
65
|
-
});
|
|
62
|
+
var dataId = config.dataId;
|
|
63
|
+
var dataset = datasets.find(function (d) {
|
|
64
|
+
return d.id === dataId;
|
|
65
|
+
});
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
_core.log.assert(dataset, "No dataset matching dataId: ".concat(dataId));
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
var data = dataset.data;
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
_core.log.assert(data, "No data loaded for dataId: ".concat(dataId));
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
return new Layer(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
74
|
+
id: id,
|
|
75
|
+
data: data
|
|
76
|
+
}, defaultProps), createBlendingProps(layerBlending)), !config.textLabel && createInteractionProps(interactionConfig)), createStyleProps(config, propMap)), createChannelProps(visualChannels, type, config, data)));
|
|
77
|
+
} catch (e) {
|
|
78
|
+
_core.log.error(e.message)();
|
|
79
|
+
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
77
82
|
})
|
|
78
83
|
};
|
|
79
84
|
}
|
|
@@ -183,8 +188,8 @@ function createChannelProps(visualChannels, type, config, data) {
|
|
|
183
188
|
}
|
|
184
189
|
|
|
185
190
|
if (strokeColorField) {
|
|
186
|
-
var opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity
|
|
187
|
-
result.getLineColor = (0, _layerMap.getColorAccessor)(strokeColorField, strokeColorScale, visConfig.
|
|
191
|
+
var opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : 1;
|
|
192
|
+
result.getLineColor = (0, _layerMap.getColorAccessor)(strokeColorField, strokeColorScale, visConfig.strokeColorRange, opacity, data);
|
|
188
193
|
}
|
|
189
194
|
|
|
190
195
|
if (heightField) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/parseMap.js"],"names":["parseMap","json","keplerMapConfig","datasets","log","assert","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","LAYER_MAP","Layer","propMap","defaultProps","dataId","dataset","find","d","data","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","rest","configRest","filter","t","field","name","label","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","undefined","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n LAYER_MAP,\n getColorAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets} = json;\n log.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 layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n log.assert(type in LAYER_MAP, `Unsupported layer type: ${type}`);\n const {Layer, propMap, defaultProps} = LAYER_MAP[type];\n\n const {dataId} = config;\n const dataset = datasets.find(d => d.id === dataId);\n log.assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n log.assert(data, `No data loaded for dataId: ${dataId}`);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createBlendingProps(layerBlending),\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...createStyleProps(config, propMap),\n ...createChannelProps(visualChannels, type, config, data) // Must come after style\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 createBlendingProps(layerBlending) {\n if (layerBlending === 'additive') {\n return {\n parameters: {\n blendFunc: [GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: GL.FUNC_ADD\n }\n };\n } else if (layerBlending === 'subtractive') {\n return {\n parameters: {\n blendFunc: [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: [GL.FUNC_SUBTRACT, GL.FUNC_ADD]\n }\n };\n }\n\n return {};\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 === 'object') {\n // Nested definition, recurse down one level\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config, mapping) {\n const result = {};\n mapProps(config, result, mapping);\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity */\nfunction createChannelProps(visualChannels, type, config, data) {\n const {colorField, colorScale, sizeField, sizeScale, strokeColorField, 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 = {};\n const textLabelField = textLabel && textLabel.field;\n if (colorField) {\n result.getFillColor = getColorAccessor(\n colorField,\n colorScale,\n visConfig.colorRange,\n 1, // Rely on layer opacity\n data\n );\n }\n if (strokeColorField) {\n const opacity =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity / visConfig.opacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.colorRange,\n opacity,\n data\n );\n }\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n heightScale,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n if (sizeField) {\n result.getPointRadius = getSizeAccessor(\n sizeField,\n sizeScale,\n visConfig.radiusRange || visConfig.sizeRange,\n data\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 }\n\n return result;\n}\n"],"file":"parseMap.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/parseMap.js"],"names":["parseMap","json","keplerMapConfig","datasets","log","assert","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","Layer","propMap","defaultProps","dataId","dataset","find","d","data","createBlendingProps","textLabel","createInteractionProps","createStyleProps","createChannelProps","e","error","message","undefined","rest","configRest","filter","t","field","name","label","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","result","highlightColor","enable3d","colorField","colorScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","getFillColor","colorRange","strokeOpacity","getLineColor","strokeColorRange","getElevation","heightRange","sizeRange","getPointRadius","radiusRange","getText","pointType","radius","getTextPixelOffset"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n getLayer,\n getColorAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets} = json;\n log.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 layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n try {\n const {Layer, propMap, defaultProps} = getLayer(type, config);\n const {dataId} = config;\n const dataset = datasets.find(d => d.id === dataId);\n log.assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n log.assert(data, `No data loaded for dataId: ${dataId}`);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createBlendingProps(layerBlending),\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...createStyleProps(config, propMap),\n ...createChannelProps(visualChannels, type, config, data) // Must come after style\n });\n } catch (e) {\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 createBlendingProps(layerBlending) {\n if (layerBlending === 'additive') {\n return {\n parameters: {\n blendFunc: [GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: GL.FUNC_ADD\n }\n };\n } else if (layerBlending === 'subtractive') {\n return {\n parameters: {\n blendFunc: [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA],\n blendEquation: [GL.FUNC_SUBTRACT, GL.FUNC_ADD]\n }\n };\n }\n\n return {};\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 === 'object') {\n // Nested definition, recurse down one level\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config, mapping) {\n const result = {};\n mapProps(config, result, mapping);\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity */\nfunction createChannelProps(visualChannels, type, config, data) {\n const {colorField, colorScale, sizeField, sizeScale, strokeColorField, 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 = {};\n const textLabelField = textLabel && textLabel.field;\n if (colorField) {\n result.getFillColor = getColorAccessor(\n colorField,\n colorScale,\n visConfig.colorRange,\n 1, // Rely on layer opacity\n data\n );\n }\n if (strokeColorField) {\n const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : 1;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n strokeColorScale,\n visConfig.strokeColorRange,\n opacity,\n data\n );\n }\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n heightScale,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n if (sizeField) {\n result.getPointRadius = getSizeAccessor(\n sizeField,\n sizeScale,\n visConfig.radiusRange || visConfig.sizeRange,\n data\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 }\n\n return result;\n}\n"],"file":"parseMap.js"}
|
package/dist/es5/index.js
CHANGED
|
@@ -23,6 +23,12 @@ Object.defineProperty(exports, "CartoLayer", {
|
|
|
23
23
|
return _cartoLayer.default;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
|
+
Object.defineProperty(exports, "_CartoDynamicTileLayer", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _cartoDynamicTileLayer.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
26
32
|
Object.defineProperty(exports, "BASEMAP", {
|
|
27
33
|
enumerable: true,
|
|
28
34
|
get: function get() {
|
|
@@ -53,6 +59,12 @@ Object.defineProperty(exports, "FORMATS", {
|
|
|
53
59
|
return _api.FORMATS;
|
|
54
60
|
}
|
|
55
61
|
});
|
|
62
|
+
Object.defineProperty(exports, "TILE_FORMATS", {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
get: function get() {
|
|
65
|
+
return _api.TILE_FORMATS;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
56
68
|
Object.defineProperty(exports, "MAP_TYPES", {
|
|
57
69
|
enumerable: true,
|
|
58
70
|
get: function get() {
|
|
@@ -100,6 +112,8 @@ var _config = require("./config.js");
|
|
|
100
112
|
|
|
101
113
|
var _cartoLayer = _interopRequireDefault(require("./layers/carto-layer"));
|
|
102
114
|
|
|
115
|
+
var _cartoDynamicTileLayer = _interopRequireDefault(require("./layers/carto-dynamic-tile-layer"));
|
|
116
|
+
|
|
103
117
|
var _basemap = _interopRequireDefault(require("./basemap"));
|
|
104
118
|
|
|
105
119
|
var _colorBinsStyle = _interopRequireDefault(require("./style/color-bins-style"));
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config.js';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as _CartoDynamicTileLayer} from './layers/carto-dynamic-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 fetchLayerData,\n fetchMap,\n getDataV2 as _getDataV2,\n getData,\n mapInstantiation as _mapInstantiation\n} from './api';\n"],"file":"index.js"}
|
|
@@ -9,7 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
13
|
|
|
14
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
15
|
|
|
@@ -23,6 +23,10 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
23
23
|
|
|
24
24
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
25
25
|
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
|
|
28
|
+
var _pbf = _interopRequireDefault(require("pbf"));
|
|
29
|
+
|
|
26
30
|
var _core = require("@deck.gl/core");
|
|
27
31
|
|
|
28
32
|
var _extensions = require("@deck.gl/extensions");
|
|
@@ -33,27 +37,66 @@ var _layers = require("@deck.gl/layers");
|
|
|
33
37
|
|
|
34
38
|
var _gis = require("@loaders.gl/gis");
|
|
35
39
|
|
|
40
|
+
var _cartoDynamicTile = require("./schema/carto-dynamic-tile");
|
|
41
|
+
|
|
36
42
|
var _mapsApiCommon = require("../api/maps-api-common");
|
|
37
43
|
|
|
38
|
-
var
|
|
44
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
45
|
+
|
|
46
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
47
|
|
|
40
48
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
41
49
|
|
|
42
50
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
43
51
|
|
|
44
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
45
|
-
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
-
|
|
48
52
|
function parseJSON(arrayBuffer) {
|
|
49
53
|
return JSON.parse(new TextDecoder().decode(arrayBuffer));
|
|
50
54
|
}
|
|
51
55
|
|
|
56
|
+
function parsePbf(buffer) {
|
|
57
|
+
var pbf = new _pbf.default(buffer);
|
|
58
|
+
|
|
59
|
+
var tile = _cartoDynamicTile.Tile.read(pbf);
|
|
60
|
+
|
|
61
|
+
return tile;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function unpackProperties(properties) {
|
|
65
|
+
if (!properties || !properties.length) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return properties.map(function (item) {
|
|
70
|
+
var currentRecord = {};
|
|
71
|
+
item.data.forEach(function (_ref) {
|
|
72
|
+
var key = _ref.key,
|
|
73
|
+
value = _ref.value;
|
|
74
|
+
currentRecord[key] = value;
|
|
75
|
+
});
|
|
76
|
+
return currentRecord;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
52
80
|
function parseCartoDynamicTile(arrayBuffer, options) {
|
|
53
81
|
if (!arrayBuffer) return null;
|
|
54
82
|
var formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;
|
|
55
|
-
if (formatTiles ===
|
|
56
|
-
|
|
83
|
+
if (formatTiles === _mapsApiCommon.TILE_FORMATS.GEOJSON) return (0, _gis.geojsonToBinary)(parseJSON(arrayBuffer).features);
|
|
84
|
+
var tile = parsePbf(arrayBuffer);
|
|
85
|
+
var points = tile.points,
|
|
86
|
+
lines = tile.lines,
|
|
87
|
+
polygons = tile.polygons;
|
|
88
|
+
var data = {
|
|
89
|
+
points: _objectSpread(_objectSpread({}, points), {}, {
|
|
90
|
+
properties: unpackProperties(points.properties)
|
|
91
|
+
}),
|
|
92
|
+
lines: _objectSpread(_objectSpread({}, lines), {}, {
|
|
93
|
+
properties: unpackProperties(lines.properties)
|
|
94
|
+
}),
|
|
95
|
+
polygons: _objectSpread(_objectSpread({}, polygons), {}, {
|
|
96
|
+
properties: unpackProperties(polygons.properties)
|
|
97
|
+
})
|
|
98
|
+
};
|
|
99
|
+
return data;
|
|
57
100
|
}
|
|
58
101
|
|
|
59
102
|
var CartoDynamicTileLoader = {
|
|
@@ -89,7 +132,7 @@ var CartoDynamicTileLoader = {
|
|
|
89
132
|
parseSync: parseCartoDynamicTile,
|
|
90
133
|
options: {
|
|
91
134
|
cartoDynamicTile: {
|
|
92
|
-
formatTiles:
|
|
135
|
+
formatTiles: _mapsApiCommon.TILE_FORMATS.BINARY
|
|
93
136
|
}
|
|
94
137
|
}
|
|
95
138
|
};
|
|
@@ -107,7 +150,7 @@ var CartoDynamicTileLayer = function (_MVTLayer) {
|
|
|
107
150
|
(0, _createClass2.default)(CartoDynamicTileLayer, [{
|
|
108
151
|
key: "getTileData",
|
|
109
152
|
value: function getTileData(tile) {
|
|
110
|
-
var url = (0,
|
|
153
|
+
var url = (0, _geoLayers._getURLFromTemplate)(this.state.data, tile);
|
|
111
154
|
|
|
112
155
|
if (!url) {
|
|
113
156
|
return Promise.reject('Invalid URL');
|
|
@@ -123,10 +166,10 @@ var CartoDynamicTileLayer = function (_MVTLayer) {
|
|
|
123
166
|
});
|
|
124
167
|
|
|
125
168
|
if (formatTiles) {
|
|
126
|
-
_core.log.assert(
|
|
169
|
+
_core.log.assert(Object.values(_mapsApiCommon.TILE_FORMATS).includes(formatTiles), "Invalid value for formatTiles: ".concat(formatTiles, ". Use value from TILE_FORMATS"));
|
|
127
170
|
|
|
128
171
|
url += "&".concat((0, _mapsApiCommon.encodeParameter)('formatTiles', formatTiles));
|
|
129
|
-
loadOptions.
|
|
172
|
+
loadOptions.cartoDynamicTile = {
|
|
130
173
|
formatTiles: formatTiles
|
|
131
174
|
};
|
|
132
175
|
}
|
|
@@ -151,7 +194,7 @@ var CartoDynamicTileLayer = function (_MVTLayer) {
|
|
|
151
194
|
south = _props$tile$bbox.south,
|
|
152
195
|
east = _props$tile$bbox.east,
|
|
153
196
|
north = _props$tile$bbox.north;
|
|
154
|
-
props.extensions = [new _extensions.ClipExtension()];
|
|
197
|
+
props.extensions = [new _extensions.ClipExtension()].concat((0, _toConsumableArray2.default)(props.extensions));
|
|
155
198
|
props.clipBounds = [west, south, east, north];
|
|
156
199
|
var subLayer = new _layers.GeoJsonLayer(_objectSpread({}, props));
|
|
157
200
|
return subLayer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/carto-dynamic-tile-layer.js"],"names":["parseJSON","arrayBuffer","JSON","parse","TextDecoder","decode","parseCartoDynamicTile","options","formatTiles","cartoDynamicTile","features","CartoDynamicTileLoader","name","id","module","extensions","mimeTypes","category","worker","parseSync","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/carto-dynamic-tile-layer.js"],"names":["parseJSON","arrayBuffer","JSON","parse","TextDecoder","decode","parsePbf","buffer","pbf","Protobuf","tile","Tile","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value","parseCartoDynamicTile","options","formatTiles","cartoDynamicTile","TILE_FORMATS","GEOJSON","features","points","lines","polygons","CartoDynamicTileLoader","name","id","module","extensions","mimeTypes","category","worker","parseSync","BINARY","CartoDynamicTileLayer","url","state","Promise","reject","loadOptions","getLoadOptions","props","fetch","signal","mimeType","log","assert","Object","values","includes","propName","layer","autoHighlight","bbox","west","south","east","north","ClipExtension","clipBounds","subLayer","GeoJsonLayer","MVTLayer","layerName","defaultProps","loaders"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,SAASA,SAAT,CAAmBC,WAAnB,EAAgC;AAC9B,SAAOC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,WAAzB,CAAX,CAAP;AACD;;AAED,SAASK,QAAT,CAAkBC,MAAlB,EAA0B;AACxB,MAAMC,GAAG,GAAG,IAAIC,YAAJ,CAAaF,MAAb,CAAZ;;AACA,MAAMG,IAAI,GAAGC,uBAAKC,IAAL,CAAUJ,GAAV,CAAb;;AACA,SAAOE,IAAP;AACD;;AAED,SAASG,gBAAT,CAA0BC,UAA1B,EAAsC;AACpC,MAAI,CAACA,UAAD,IAAe,CAACA,UAAU,CAACC,MAA/B,EAAuC;AACrC,WAAO,EAAP;AACD;;AACD,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,IAAI,EAAI;AAC5B,QAAMC,aAAa,GAAG,EAAtB;AACAD,IAAAA,IAAI,CAACE,IAAL,CAAUC,OAAV,CAAkB,gBAAkB;AAAA,UAAhBC,GAAgB,QAAhBA,GAAgB;AAAA,UAAXC,KAAW,QAAXA,KAAW;AAClCJ,MAAAA,aAAa,CAACG,GAAD,CAAb,GAAqBC,KAArB;AACD,KAFD;AAGA,WAAOJ,aAAP;AACD,GANM,CAAP;AAOD;;AAED,SAASK,qBAAT,CAA+BtB,WAA/B,EAA4CuB,OAA5C,EAAqD;AACnD,MAAI,CAACvB,WAAL,EAAkB,OAAO,IAAP;AAClB,MAAMwB,WAAW,GAAGD,OAAO,IAAIA,OAAO,CAACE,gBAAnB,IAAuCF,OAAO,CAACE,gBAAR,CAAyBD,WAApF;AACA,MAAIA,WAAW,KAAKE,4BAAaC,OAAjC,EAA0C,OAAO,0BAAgB5B,SAAS,CAACC,WAAD,CAAT,CAAuB4B,QAAvC,CAAP;AAE1C,MAAMnB,IAAI,GAAGJ,QAAQ,CAACL,WAAD,CAArB;AAEA,MAAO6B,MAAP,GAAkCpB,IAAlC,CAAOoB,MAAP;AAAA,MAAeC,KAAf,GAAkCrB,IAAlC,CAAeqB,KAAf;AAAA,MAAsBC,QAAtB,GAAkCtB,IAAlC,CAAsBsB,QAAtB;AACA,MAAMb,IAAI,GAAG;AACXW,IAAAA,MAAM,kCAAMA,MAAN;AAAchB,MAAAA,UAAU,EAAED,gBAAgB,CAACiB,MAAM,CAAChB,UAAR;AAA1C,MADK;AAEXiB,IAAAA,KAAK,kCAAMA,KAAN;AAAajB,MAAAA,UAAU,EAAED,gBAAgB,CAACkB,KAAK,CAACjB,UAAP;AAAzC,MAFM;AAGXkB,IAAAA,QAAQ,kCAAMA,QAAN;AAAgBlB,MAAAA,UAAU,EAAED,gBAAgB,CAACmB,QAAQ,CAAClB,UAAV;AAA5C;AAHG,GAAb;AAMA,SAAOK,IAAP;AACD;;AAED,IAAMc,sBAAsB,GAAG;AAC7BC,EAAAA,IAAI,EAAE,oBADuB;AAE7BC,EAAAA,EAAE,EAAE,kBAFyB;AAG7BC,EAAAA,MAAM,EAAE,OAHqB;AAI7BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAJiB;AAK7BC,EAAAA,SAAS,EAAE,CAAC,wBAAD,CALkB;AAM7BC,EAAAA,QAAQ,EAAE,UANmB;AAO7BC,EAAAA,MAAM,EAAE,KAPqB;AAQ7BrC,EAAAA,KAAK;AAAA,2EAAE,iBAAOF,WAAP,EAAoBuB,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgCD,qBAAqB,CAACtB,WAAD,EAAcuB,OAAd,CAArD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KARwB;AAS7BiB,EAAAA,SAAS,EAAElB,qBATkB;AAU7BC,EAAAA,OAAO,EAAE;AACPE,IAAAA,gBAAgB,EAAE;AAChBD,MAAAA,WAAW,EAAEE,4BAAae;AADV;AADX;AAVoB,CAA/B;;IAiBqBC,qB;;;;;;;;;;;;WACnB,qBAAYjC,IAAZ,EAAkB;AAChB,UAAIkC,GAAG,GAAG,oCAAoB,KAAKC,KAAL,CAAW1B,IAA/B,EAAqCT,IAArC,CAAV;;AACA,UAAI,CAACkC,GAAL,EAAU;AACR,eAAOE,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AAED,UAAIC,WAAW,GAAG,KAAKC,cAAL,EAAlB;AACA,wBAA6B,KAAKC,KAAlC;AAAA,UAAOC,KAAP,eAAOA,KAAP;AAAA,UAAc1B,WAAd,eAAcA,WAAd;AACA,UAAO2B,MAAP,GAAiB1C,IAAjB,CAAO0C,MAAP;AAEAJ,MAAAA,WAAW,mCACNA,WADM;AAETK,QAAAA,QAAQ,EAAE;AAFD,QAAX;;AAKA,UAAI5B,WAAJ,EAAiB;AACf6B,kBAAIC,MAAJ,CACEC,MAAM,CAACC,MAAP,CAAc9B,2BAAd,EAA4B+B,QAA5B,CAAqCjC,WAArC,CADF,2CAEoCA,WAFpC;;AAIAmB,QAAAA,GAAG,eAAQ,oCAAgB,aAAhB,EAA+BnB,WAA/B,CAAR,CAAH;AACAuB,QAAAA,WAAW,CAACtB,gBAAZ,GAA+B;AAACD,UAAAA,WAAW,EAAXA;AAAD,SAA/B;AACD;;AAED,aAAO0B,KAAK,CAACP,GAAD,EAAM;AAACe,QAAAA,QAAQ,EAAE,MAAX;AAAmBC,QAAAA,KAAK,EAAE,IAA1B;AAAgCZ,QAAAA,WAAW,EAAXA,WAAhC;AAA6CI,QAAAA,MAAM,EAANA;AAA7C,OAAN,CAAZ;AACD;;;WAED,yBAAgBF,KAAhB,EAAuB;AACrB,UAAIA,KAAK,CAAC/B,IAAN,KAAe,IAAnB,EAAyB;AACvB,eAAO,IAAP;AACD;;AAED+B,MAAAA,KAAK,CAACW,aAAN,GAAsB,KAAtB;AAEA,6BAEIX,KAAK,CAACxC,IAFV,CACEoD,IADF;AAAA,UACSC,IADT,oBACSA,IADT;AAAA,UACeC,KADf,oBACeA,KADf;AAAA,UACsBC,IADtB,oBACsBA,IADtB;AAAA,UAC4BC,KAD5B,oBAC4BA,KAD5B;AAGAhB,MAAAA,KAAK,CAACb,UAAN,IAAoB,IAAI8B,yBAAJ,EAApB,0CAA4CjB,KAAK,CAACb,UAAlD;AACAa,MAAAA,KAAK,CAACkB,UAAN,GAAmB,CAACL,IAAD,EAAOC,KAAP,EAAcC,IAAd,EAAoBC,KAApB,CAAnB;AAEA,UAAMG,QAAQ,GAAG,IAAIC,oBAAJ,mBACZpB,KADY,EAAjB;AAGA,aAAOmB,QAAP;AACD;;;EA7CgDE,mB;;;AAgDnD5B,qBAAqB,CAAC6B,SAAtB,GAAkC,uBAAlC;AACA7B,qBAAqB,CAAC8B,YAAtB,mCAAyCF,oBAASE,YAAlD;AAAgEC,EAAAA,OAAO,EAAE,CAACzC,sBAAD;AAAzE","sourcesContent":["/* global TextDecoder */\nimport Protobuf from 'pbf';\nimport {log} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {MVTLayer, _getURLFromTemplate} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {Tile} from './schema/carto-dynamic-tile';\nimport {encodeParameter, TILE_FORMATS} from '../api/maps-api-common';\n\nfunction parseJSON(arrayBuffer) {\n return JSON.parse(new TextDecoder().decode(arrayBuffer));\n}\n\nfunction parsePbf(buffer) {\n const pbf = new Protobuf(buffer);\n const tile = Tile.read(pbf);\n return tile;\n}\n\nfunction unpackProperties(properties) {\n if (!properties || !properties.length) {\n return [];\n }\n return properties.map(item => {\n const currentRecord = {};\n item.data.forEach(({key, value}) => {\n currentRecord[key] = value;\n });\n return currentRecord;\n });\n}\n\nfunction parseCartoDynamicTile(arrayBuffer, options) {\n if (!arrayBuffer) return null;\n const formatTiles = options && options.cartoDynamicTile && options.cartoDynamicTile.formatTiles;\n if (formatTiles === TILE_FORMATS.GEOJSON) return geojsonToBinary(parseJSON(arrayBuffer).features);\n\n const tile = parsePbf(arrayBuffer);\n\n const {points, lines, polygons} = tile;\n const data = {\n points: {...points, properties: unpackProperties(points.properties)},\n lines: {...lines, properties: unpackProperties(lines.properties)},\n polygons: {...polygons, properties: unpackProperties(polygons.properties)}\n };\n\n return data;\n}\n\nconst CartoDynamicTileLoader = {\n name: 'CARTO Dynamic Tile',\n id: 'cartoDynamicTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/x-protobuf'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoDynamicTile(arrayBuffer, options),\n parseSync: parseCartoDynamicTile,\n options: {\n cartoDynamicTile: {\n formatTiles: TILE_FORMATS.BINARY\n }\n }\n};\n\nexport default class CartoDynamicTileLayer extends MVTLayer {\n getTileData(tile) {\n let url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n let loadOptions = this.getLoadOptions();\n const {fetch, formatTiles} = this.props;\n const {signal} = tile;\n\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/x-protobuf'\n };\n\n if (formatTiles) {\n log.assert(\n Object.values(TILE_FORMATS).includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`\n );\n url += `&${encodeParameter('formatTiles', formatTiles)}`;\n loadOptions.cartoDynamicTile = {formatTiles};\n }\n\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(props) {\n if (props.data === null) {\n return null;\n }\n\n props.autoHighlight = false;\n\n const {\n bbox: {west, south, east, north}\n } = props.tile;\n props.extensions = [new ClipExtension(), ...props.extensions];\n props.clipBounds = [west, south, east, north];\n\n const subLayer = new GeoJsonLayer({\n ...props\n });\n return subLayer;\n }\n}\n\nCartoDynamicTileLayer.layerName = 'CartoDynamicTileLayer';\nCartoDynamicTileLayer.defaultProps = {...MVTLayer.defaultProps, loaders: [CartoDynamicTileLoader]};\n"],"file":"carto-dynamic-tile-layer.js"}
|
|
@@ -41,7 +41,7 @@ var _mapsApiCommon = require("../api/maps-api-common");
|
|
|
41
41
|
|
|
42
42
|
var _config = require("../config");
|
|
43
43
|
|
|
44
|
-
var _excluded = ["type", "data", "credentials"];
|
|
44
|
+
var _excluded = ["type", "data", "clientId", "credentials"];
|
|
45
45
|
|
|
46
46
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
47
47
|
|
|
@@ -69,6 +69,8 @@ var defaultProps = {
|
|
|
69
69
|
credentials: null,
|
|
70
70
|
connection: null,
|
|
71
71
|
format: null,
|
|
72
|
+
formatTiles: _mapsApiCommon.TILE_FORMATS.GEOJSON,
|
|
73
|
+
clientId: null,
|
|
72
74
|
geoColumn: null,
|
|
73
75
|
columns: {
|
|
74
76
|
type: 'array',
|
|
@@ -162,14 +164,14 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
162
164
|
key: "_updateData",
|
|
163
165
|
value: function () {
|
|
164
166
|
var _updateData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
165
|
-
var _this$props, type, source, credentials, rest, localConfig, apiVersion, result;
|
|
167
|
+
var _this$props, type, source, clientId, credentials, rest, localConfig, apiVersion, result;
|
|
166
168
|
|
|
167
169
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
168
170
|
while (1) {
|
|
169
171
|
switch (_context.prev = _context.next) {
|
|
170
172
|
case 0:
|
|
171
173
|
_context.prev = 0;
|
|
172
|
-
_this$props = this.props, type = _this$props.type, source = _this$props.data, credentials = _this$props.credentials, rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
174
|
+
_this$props = this.props, type = _this$props.type, source = _this$props.data, clientId = _this$props.clientId, credentials = _this$props.credentials, rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
173
175
|
localConfig = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
|
|
174
176
|
apiVersion = localConfig.apiVersion;
|
|
175
177
|
|
|
@@ -198,6 +200,7 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
198
200
|
return (0, _api.fetchLayerData)(_objectSpread({
|
|
199
201
|
type: type,
|
|
200
202
|
source: source,
|
|
203
|
+
clientId: clientId,
|
|
201
204
|
credentials: credentials
|
|
202
205
|
}, rest));
|
|
203
206
|
|
|
@@ -254,8 +257,11 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
254
257
|
type = _this$props2.type,
|
|
255
258
|
updateTriggers = _this$props2.updateTriggers;
|
|
256
259
|
var layer;
|
|
260
|
+
var tilesFormat = apiVersion === _api.API_VERSIONS.V3 && format === _mapsApiCommon.FORMATS.TILEJSON && new URLSearchParams(data.tiles[0]).get('format');
|
|
261
|
+
var nonMvtTiles = tilesFormat && tilesFormat !== _mapsApiCommon.TILE_FORMATS.MVT;
|
|
262
|
+
var dynamicTiles = apiVersion === _api.API_VERSIONS.V3 && type === _mapsApiCommon.MAP_TYPES.TABLE && format === _mapsApiCommon.FORMATS.TILEJSON;
|
|
257
263
|
|
|
258
|
-
if (
|
|
264
|
+
if (nonMvtTiles || dynamicTiles) {
|
|
259
265
|
layer = _cartoDynamicTileLayer.default;
|
|
260
266
|
} else if (apiVersion === _api.API_VERSIONS.V1 || apiVersion === _api.API_VERSIONS.V2 || format === _mapsApiCommon.FORMATS.TILEJSON) {
|
|
261
267
|
layer = _geoLayers.MVTLayer;
|
|
@@ -263,9 +269,11 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
263
269
|
layer = _layers.GeoJsonLayer;
|
|
264
270
|
}
|
|
265
271
|
|
|
266
|
-
var
|
|
272
|
+
var formatTiles = defaultProps.formatTiles,
|
|
273
|
+
uniqueIdProperty = defaultProps.uniqueIdProperty;
|
|
267
274
|
|
|
268
275
|
var props = _objectSpread({
|
|
276
|
+
formatTiles: formatTiles,
|
|
269
277
|
uniqueIdProperty: uniqueIdProperty
|
|
270
278
|
}, this.props);
|
|
271
279
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","uniqueIdProperty","credentials","connection","format","geoColumn","columns","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","TABLE","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","updateTriggers","layer","FORMATS","TILEJSON","CartoDynamicTileLayer","MVTLayer","GeoJsonLayer","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":"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","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport CartoDynamicTileLayer from './carto-dynamic-tile-layer';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {FORMATS, MAP_TYPES} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n props.type !== oldProps.type ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, credentials, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {data: await getDataV2({type, source, credentials})};\n } else {\n result = await fetchLayerData({type, source, credentials, ...rest});\n }\n\n this.setState({...result, apiVersion});\n this.props.onDataLoad(result.data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n renderLayers() {\n const {data, format, apiVersion} = this.state;\n\n if (!data) return null;\n\n const {type, updateTriggers} = this.props;\n\n let layer;\n\n if (apiVersion === API_VERSIONS.V3 && type === MAP_TYPES.TABLE && format === FORMATS.TILEJSON) {\n layer = CartoDynamicTileLayer;\n } else if (\n apiVersion === API_VERSIONS.V1 ||\n apiVersion === API_VERSIONS.V2 ||\n format === FORMATS.TILEJSON\n ) {\n layer = MVTLayer;\n } else {\n layer = GeoJsonLayer;\n }\n\n const {uniqueIdProperty} = defaultProps;\n const props = {uniqueIdProperty, ...this.props};\n delete props.data;\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","uniqueIdProperty","credentials","connection","format","formatTiles","TILE_FORMATS","GEOJSON","clientId","geoColumn","columns","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","TABLE","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","updateTriggers","layer","tilesFormat","FORMATS","TILEJSON","URLSearchParams","tiles","get","nonMvtTiles","MVT","dynamicTiles","CartoDynamicTileLayer","MVTLayer","GeoJsonLayer","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,YAAY,GAAG;AAEnBC,EAAAA,IAAI,EAAE,IAFa;AAInBC,EAAAA,IAAI,EAAE,IAJa;AAKnBC,EAAAA,UAAU,EAAE;AAACD,IAAAA,IAAI,EAAE,UAAP;AAAmBE,IAAAA,KAAK,EAAE,eAAAH,IAAI,EAAI,CAAE,CAApC;AAAsCI,IAAAA,OAAO,EAAE;AAA/C,GALO;AAMnBC,EAAAA,WAAW,EAAE;AAACJ,IAAAA,IAAI,EAAE,UAAP;AAAmBE,IAAAA,KAAK,EAAE,IAA1B;AAAgCC,IAAAA,OAAO,EAAE,KAAzC;AAAgDE,IAAAA,QAAQ,EAAE;AAA1D,GANM;AAOnBC,EAAAA,gBAAgB,EAAE,YAPC;AAUnBC,EAAAA,WAAW,EAAE,IAVM;AAgBnBC,EAAAA,UAAU,EAAE,IAhBO;AAmBnBC,EAAAA,MAAM,EAAE,IAnBW;AAsBnBC,EAAAA,WAAW,EAAEC,4BAAaC,OAtBP;AAyBnBC,EAAAA,QAAQ,EAAE,IAzBS;AA4BnBC,EAAAA,SAAS,EAAE,IA5BQ;AA+BnBC,EAAAA,OAAO,EAAE;AAACf,IAAAA,IAAI,EAAE,OAAP;AAAgBE,IAAAA,KAAK,EAAE;AAAvB;AA/BU,CAArB;;IAkCqBc,U;;;;;;;;;;;;WACnB,2BAAkB;AAChB,WAAKC,KAAL,GAAa;AACXlB,QAAAA,IAAI,EAAE,IADK;AAEXmB,QAAAA,UAAU,EAAE;AAFD,OAAb;AAID;;;SAED,eAAe;AACb,aAAO,KAAKC,YAAL,GAAoBC,MAApB,GAA6B,CAA7B,6FAAP;AACD;;;WAED,qBAAYC,KAAZ,EAAmB;AACjB,UAAOrB,IAAP,GAA4DqB,KAA5D,CAAOrB,IAAP;AAAA,UAAaO,WAAb,GAA4Dc,KAA5D,CAAad,WAAb;AAAA,UAA0BC,UAA1B,GAA4Da,KAA5D,CAA0Bb,UAA1B;AAAA,UAAsCM,SAAtC,GAA4DO,KAA5D,CAAsCP,SAAtC;AAAA,UAAiDC,OAAjD,GAA4DM,KAA5D,CAAiDN,OAAjD;;AACA,UAAMO,UAAU,mCAAO,oCAAP,GAAmCf,WAAnC,CAAhB;;AACA,UAAOW,UAAP,GAAqBI,UAArB,CAAOJ,UAAP;;AAEAK,gBAAIC,MAAJ,CACEC,MAAM,CAACC,MAAP,CAAcC,iBAAd,EAA4BC,QAA5B,CAAqCV,UAArC,CADF,+BAEwBA,UAFxB;;AAKA,UAAIA,UAAU,KAAKS,kBAAaE,EAA5B,IAAkCX,UAAU,KAAKS,kBAAaG,EAAlE,EAAsE;AACpEP,kBAAIC,MAAJ,CACExB,IAAI,KAAK+B,yBAAUC,KAAnB,IAA4BhC,IAAI,KAAK+B,yBAAUE,OADjD,yBAEkBjC,IAFlB,4EAEwFkB,UAFxF;;AAIAK,kBAAIC,MAAJ,CAAW,CAAChB,UAAZ,4DAA2EU,UAA3E;;AACAK,kBAAIC,MAAJ,CAAW,CAACV,SAAZ,2DAAyEI,UAAzE;;AACAK,kBAAIC,MAAJ,CAAW,CAACT,OAAZ,yDAAqEG,UAArE;AACD,OARD,MAQO,IAAIA,UAAU,KAAKS,kBAAaO,EAAhC,EAAoC;AACzCX,kBAAIC,MAAJ,CAAWhB,UAAX,EAAuB,wCAAvB;;AACAe,kBAAIC,MAAJ,CACEC,MAAM,CAACC,MAAP,CAAcK,wBAAd,EAAyBH,QAAzB,CAAkC5B,IAAlC,CADF,yBAEkBA,IAFlB;;AAIA,YAAIA,IAAI,KAAK+B,yBAAUI,KAAvB,EAA8B;AAC5BZ,oBAAIC,MAAJ,CAAW,CAACV,SAAZ,sDAAoEiB,yBAAUI,KAA9E;;AACAZ,oBAAIC,MAAJ,CAAW,CAACT,OAAZ,oDAAgEgB,yBAAUI,KAA1E;AACD;;AACD,YAAIpB,OAAJ,EAAa;AACXQ,oBAAIC,MAAJ,CAAWY,KAAK,CAACC,OAAN,CAActB,OAAd,CAAX,EAAmC,+BAAnC;AACD;AACF;AACF;;;WAED,2BAA4C;AAAA,UAA/BM,KAA+B,QAA/BA,KAA+B;AAAA,UAAxBiB,QAAwB,QAAxBA,QAAwB;AAAA,UAAdC,WAAc,QAAdA,WAAc;;AAC1C,WAAKC,WAAL,CAAiBnB,KAAjB;;AACA,UAAMoB,gBAAgB,GACpBF,WAAW,CAACG,WAAZ,IACArB,KAAK,CAACb,UAAN,KAAqB8B,QAAQ,CAAC9B,UAD9B,IAEAa,KAAK,CAACP,SAAN,KAAoBwB,QAAQ,CAACxB,SAF7B,IAGA6B,IAAI,CAACC,SAAL,CAAevB,KAAK,CAACN,OAArB,MAAkC4B,IAAI,CAACC,SAAL,CAAeN,QAAQ,CAACvB,OAAxB,CAHlC,IAIAM,KAAK,CAACrB,IAAN,KAAesC,QAAQ,CAACtC,IAJxB,IAKA2C,IAAI,CAACC,SAAL,CAAevB,KAAK,CAACd,WAArB,MAAsCoC,IAAI,CAACC,SAAL,CAAeN,QAAQ,CAAC/B,WAAxB,CANxC;;AAQA,UAAIkC,gBAAJ,EAAsB;AACpB,aAAKI,QAAL,CAAc;AAAC9C,UAAAA,IAAI,EAAE,IAAP;AAAamB,UAAAA,UAAU,EAAE;AAAzB,SAAd;;AACA,aAAK4B,WAAL;AACD;AACF;;;;mFAED;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAEiE,KAAKzB,KAFtE,EAEWrB,IAFX,eAEWA,IAFX,EAEuB+C,MAFvB,eAEiBhD,IAFjB,EAE+Bc,QAF/B,eAE+BA,QAF/B,EAEyCN,WAFzC,eAEyCA,WAFzC,EAEyDyC,IAFzD;AAGUC,gBAAAA,WAHV,mCAG4B,oCAH5B,GAGwD1C,WAHxD;AAIWW,gBAAAA,UAJX,GAIyB+B,WAJzB,CAIW/B,UAJX;;AAAA,sBAOQA,UAAU,KAAKS,kBAAaE,EAA5B,IAAkCX,UAAU,KAAKS,kBAAaG,EAPtE;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAQ4B,oBAAU;AAAC9B,kBAAAA,IAAI,EAAJA,IAAD;AAAO+C,kBAAAA,MAAM,EAANA,MAAP;AAAexC,kBAAAA,WAAW,EAAXA;AAAf,iBAAV,CAR5B;;AAAA;AAAA;AAQM2C,gBAAAA,MARN;AAQgBnD,kBAAAA,IARhB;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBAUqB;AAAgBC,kBAAAA,IAAI,EAAJA,IAAhB;AAAsB+C,kBAAAA,MAAM,EAANA,MAAtB;AAA8BlC,kBAAAA,QAAQ,EAARA,QAA9B;AAAwCN,kBAAAA,WAAW,EAAXA;AAAxC,mBAAwDyC,IAAxD,EAVrB;;AAAA;AAUME,gBAAAA,MAVN;;AAAA;AAaI,qBAAKL,QAAL,iCAAkBK,MAAlB;AAA0BhC,kBAAAA,UAAU,EAAVA;AAA1B;AACA,qBAAKG,KAAL,CAAWpB,UAAX,CAAsBiD,MAAM,CAACnD,IAA7B;AAdJ;AAAA;;AAAA;AAAA;AAAA;;AAAA,qBAgBQ,KAAKsB,KAAL,CAAWjB,WAhBnB;AAAA;AAAA;AAAA;;AAiBM,qBAAKiB,KAAL,CAAWjB,WAAX;AAjBN;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAwBA,wBAAe;AACb,wBAAmC,KAAKa,KAAxC;AAAA,UAAOlB,IAAP,eAAOA,IAAP;AAAA,UAAaU,MAAb,eAAaA,MAAb;AAAA,UAAqBS,UAArB,eAAqBA,UAArB;AAEA,UAAI,CAACnB,IAAL,EAAW,OAAO,IAAP;AAEX,yBAA+B,KAAKsB,KAApC;AAAA,UAAOrB,IAAP,gBAAOA,IAAP;AAAA,UAAamD,cAAb,gBAAaA,cAAb;AAEA,UAAIC,KAAJ;AAGA,UAAMC,WAAW,GACfnC,UAAU,KAAKS,kBAAaO,EAA5B,IACAzB,MAAM,KAAK6C,uBAAQC,QADnB,IAEA,IAAIC,eAAJ,CAAoBzD,IAAI,CAAC0D,KAAL,CAAW,CAAX,CAApB,EAAmCC,GAAnC,CAAuC,QAAvC,CAHF;AAIA,UAAMC,WAAW,GAAGN,WAAW,IAAIA,WAAW,KAAK1C,4BAAaiD,GAAhE;AAEA,UAAMC,YAAY,GAChB3C,UAAU,KAAKS,kBAAaO,EAA5B,IAAkClC,IAAI,KAAK+B,yBAAUI,KAArD,IAA8D1B,MAAM,KAAK6C,uBAAQC,QADnF;;AAGA,UAAII,WAAW,IAAIE,YAAnB,EAAiC;AAC/BT,QAAAA,KAAK,GAAGU,8BAAR;AACD,OAFD,MAEO,IACL5C,UAAU,KAAKS,kBAAaE,EAA5B,IACAX,UAAU,KAAKS,kBAAaG,EAD5B,IAEArB,MAAM,KAAK6C,uBAAQC,QAHd,EAIL;AACAH,QAAAA,KAAK,GAAGW,mBAAR;AACD,OANM,MAMA;AACLX,QAAAA,KAAK,GAAGY,oBAAR;AACD;;AAED,UAAOtD,WAAP,GAAwCZ,YAAxC,CAAOY,WAAP;AAAA,UAAoBJ,gBAApB,GAAwCR,YAAxC,CAAoBQ,gBAApB;;AACA,UAAMe,KAAK;AAAIX,QAAAA,WAAW,EAAXA,WAAJ;AAAiBJ,QAAAA,gBAAgB,EAAhBA;AAAjB,SAAsC,KAAKe,KAA3C,CAAX;;AACA,aAAOA,KAAK,CAACtB,IAAb;AAGA,aAAO,IAAIqD,KAAJ,CACL/B,KADK,EAEL,KAAK4C,gBAAL,CAAsB;AACpBC,QAAAA,EAAE,kBAAWd,KAAK,CAACe,SAAjB,CADkB;AAEpBpE,QAAAA,IAAI,EAAJA,IAFoB;AAGpBoD,QAAAA,cAAc,EAAdA;AAHoB,OAAtB,CAFK,CAAP;AAQD;;;EAlIqCiB,oB;;;AAqIxCpD,UAAU,CAACmD,SAAX,GAAuB,YAAvB;AACAnD,UAAU,CAAClB,YAAX,GAA0BA,YAA1B","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport CartoDynamicTileLayer from './carto-dynamic-tile-layer';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {FORMATS, MAP_TYPES, TILE_FORMATS} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): format of data\n formatTiles: TILE_FORMATS.GEOJSON, // TODO: for 8.7 release switch to BINARY\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n props.type !== oldProps.type ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, clientId, credentials, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {data: await getDataV2({type, source, credentials})};\n } else {\n result = await fetchLayerData({type, source, clientId, credentials, ...rest});\n }\n\n this.setState({...result, apiVersion});\n this.props.onDataLoad(result.data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n renderLayers() {\n const {data, format, apiVersion} = this.state;\n\n if (!data) return null;\n\n const {type, updateTriggers} = this.props;\n\n let layer;\n\n /* global URLSearchParams */\n const tilesFormat =\n apiVersion === API_VERSIONS.V3 &&\n format === FORMATS.TILEJSON &&\n new URLSearchParams(data.tiles[0]).get('format');\n const nonMvtTiles = tilesFormat && tilesFormat !== TILE_FORMATS.MVT;\n\n const dynamicTiles =\n apiVersion === API_VERSIONS.V3 && type === MAP_TYPES.TABLE && format === FORMATS.TILEJSON;\n\n if (nonMvtTiles || dynamicTiles) {\n layer = CartoDynamicTileLayer;\n } else if (\n apiVersion === API_VERSIONS.V1 ||\n apiVersion === API_VERSIONS.V2 ||\n format === FORMATS.TILEJSON\n ) {\n layer = MVTLayer;\n } else {\n layer = GeoJsonLayer;\n }\n\n const {formatTiles, uniqueIdProperty} = defaultProps;\n const props = {formatTiles, uniqueIdProperty, ...this.props};\n delete props.data;\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
|