@deck.gl/carto 8.6.0 → 8.7.0-alpha.1
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 +24459 -726
- package/dist/es5/api/index.js +12 -0
- package/dist/es5/api/index.js.map +1 -1
- package/dist/es5/api/layer-map.js +255 -0
- package/dist/es5/api/layer-map.js.map +1 -0
- package/dist/es5/api/maps-api-common.js +10 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-client.js +18 -12
- package/dist/es5/api/maps-client.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +340 -42
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +211 -0
- package/dist/es5/api/parseMap.js.map +1 -0
- package/dist/es5/config.js +4 -2
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/index.js +12 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/esm/api/index.js +1 -1
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/layer-map.js +219 -0
- package/dist/esm/api/layer-map.js.map +1 -0
- package/dist/esm/api/maps-api-common.js +4 -0
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +11 -6
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +190 -17
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +202 -0
- package/dist/esm/api/parseMap.js.map +1 -0
- package/dist/esm/config.js +4 -4
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist.min.js +278 -1
- package/package.json +7 -3
- package/src/api/index.js +1 -1
- package/src/api/layer-map.js +194 -0
- package/src/api/maps-api-common.js +5 -0
- package/src/api/maps-client.js +16 -3
- package/src/api/maps-v3-client.js +145 -12
- package/src/api/parseMap.js +192 -0
- package/src/config.js +4 -4
- package/src/index.js +2 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.parseMap = parseMap;
|
|
9
|
+
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _layerMap = require("./layer-map");
|
|
19
|
+
|
|
20
|
+
var _core = require("@deck.gl/core");
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
function parseMap(json) {
|
|
27
|
+
var keplerMapConfig = json.keplerMapConfig,
|
|
28
|
+
datasets = json.datasets;
|
|
29
|
+
|
|
30
|
+
_core.log.assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
|
|
31
|
+
|
|
32
|
+
var _keplerMapConfig$conf = keplerMapConfig.config,
|
|
33
|
+
mapState = _keplerMapConfig$conf.mapState,
|
|
34
|
+
mapStyle = _keplerMapConfig$conf.mapStyle;
|
|
35
|
+
var _keplerMapConfig$conf2 = keplerMapConfig.config.visState,
|
|
36
|
+
layers = _keplerMapConfig$conf2.layers,
|
|
37
|
+
layerBlending = _keplerMapConfig$conf2.layerBlending,
|
|
38
|
+
interactionConfig = _keplerMapConfig$conf2.interactionConfig;
|
|
39
|
+
return {
|
|
40
|
+
id: json.id,
|
|
41
|
+
title: json.title,
|
|
42
|
+
description: json.description,
|
|
43
|
+
createdAt: json.createdAt,
|
|
44
|
+
updatedAt: json.updatedAt,
|
|
45
|
+
mapState: mapState,
|
|
46
|
+
mapStyle: mapStyle,
|
|
47
|
+
layers: extractTextLayers(layers.reverse()).map(function (_ref) {
|
|
48
|
+
var id = _ref.id,
|
|
49
|
+
type = _ref.type,
|
|
50
|
+
config = _ref.config,
|
|
51
|
+
visualChannels = _ref.visualChannels;
|
|
52
|
+
|
|
53
|
+
_core.log.assert(type in _layerMap.LAYER_MAP, "Unsupported layer type: ".concat(type));
|
|
54
|
+
|
|
55
|
+
var _LAYER_MAP$type = _layerMap.LAYER_MAP[type],
|
|
56
|
+
Layer = _LAYER_MAP$type.Layer,
|
|
57
|
+
propMap = _LAYER_MAP$type.propMap,
|
|
58
|
+
defaultProps = _LAYER_MAP$type.defaultProps;
|
|
59
|
+
var dataId = config.dataId;
|
|
60
|
+
var dataset = datasets.find(function (d) {
|
|
61
|
+
return d.id === dataId;
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
_core.log.assert(dataset, "No dataset matching dataId: ".concat(dataId));
|
|
65
|
+
|
|
66
|
+
var data = dataset.data;
|
|
67
|
+
|
|
68
|
+
_core.log.assert(data, "No data loaded for dataId: ".concat(dataId));
|
|
69
|
+
|
|
70
|
+
return new Layer(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
71
|
+
id: id,
|
|
72
|
+
data: data
|
|
73
|
+
}, defaultProps), createBlendingProps(layerBlending)), !config.textLabel && createInteractionProps(interactionConfig)), createStyleProps(config, propMap)), createChannelProps(visualChannels, type, config, data)));
|
|
74
|
+
})
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function extractTextLayers(layers) {
|
|
79
|
+
return (0, _core._flatten)(layers.map(function (_ref2) {
|
|
80
|
+
var id = _ref2.id,
|
|
81
|
+
config = _ref2.config,
|
|
82
|
+
rest = (0, _objectWithoutProperties2.default)(_ref2, ["id", "config"]);
|
|
83
|
+
var textLabel = config.textLabel,
|
|
84
|
+
configRest = (0, _objectWithoutProperties2.default)(config, ["textLabel"]);
|
|
85
|
+
return [_objectSpread({
|
|
86
|
+
id: id,
|
|
87
|
+
config: configRest
|
|
88
|
+
}, rest)].concat((0, _toConsumableArray2.default)(textLabel.filter(function (t) {
|
|
89
|
+
return t.field;
|
|
90
|
+
}).map(function (t) {
|
|
91
|
+
return _objectSpread({
|
|
92
|
+
id: "id-label-".concat(t.field.name),
|
|
93
|
+
config: _objectSpread(_objectSpread({
|
|
94
|
+
textLabel: t
|
|
95
|
+
}, configRest), {}, {
|
|
96
|
+
visConfig: _objectSpread(_objectSpread({}, configRest.visConfig), {}, {
|
|
97
|
+
opacity: 1
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
}, rest);
|
|
101
|
+
})));
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function createBlendingProps(layerBlending) {
|
|
106
|
+
if (layerBlending === 'additive') {
|
|
107
|
+
return {
|
|
108
|
+
parameters: {
|
|
109
|
+
blendFunc: [770, 772],
|
|
110
|
+
blendEquation: 32774
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
} else if (layerBlending === 'subtractive') {
|
|
114
|
+
return {
|
|
115
|
+
parameters: {
|
|
116
|
+
blendFunc: [1, 775, 770, 772],
|
|
117
|
+
blendEquation: [32778, 32774]
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function createInteractionProps(interactionConfig) {
|
|
126
|
+
var pickable = interactionConfig && interactionConfig.tooltip.enabled;
|
|
127
|
+
return {
|
|
128
|
+
autoHighlight: pickable,
|
|
129
|
+
pickable: pickable
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function mapProps(source, target, mapping) {
|
|
134
|
+
if (Array.isArray(source)) {
|
|
135
|
+
source = source[0];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (!source) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
for (var sourceKey in mapping) {
|
|
143
|
+
var sourceValue = source[sourceKey];
|
|
144
|
+
var targetKey = mapping[sourceKey];
|
|
145
|
+
|
|
146
|
+
if (sourceValue === undefined) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (typeof targetKey === 'string') {
|
|
151
|
+
target[targetKey] = sourceValue;
|
|
152
|
+
} else if ((0, _typeof2.default)(targetKey) === 'object') {
|
|
153
|
+
mapProps(sourceValue, target, targetKey);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function createStyleProps(config, mapping) {
|
|
159
|
+
var result = {};
|
|
160
|
+
mapProps(config, result, mapping);
|
|
161
|
+
result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function createChannelProps(visualChannels, type, config, data) {
|
|
166
|
+
var colorField = visualChannels.colorField,
|
|
167
|
+
colorScale = visualChannels.colorScale,
|
|
168
|
+
sizeField = visualChannels.sizeField,
|
|
169
|
+
sizeScale = visualChannels.sizeScale,
|
|
170
|
+
strokeColorField = visualChannels.strokeColorField,
|
|
171
|
+
strokeColorScale = visualChannels.strokeColorScale;
|
|
172
|
+
var heightField = visualChannels.heightField,
|
|
173
|
+
heightScale = visualChannels.heightScale;
|
|
174
|
+
|
|
175
|
+
if (type === 'hexagonId') {
|
|
176
|
+
heightField = sizeField;
|
|
177
|
+
heightScale = sizeScale;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
var textLabel = config.textLabel,
|
|
181
|
+
visConfig = config.visConfig;
|
|
182
|
+
var result = {};
|
|
183
|
+
var textLabelField = textLabel && textLabel.field;
|
|
184
|
+
|
|
185
|
+
if (colorField) {
|
|
186
|
+
result.getFillColor = (0, _layerMap.getColorAccessor)(colorField, colorScale, visConfig.colorRange, 1, data);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (strokeColorField) {
|
|
190
|
+
var opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity / visConfig.opacity : 1;
|
|
191
|
+
result.getLineColor = (0, _layerMap.getColorAccessor)(strokeColorField, strokeColorScale, visConfig.colorRange, opacity, data);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (heightField) {
|
|
195
|
+
result.getElevation = (0, _layerMap.getSizeAccessor)(heightField, heightScale, visConfig.heightRange || visConfig.sizeRange, data);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (sizeField) {
|
|
199
|
+
result.getPointRadius = (0, _layerMap.getSizeAccessor)(sizeField, sizeScale, visConfig.radiusRange || visConfig.sizeRange, data);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (textLabelField) {
|
|
203
|
+
result.getText = (0, _layerMap.getTextAccessor)(textLabelField, data);
|
|
204
|
+
result.pointType = 'text';
|
|
205
|
+
var radius = result.getPointRadius || visConfig.radius;
|
|
206
|
+
result.getTextPixelOffset = (0, _layerMap.getTextPixelOffsetAccessor)(textLabel, radius);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=parseMap.js.map
|
|
@@ -0,0 +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","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","visConfig","opacity","parameters","blendFunc","blendEquation","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","Array","isArray","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 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.filter(t => t.field).map(t => {\n return {\n id: `id-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\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 if (Array.isArray(source)) {\n source = source[0];\n }\n if (!source) {\n return;\n }\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 {\n colorField,\n colorScale,\n sizeField,\n sizeScale,\n strokeColorField,\n strokeColorScale\n } = visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result = {};\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"}
|
package/dist/es5/config.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.setDefaultCredentials = setDefaultCredentials;
|
|
9
9
|
exports.getDefaultCredentials = getDefaultCredentials;
|
|
10
10
|
exports.buildMapsUrlFromBase = buildMapsUrlFromBase;
|
|
11
|
+
exports.defaultClassicCredentials = void 0;
|
|
11
12
|
|
|
12
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
14
|
|
|
@@ -23,6 +24,7 @@ var defaultClassicCredentials = {
|
|
|
23
24
|
region: 'us',
|
|
24
25
|
mapsUrl: null
|
|
25
26
|
};
|
|
27
|
+
exports.defaultClassicCredentials = defaultClassicCredentials;
|
|
26
28
|
var defaultCloudNativeCredentials = {
|
|
27
29
|
accessToken: null,
|
|
28
30
|
apiBaseUrl: null,
|
|
@@ -36,14 +38,14 @@ function setDefaultCredentials(opts) {
|
|
|
36
38
|
|
|
37
39
|
switch (apiVersion) {
|
|
38
40
|
case _mapsApiCommon.API_VERSIONS.V1:
|
|
39
|
-
opts.mapsUrl = opts.mapsUrl ||
|
|
41
|
+
opts.mapsUrl = opts.mapsUrl || _mapsApiCommon.DEFAULT_MAPS_URL_FORMAT[apiVersion];
|
|
40
42
|
credentials = _objectSpread(_objectSpread({
|
|
41
43
|
apiVersion: apiVersion
|
|
42
44
|
}, defaultClassicCredentials), opts);
|
|
43
45
|
break;
|
|
44
46
|
|
|
45
47
|
case _mapsApiCommon.API_VERSIONS.V2:
|
|
46
|
-
opts.mapsUrl = opts.mapsUrl ||
|
|
48
|
+
opts.mapsUrl = opts.mapsUrl || _mapsApiCommon.DEFAULT_MAPS_URL_FORMAT[apiVersion];
|
|
47
49
|
credentials = _objectSpread(_objectSpread({
|
|
48
50
|
apiVersion: apiVersion
|
|
49
51
|
}, defaultClassicCredentials), opts);
|
package/dist/es5/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config.js"],"names":["defaultClassicCredentials","username","apiKey","region","mapsUrl","defaultCloudNativeCredentials","accessToken","apiBaseUrl","credentials","setDefaultCredentials","opts","apiVersion","API_VERSIONS","V2","V1","V3","Error","buildMapsUrlFromBase","getDefaultCredentials","suffix","endsWith","substring"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/config.js"],"names":["defaultClassicCredentials","username","apiKey","region","mapsUrl","defaultCloudNativeCredentials","accessToken","apiBaseUrl","credentials","setDefaultCredentials","opts","apiVersion","API_VERSIONS","V2","V1","DEFAULT_MAPS_URL_FORMAT","V3","Error","buildMapsUrlFromBase","getDefaultCredentials","suffix","endsWith","substring"],"mappings":";;;;;;;;;;;;;;AAAA;;;;;;AAEO,IAAMA,yBAAyB,GAAG;AACvCC,EAAAA,QAAQ,EAAE,QAD6B;AAEvCC,EAAAA,MAAM,EAAE,gBAF+B;AAGvCC,EAAAA,MAAM,EAAE,IAH+B;AAIvCC,EAAAA,OAAO,EAAE;AAJ8B,CAAlC;;AAOP,IAAMC,6BAA6B,GAAG;AACpCC,EAAAA,WAAW,EAAE,IADuB;AAEpCC,EAAAA,UAAU,EAAE,IAFwB;AAGpCH,EAAAA,OAAO,EAAE;AAH2B,CAAtC;AAMA,IAAII,WAAW,GAAG,EAAlB;AAEAC,qBAAqB,CAAC,EAAD,CAArB;;AAEO,SAASA,qBAAT,CAA+BC,IAA/B,EAAqC;AAC1C,MAAMC,UAAU,GAAGD,IAAI,CAACC,UAAL,IAAmBC,4BAAaC,EAAnD;;AAEA,UAAQF,UAAR;AACE,SAAKC,4BAAaE,EAAlB;AACEJ,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBW,uCAAwBJ,UAAxB,CAA/B;AACAH,MAAAA,WAAW;AACTG,QAAAA,UAAU,EAAVA;AADS,SAENX,yBAFM,GAGNU,IAHM,CAAX;AAKA;;AAEF,SAAKE,4BAAaC,EAAlB;AACEH,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBW,uCAAwBJ,UAAxB,CAA/B;AACAH,MAAAA,WAAW;AACTG,QAAAA,UAAU,EAAVA;AADS,SAENX,yBAFM,GAGNU,IAHM,CAAX;AAMA;;AACF,SAAKE,4BAAaI,EAAlB;AACE,UAAI,CAACN,IAAI,CAACH,UAAV,EAAsB;AACpB,cAAM,IAAIU,KAAJ,uBAEFL,4BAAaI,EAFX,wGAAN;AAKD;;AAED,UAAMT,UAAU,GAAGG,IAAI,CAACH,UAAL,IAAmBF,6BAA6B,CAACE,UAApE;AACAG,MAAAA,IAAI,CAACN,OAAL,GAAeM,IAAI,CAACN,OAAL,IAAgBc,oBAAoB,CAACX,UAAD,CAAnD;AACAC,MAAAA,WAAW;AACTG,QAAAA,UAAU,EAAVA;AADS,SAENN,6BAFM,GAGNK,IAHM,CAAX;AAKA;;AACF;AACE,YAAM,IAAIO,KAAJ,+BAAiCN,UAAjC,8BAAN;AArCJ;AAuCD;;AAEM,SAASQ,qBAAT,GAAiC;AACtC,SAAOX,WAAP;AACD;;AAEM,SAASU,oBAAT,CAA8BX,UAA9B,EAA0C;AAC/C,MAAIa,MAAM,GAAG,UAAb;;AACA,MAAIb,UAAU,CAACc,QAAX,CAAoB,GAApB,CAAJ,EAA8B;AAC5BD,IAAAA,MAAM,GAAGA,MAAM,CAACE,SAAP,CAAiB,CAAjB,CAAT;AACD;;AAED,mBAAUf,UAAV,SAAuBa,MAAvB;AACD","sourcesContent":["import {API_VERSIONS, DEFAULT_MAPS_URL_FORMAT} from './api/maps-api-common';\n\nexport const defaultClassicCredentials = {\n username: 'public',\n apiKey: 'default_public',\n region: 'us',\n mapsUrl: null\n};\n\nconst defaultCloudNativeCredentials = {\n accessToken: null,\n apiBaseUrl: null,\n mapsUrl: null\n};\n\nlet credentials = {};\n\nsetDefaultCredentials({});\n\nexport function setDefaultCredentials(opts) {\n const apiVersion = opts.apiVersion || API_VERSIONS.V2;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];\n credentials = {\n apiVersion,\n ...defaultClassicCredentials,\n ...opts\n };\n break;\n\n case API_VERSIONS.V2:\n opts.mapsUrl = opts.mapsUrl || DEFAULT_MAPS_URL_FORMAT[apiVersion];\n credentials = {\n apiVersion,\n ...defaultClassicCredentials,\n ...opts\n };\n\n break;\n case API_VERSIONS.V3:\n if (!opts.apiBaseUrl) {\n throw new Error(\n `API version ${\n API_VERSIONS.V3\n } requires to define apiBaseUrl at credentials. Go to https://app.carto.com to get your apiBaseUrl.`\n );\n }\n\n const apiBaseUrl = opts.apiBaseUrl || defaultCloudNativeCredentials.apiBaseUrl;\n opts.mapsUrl = opts.mapsUrl || buildMapsUrlFromBase(apiBaseUrl);\n credentials = {\n apiVersion,\n ...defaultCloudNativeCredentials,\n ...opts\n };\n break;\n default:\n throw new Error(`Invalid API version ${apiVersion}. Use API_VERSIONS enum.`);\n }\n}\n\nexport function getDefaultCredentials() {\n return credentials;\n}\n\nexport function buildMapsUrlFromBase(apiBaseUrl) {\n let suffix = '/v3/maps';\n if (apiBaseUrl.endsWith('/')) {\n suffix = suffix.substring(1);\n }\n\n return `${apiBaseUrl}${suffix}`;\n}\n"],"file":"config.js"}
|
package/dist/es5/index.js
CHANGED
|
@@ -77,6 +77,18 @@ Object.defineProperty(exports, "API_VERSIONS", {
|
|
|
77
77
|
return _api.API_VERSIONS;
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
|
+
Object.defineProperty(exports, "fetchLayerData", {
|
|
81
|
+
enumerable: true,
|
|
82
|
+
get: function get() {
|
|
83
|
+
return _api.fetchLayerData;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
Object.defineProperty(exports, "fetchMap", {
|
|
87
|
+
enumerable: true,
|
|
88
|
+
get: function get() {
|
|
89
|
+
return _api.fetchMap;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
80
92
|
Object.defineProperty(exports, "_getDataV2", {
|
|
81
93
|
enumerable: true,
|
|
82
94
|
get: function get() {
|
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;;AACA","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config.js';\nexport {default as CartoSQLLayer} from './layers/carto-sql-layer';\nexport {default as CartoBQTilerLayer} from './layers/carto-bqtiler-layer';\nexport {default as CartoLayer} from './layers/carto-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 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"}
|
package/dist/esm/api/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { FORMATS, MAP_TYPES, API_VERSIONS } from './maps-api-common';
|
|
2
2
|
export { getDataV2, CONNECTIONS } from './maps-client';
|
|
3
|
-
export { getData, mapInstantiation } from './maps-v3-client';
|
|
3
|
+
export { fetchLayerData, fetchMap, getData, mapInstantiation } from './maps-v3-client';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/index.js"],"names":["FORMATS","MAP_TYPES","API_VERSIONS","getDataV2","CONNECTIONS","getData","mapInstantiation"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,SAAjB,EAA4BC,YAA5B,QAA+C,mBAA/C;AACA,SAAQC,SAAR,EAAmBC,WAAnB,QAAqC,eAArC;AACA,SAAQC,
|
|
1
|
+
{"version":3,"sources":["../../../src/api/index.js"],"names":["FORMATS","MAP_TYPES","API_VERSIONS","getDataV2","CONNECTIONS","fetchLayerData","fetchMap","getData","mapInstantiation"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,SAAjB,EAA4BC,YAA5B,QAA+C,mBAA/C;AACA,SAAQC,SAAR,EAAmBC,WAAnB,QAAqC,eAArC;AACA,SAAQC,cAAR,EAAwBC,QAAxB,EAAkCC,OAAlC,EAA2CC,gBAA3C,QAAkE,kBAAlE","sourcesContent":["export {FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { extent } from 'd3-array';
|
|
2
|
+
import { rgb } from 'd3-color';
|
|
3
|
+
import { scaleLinear, scaleOrdinal, scaleLog, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt } from 'd3-scale';
|
|
4
|
+
import { format as d3Format } from 'd3-format';
|
|
5
|
+
import moment from 'moment-timezone';
|
|
6
|
+
import { H3HexagonLayer, MVTLayer } from '@deck.gl/geo-layers';
|
|
7
|
+
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
8
|
+
const SCALE_FUNCS = {
|
|
9
|
+
linear: scaleLinear,
|
|
10
|
+
ordinal: scaleOrdinal,
|
|
11
|
+
log: scaleLog,
|
|
12
|
+
point: scalePoint,
|
|
13
|
+
quantile: scaleQuantile,
|
|
14
|
+
quantize: scaleQuantize,
|
|
15
|
+
sqrt: scaleSqrt
|
|
16
|
+
};
|
|
17
|
+
const sharedPropMap = {
|
|
18
|
+
color: 'getFillColor',
|
|
19
|
+
isVisible: 'visible',
|
|
20
|
+
textLabel: {
|
|
21
|
+
alignment: 'getTextAlignmentBaseline',
|
|
22
|
+
anchor: 'getTextAnchor',
|
|
23
|
+
color: 'getTextColor',
|
|
24
|
+
size: 'getTextSize'
|
|
25
|
+
},
|
|
26
|
+
visConfig: {
|
|
27
|
+
enable3d: 'extruded',
|
|
28
|
+
filled: 'filled',
|
|
29
|
+
opacity: 'opacity',
|
|
30
|
+
strokeColor: 'getLineColor',
|
|
31
|
+
stroked: 'stroked',
|
|
32
|
+
thickness: 'getLineWidth',
|
|
33
|
+
radius: 'getPointRadius',
|
|
34
|
+
wireframe: 'wireframe'
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const RADIUS_DOWNSCALE = 0.2;
|
|
38
|
+
const defaultProps = {
|
|
39
|
+
lineMiterLimit: 2,
|
|
40
|
+
lineWidthUnits: 'pixels',
|
|
41
|
+
pointRadiusScale: RADIUS_DOWNSCALE,
|
|
42
|
+
pointRadiusUnits: 'pixels',
|
|
43
|
+
rounded: true,
|
|
44
|
+
wrapLongitude: false
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function mergePropMaps(a, b) {
|
|
48
|
+
return { ...a,
|
|
49
|
+
...b,
|
|
50
|
+
visConfig: { ...a.visConfig,
|
|
51
|
+
...b.visConfig
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export const LAYER_MAP = {
|
|
57
|
+
point: {
|
|
58
|
+
Layer: GeoJsonLayer,
|
|
59
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
60
|
+
visConfig: {
|
|
61
|
+
outline: 'stroked'
|
|
62
|
+
}
|
|
63
|
+
}),
|
|
64
|
+
defaultProps
|
|
65
|
+
},
|
|
66
|
+
geojson: {
|
|
67
|
+
Layer: GeoJsonLayer,
|
|
68
|
+
propMap: sharedPropMap,
|
|
69
|
+
defaultProps: { ...defaultProps,
|
|
70
|
+
lineWidthScale: 2
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
hexagonId: {
|
|
74
|
+
Layer: H3HexagonLayer,
|
|
75
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
76
|
+
visConfig: {
|
|
77
|
+
coverage: 'coverage',
|
|
78
|
+
elevationScale: 'elevationScale'
|
|
79
|
+
}
|
|
80
|
+
}),
|
|
81
|
+
defaultProps: { ...defaultProps,
|
|
82
|
+
getHexagon: d => d.h3
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
mvt: {
|
|
86
|
+
Layer: MVTLayer,
|
|
87
|
+
propMap: sharedPropMap,
|
|
88
|
+
defaultProps: { ...defaultProps,
|
|
89
|
+
pointRadiusScale: 0.3,
|
|
90
|
+
lineWidthScale: 2
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
function domainFromAttribute(attribute, scaleType) {
|
|
96
|
+
if (scaleType === 'ordinal' || scaleType === 'point') {
|
|
97
|
+
return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
let {
|
|
101
|
+
min
|
|
102
|
+
} = attribute;
|
|
103
|
+
|
|
104
|
+
if (scaleType === 'log' && min === 0) {
|
|
105
|
+
min = 1e-5;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return [min, attribute.max];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function domainFromValues(values, scaleType) {
|
|
112
|
+
if (scaleType === 'ordinal') {
|
|
113
|
+
return [...new Set(values)].sort();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return extent(values);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function calculateDomain(data, name, scaleType) {
|
|
120
|
+
if (data.tilestats) {
|
|
121
|
+
const {
|
|
122
|
+
attributes
|
|
123
|
+
} = data.tilestats.layers[0];
|
|
124
|
+
const attribute = attributes.find(a => a.attribute === name);
|
|
125
|
+
return domainFromAttribute(attribute, scaleType);
|
|
126
|
+
} else if (data.features) {
|
|
127
|
+
const values = data.features.map(({
|
|
128
|
+
properties
|
|
129
|
+
}) => properties[name]);
|
|
130
|
+
return domainFromValues(values, scaleType);
|
|
131
|
+
} else if (Array.isArray(data) && data[0][name]) {
|
|
132
|
+
const values = data.map(properties => properties[name]);
|
|
133
|
+
return domainFromValues(values, scaleType);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return [0, 1];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function normalizeAccessor(accessor, data) {
|
|
140
|
+
if (data.features || data.tilestats) {
|
|
141
|
+
return ({
|
|
142
|
+
properties
|
|
143
|
+
}) => {
|
|
144
|
+
return accessor(properties);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return accessor;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function getColorAccessor({
|
|
152
|
+
name
|
|
153
|
+
}, scaleType, {
|
|
154
|
+
colors
|
|
155
|
+
}, opacity, data) {
|
|
156
|
+
const scale = SCALE_FUNCS[scaleType]();
|
|
157
|
+
scale.domain(calculateDomain(data, name, scaleType));
|
|
158
|
+
scale.range(colors);
|
|
159
|
+
const alpha = opacity !== undefined ? 255 * Math.pow(opacity, 1 / 2.2) : 255;
|
|
160
|
+
|
|
161
|
+
const accessor = properties => {
|
|
162
|
+
const rgba = rgb(scale(properties[name]));
|
|
163
|
+
return [rgba.r, rgba.g, rgba.b, alpha];
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
return normalizeAccessor(accessor, data);
|
|
167
|
+
}
|
|
168
|
+
export function getSizeAccessor({
|
|
169
|
+
name
|
|
170
|
+
}, scaleType, range, data) {
|
|
171
|
+
const scale = SCALE_FUNCS[scaleType]();
|
|
172
|
+
scale.domain(calculateDomain(data, name, scaleType));
|
|
173
|
+
scale.range(range);
|
|
174
|
+
|
|
175
|
+
const accessor = properties => {
|
|
176
|
+
return scale(properties[name]);
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
return normalizeAccessor(accessor, data);
|
|
180
|
+
}
|
|
181
|
+
const FORMATS = {
|
|
182
|
+
date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),
|
|
183
|
+
integer: d3Format('i'),
|
|
184
|
+
float: d3Format('.5f'),
|
|
185
|
+
timestamp: s => moment.utc(s).format('X'),
|
|
186
|
+
default: String
|
|
187
|
+
};
|
|
188
|
+
export function getTextAccessor({
|
|
189
|
+
name,
|
|
190
|
+
type
|
|
191
|
+
}, data) {
|
|
192
|
+
const format = FORMATS[type] || FORMATS.default;
|
|
193
|
+
|
|
194
|
+
const accessor = properties => {
|
|
195
|
+
return format(properties[name]);
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
return normalizeAccessor(accessor, data);
|
|
199
|
+
}
|
|
200
|
+
export function getTextPixelOffsetAccessor({
|
|
201
|
+
alignment,
|
|
202
|
+
anchor,
|
|
203
|
+
size
|
|
204
|
+
}, radius) {
|
|
205
|
+
const padding = 20;
|
|
206
|
+
const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
|
|
207
|
+
const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
|
|
208
|
+
const sizeOffset = alignment === 'center' ? 0 : size;
|
|
209
|
+
|
|
210
|
+
const calculateOffset = r => {
|
|
211
|
+
r = RADIUS_DOWNSCALE * r;
|
|
212
|
+
return [signX * (r + padding), signY * (r + padding + sizeOffset)];
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
return typeof radius === 'function' ? d => {
|
|
216
|
+
return calculateOffset(radius(d));
|
|
217
|
+
} : calculateOffset(radius);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=layer-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/api/layer-map.js"],"names":["extent","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","format","d3Format","moment","H3HexagonLayer","MVTLayer","GeoJsonLayer","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","sharedPropMap","color","isVisible","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","LAYER_MAP","Layer","propMap","outline","geojson","lineWidthScale","hexagonId","coverage","elevationScale","getHexagon","d","h3","mvt","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","calculateDomain","data","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","utc","integer","float","timestamp","default","String","getTextAccessor","type","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\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};\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport const LAYER_MAP = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d.h3}\n },\n mvt: {\n Layer: MVTLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, pointRadiusScale: 0.3, lineWidthScale: 2}\n }\n};\n\nfunction domainFromAttribute(attribute, scaleType) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\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) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\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);\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]) {\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 ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor({name}, scaleType, {colors}, opacity, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? 255 * Math.pow(opacity, 1 / 2.2) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS = {\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}, 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 function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n"],"file":"layer-map.js"}
|
|
@@ -5,6 +5,10 @@ export const API_VERSIONS = {
|
|
|
5
5
|
V2: 'v2',
|
|
6
6
|
V3: 'v3'
|
|
7
7
|
};
|
|
8
|
+
export const DEFAULT_MAPS_URL_FORMAT = {
|
|
9
|
+
[API_VERSIONS.V1]: "https://".concat(DEFAULT_USER_COMPONENT_IN_URL, ".carto.com/api/v1/map"),
|
|
10
|
+
[API_VERSIONS.V2]: "https://maps-api-v2.".concat(DEFAULT_REGION_COMPONENT_IN_URL, ".carto.com/user/").concat(DEFAULT_USER_COMPONENT_IN_URL)
|
|
11
|
+
};
|
|
8
12
|
export const MAP_TYPES = {
|
|
9
13
|
QUERY: 'query',
|
|
10
14
|
TABLE: 'table',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-api-common.js"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","MAP_TYPES","QUERY","TABLE","TILESET","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","encodeParameter","name","value","encodeURIComponent"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,GAAG,QAAtC;AACP,OAAO,MAAMC,+BAA+B,GAAG,UAAxC;AAEP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;AAMP,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;AAOP,OAAO,MAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;AAUP,OAAO,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,KAA/B,EAAsC;AAC3C,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n};\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n};\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n};\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name, value) {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/maps-api-common.js"],"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","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","encodeParameter","name","value","encodeURIComponent"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,GAAG,QAAtC;AACP,OAAO,MAAMC,+BAA+B,GAAG,UAAxC;AAEP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;AAMP,OAAO,MAAMC,uBAAuB,GAAG;AACrC,GAACJ,YAAY,CAACC,EAAd,qBAA8BH,6BAA9B,0BADqC;AAErC,GAACE,YAAY,CAACE,EAAd,iCAA0CH,+BAA1C,6BAA4FD,6BAA5F;AAFqC,CAAhC;AAKP,OAAO,MAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;AAOP,OAAO,MAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;AAUP,OAAO,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,KAA/B,EAAsC;AAC3C,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n};\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};\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n};\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n};\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name, value) {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getDefaultCredentials } from '../config';
|
|
2
|
-
import { API_VERSIONS, DEFAULT_REGION_COMPONENT_IN_URL, DEFAULT_USER_COMPONENT_IN_URL, encodeParameter, MAP_TYPES } from './maps-api-common';
|
|
1
|
+
import { defaultClassicCredentials, getDefaultCredentials } from '../config';
|
|
2
|
+
import { API_VERSIONS, DEFAULT_MAPS_URL_FORMAT, DEFAULT_REGION_COMPONENT_IN_URL, DEFAULT_USER_COMPONENT_IN_URL, encodeParameter, MAP_TYPES } from './maps-api-common';
|
|
3
3
|
export const CONNECTIONS = {
|
|
4
4
|
BIGQUERY: 'bigquery',
|
|
5
5
|
CARTO: 'carto'
|
|
@@ -11,12 +11,17 @@ export async function getDataV2({
|
|
|
11
11
|
source,
|
|
12
12
|
credentials
|
|
13
13
|
}) {
|
|
14
|
-
const
|
|
14
|
+
const defaultCredentials = getDefaultCredentials();
|
|
15
|
+
const apiVersion = credentials && credentials.apiVersion || defaultCredentials.apiVersion;
|
|
16
|
+
const localCreds = { ...defaultClassicCredentials,
|
|
17
|
+
...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
|
|
15
18
|
...credentials
|
|
16
19
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
|
|
21
|
+
if (!localCreds.mapsUrl) {
|
|
22
|
+
localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];
|
|
23
|
+
}
|
|
24
|
+
|
|
20
25
|
let url;
|
|
21
26
|
const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
|
|
22
27
|
|