@deck.gl/carto 8.7.0-beta.1 → 8.7.0-beta.2
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 +98 -50
- package/dist/es5/api/layer-map.js +53 -43
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/parseMap.js +4 -5
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/esm/api/layer-map.js +44 -36
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/parseMap.js +2 -3
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +3 -3
- package/src/api/layer-map.js +39 -30
- package/src/api/parseMap.js +2 -4
package/dist/dist.dev.js
CHANGED
|
@@ -51678,7 +51678,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
51678
51678
|
|
|
51679
51679
|
|
|
51680
51680
|
const defaultProps = {
|
|
51681
|
-
|
|
51681
|
+
maskId: ''
|
|
51682
51682
|
};
|
|
51683
51683
|
class MaskExtension extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["LayerExtension"] {
|
|
51684
51684
|
getShaders() {
|
|
@@ -51697,17 +51697,50 @@ class MaskExtension extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["LayerExt
|
|
|
51697
51697
|
|
|
51698
51698
|
draw({
|
|
51699
51699
|
uniforms,
|
|
51700
|
+
context,
|
|
51700
51701
|
moduleParameters
|
|
51701
51702
|
}) {
|
|
51702
51703
|
uniforms.mask_maskByInstance = this.state.maskByInstance;
|
|
51703
51704
|
const {
|
|
51704
|
-
|
|
51705
|
+
maskId
|
|
51706
|
+
} = this.props;
|
|
51707
|
+
const {
|
|
51708
|
+
maskChannels
|
|
51705
51709
|
} = moduleParameters;
|
|
51710
|
+
const {
|
|
51711
|
+
viewport
|
|
51712
|
+
} = context;
|
|
51713
|
+
|
|
51714
|
+
if (maskChannels && maskChannels[maskId]) {
|
|
51715
|
+
const {
|
|
51716
|
+
index,
|
|
51717
|
+
bounds,
|
|
51718
|
+
coordinateOrigin: fromCoordinateOrigin
|
|
51719
|
+
} = maskChannels[maskId];
|
|
51720
|
+
let {
|
|
51721
|
+
coordinateSystem: fromCoordinateSystem
|
|
51722
|
+
} = maskChannels[maskId];
|
|
51723
|
+
uniforms.mask_enabled = true;
|
|
51724
|
+
uniforms.mask_channel = index;
|
|
51725
|
+
|
|
51726
|
+
if (fromCoordinateSystem === _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["COORDINATE_SYSTEM"].DEFAULT) {
|
|
51727
|
+
fromCoordinateSystem = viewport.isGeospatial ? _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["COORDINATE_SYSTEM"].LNGLAT : _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["COORDINATE_SYSTEM"].CARTESIAN;
|
|
51728
|
+
}
|
|
51706
51729
|
|
|
51707
|
-
|
|
51708
|
-
|
|
51709
|
-
|
|
51730
|
+
const opts = {
|
|
51731
|
+
modelMatrix: null,
|
|
51732
|
+
fromCoordinateOrigin,
|
|
51733
|
+
fromCoordinateSystem
|
|
51734
|
+
};
|
|
51735
|
+
const bl = this.projectPosition([bounds[0], bounds[1], 0], opts);
|
|
51736
|
+
const tr = this.projectPosition([bounds[2], bounds[3], 0], opts);
|
|
51710
51737
|
uniforms.mask_bounds = [bl[0], bl[1], tr[0], tr[1]];
|
|
51738
|
+
} else {
|
|
51739
|
+
if (maskId) {
|
|
51740
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].warn(`Could not find a mask layer with id: ${maskId}`)();
|
|
51741
|
+
}
|
|
51742
|
+
|
|
51743
|
+
uniforms.mask_enabled = false;
|
|
51711
51744
|
}
|
|
51712
51745
|
}
|
|
51713
51746
|
|
|
@@ -51738,13 +51771,24 @@ vec2 mask_getCoords(vec4 position) {
|
|
|
51738
51771
|
`;
|
|
51739
51772
|
const fs = `
|
|
51740
51773
|
uniform sampler2D mask_texture;
|
|
51774
|
+
uniform int mask_channel;
|
|
51741
51775
|
uniform bool mask_enabled;
|
|
51742
51776
|
bool mask_isInBounds(vec2 texCoords) {
|
|
51743
51777
|
if (!mask_enabled) {
|
|
51744
51778
|
return true;
|
|
51745
51779
|
}
|
|
51746
51780
|
vec4 maskColor = texture2D(mask_texture, texCoords);
|
|
51747
|
-
|
|
51781
|
+
float maskValue = 1.0;
|
|
51782
|
+
if (mask_channel == 0) {
|
|
51783
|
+
maskValue = maskColor.r;
|
|
51784
|
+
} else if (mask_channel == 1) {
|
|
51785
|
+
maskValue = maskColor.g;
|
|
51786
|
+
} else if (mask_channel == 2) {
|
|
51787
|
+
maskValue = maskColor.b;
|
|
51788
|
+
} else if (mask_channel == 3) {
|
|
51789
|
+
maskValue = maskColor.a;
|
|
51790
|
+
}
|
|
51791
|
+
return maskValue < 0.5;
|
|
51748
51792
|
}
|
|
51749
51793
|
`;
|
|
51750
51794
|
const inject = {
|
|
@@ -51776,11 +51820,10 @@ varying vec2 mask_texCoords;
|
|
|
51776
51820
|
`
|
|
51777
51821
|
};
|
|
51778
51822
|
|
|
51779
|
-
const getMaskUniforms = (opts = {}
|
|
51823
|
+
const getMaskUniforms = (opts = {}) => {
|
|
51780
51824
|
const uniforms = {};
|
|
51781
51825
|
|
|
51782
51826
|
if (opts.maskMap) {
|
|
51783
|
-
uniforms.mask_enabled = opts.maskEnabled !== false;
|
|
51784
51827
|
uniforms.mask_texture = opts.maskMap;
|
|
51785
51828
|
}
|
|
51786
51829
|
|
|
@@ -52132,12 +52175,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
52132
52175
|
/*!******************************!*\
|
|
52133
52176
|
!*** ./src/api/layer-map.js ***!
|
|
52134
52177
|
\******************************/
|
|
52135
|
-
/*! exports provided:
|
|
52178
|
+
/*! exports provided: getLayer, getColorAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor, _domainFromValues */
|
|
52136
52179
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
52137
52180
|
|
|
52138
52181
|
"use strict";
|
|
52139
52182
|
__webpack_require__.r(__webpack_exports__);
|
|
52140
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
|
52183
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLayer", function() { return getLayer; });
|
|
52141
52184
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorAccessor", function() { return getColorAccessor; });
|
|
52142
52185
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSizeAccessor", function() { return getSizeAccessor; });
|
|
52143
52186
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextAccessor", function() { return getTextAccessor; });
|
|
@@ -52149,8 +52192,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
52149
52192
|
/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-format */ "../../node_modules/d3-format/src/index.js");
|
|
52150
52193
|
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment-timezone */ "../../node_modules/moment-timezone/index.js");
|
|
52151
52194
|
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_4__);
|
|
52152
|
-
/* harmony import */ var
|
|
52153
|
-
/* harmony import */ var
|
|
52195
|
+
/* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
|
|
52196
|
+
/* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_5__);
|
|
52197
|
+
|
|
52154
52198
|
|
|
52155
52199
|
|
|
52156
52200
|
|
|
@@ -52208,45 +52252,50 @@ function mergePropMaps(a, b) {
|
|
|
52208
52252
|
};
|
|
52209
52253
|
}
|
|
52210
52254
|
|
|
52211
|
-
|
|
52212
|
-
|
|
52213
|
-
|
|
52214
|
-
|
|
52215
|
-
|
|
52216
|
-
|
|
52255
|
+
function getLayer(type, config) {
|
|
52256
|
+
const hexagonId = config.columns?.hex_id;
|
|
52257
|
+
const layer = {
|
|
52258
|
+
point: {
|
|
52259
|
+
Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
|
|
52260
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
52261
|
+
visConfig: {
|
|
52262
|
+
outline: 'stroked'
|
|
52263
|
+
}
|
|
52264
|
+
}),
|
|
52265
|
+
defaultProps
|
|
52266
|
+
},
|
|
52267
|
+
geojson: {
|
|
52268
|
+
Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["GeoJsonLayer"],
|
|
52269
|
+
propMap: sharedPropMap,
|
|
52270
|
+
defaultProps: { ...defaultProps,
|
|
52271
|
+
lineWidthScale: 2
|
|
52217
52272
|
}
|
|
52218
|
-
}
|
|
52219
|
-
|
|
52220
|
-
|
|
52221
|
-
|
|
52222
|
-
|
|
52223
|
-
|
|
52224
|
-
|
|
52225
|
-
|
|
52226
|
-
|
|
52227
|
-
|
|
52228
|
-
|
|
52229
|
-
|
|
52230
|
-
|
|
52231
|
-
|
|
52232
|
-
|
|
52233
|
-
|
|
52273
|
+
},
|
|
52274
|
+
hexagonId: {
|
|
52275
|
+
Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["H3HexagonLayer"],
|
|
52276
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
52277
|
+
visConfig: {
|
|
52278
|
+
coverage: 'coverage',
|
|
52279
|
+
elevationScale: 'elevationScale'
|
|
52280
|
+
}
|
|
52281
|
+
}),
|
|
52282
|
+
defaultProps: { ...defaultProps,
|
|
52283
|
+
getHexagon: d => d[hexagonId]
|
|
52284
|
+
}
|
|
52285
|
+
},
|
|
52286
|
+
mvt: {
|
|
52287
|
+
Layer: _deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"],
|
|
52288
|
+
propMap: sharedPropMap,
|
|
52289
|
+
defaultProps: { ...defaultProps,
|
|
52290
|
+
pointRadiusScale: 0.3,
|
|
52291
|
+
lineWidthScale: 2,
|
|
52292
|
+
uniqueIdProperty: 'geoid'
|
|
52234
52293
|
}
|
|
52235
|
-
}),
|
|
52236
|
-
defaultProps: { ...defaultProps,
|
|
52237
|
-
getHexagon: d => d.h3
|
|
52238
|
-
}
|
|
52239
|
-
},
|
|
52240
|
-
mvt: {
|
|
52241
|
-
Layer: _deck_gl_geo_layers__WEBPACK_IMPORTED_MODULE_5__["MVTLayer"],
|
|
52242
|
-
propMap: sharedPropMap,
|
|
52243
|
-
defaultProps: { ...defaultProps,
|
|
52244
|
-
pointRadiusScale: 0.3,
|
|
52245
|
-
lineWidthScale: 2,
|
|
52246
|
-
uniqueIdProperty: 'geoid'
|
|
52247
52294
|
}
|
|
52248
|
-
}
|
|
52249
|
-
};
|
|
52295
|
+
}[type];
|
|
52296
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_5__["log"].assert(layer, `Unsupported layer type: ${type}`);
|
|
52297
|
+
return layer;
|
|
52298
|
+
}
|
|
52250
52299
|
|
|
52251
52300
|
function domainFromAttribute(attribute, scaleType) {
|
|
52252
52301
|
if (scaleType === 'ordinal' || scaleType === 'point') {
|
|
@@ -53127,12 +53176,11 @@ function parseMap(json) {
|
|
|
53127
53176
|
visualChannels
|
|
53128
53177
|
}) => {
|
|
53129
53178
|
try {
|
|
53130
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(type in _layer_map__WEBPACK_IMPORTED_MODULE_1__["LAYER_MAP"], `Unsupported layer type: ${type}`);
|
|
53131
53179
|
const {
|
|
53132
53180
|
Layer,
|
|
53133
53181
|
propMap,
|
|
53134
53182
|
defaultProps
|
|
53135
|
-
} = _layer_map__WEBPACK_IMPORTED_MODULE_1__["
|
|
53183
|
+
} = Object(_layer_map__WEBPACK_IMPORTED_MODULE_1__["getLayer"])(type, config);
|
|
53136
53184
|
const {
|
|
53137
53185
|
dataId
|
|
53138
53186
|
} = config;
|
|
@@ -5,12 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.getLayer = getLayer;
|
|
8
9
|
exports.getColorAccessor = getColorAccessor;
|
|
9
10
|
exports.getSizeAccessor = getSizeAccessor;
|
|
10
11
|
exports.getTextAccessor = getTextAccessor;
|
|
11
12
|
exports.getTextPixelOffsetAccessor = getTextPixelOffsetAccessor;
|
|
12
13
|
exports._domainFromValues = domainFromValues;
|
|
13
|
-
exports.LAYER_MAP = void 0;
|
|
14
14
|
|
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
16
|
|
|
@@ -28,6 +28,8 @@ var _d3Format = require("d3-format");
|
|
|
28
28
|
|
|
29
29
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
30
30
|
|
|
31
|
+
var _core = require("@deck.gl/core");
|
|
32
|
+
|
|
31
33
|
var _geoLayers = require("@deck.gl/geo-layers");
|
|
32
34
|
|
|
33
35
|
var _layers = require("@deck.gl/layers");
|
|
@@ -82,48 +84,56 @@ function mergePropMaps(a, b) {
|
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
87
|
+
function getLayer(type, config) {
|
|
88
|
+
var _config$columns;
|
|
89
|
+
|
|
90
|
+
var hexagonId = (_config$columns = config.columns) === null || _config$columns === void 0 ? void 0 : _config$columns.hex_id;
|
|
91
|
+
var layer = {
|
|
92
|
+
point: {
|
|
93
|
+
Layer: _layers.GeoJsonLayer,
|
|
94
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
95
|
+
visConfig: {
|
|
96
|
+
outline: 'stroked'
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
defaultProps: defaultProps
|
|
100
|
+
},
|
|
101
|
+
geojson: {
|
|
102
|
+
Layer: _layers.GeoJsonLayer,
|
|
103
|
+
propMap: sharedPropMap,
|
|
104
|
+
defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
105
|
+
lineWidthScale: 2
|
|
106
|
+
})
|
|
107
|
+
},
|
|
108
|
+
hexagonId: {
|
|
109
|
+
Layer: _geoLayers.H3HexagonLayer,
|
|
110
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
111
|
+
visConfig: {
|
|
112
|
+
coverage: 'coverage',
|
|
113
|
+
elevationScale: 'elevationScale'
|
|
114
|
+
}
|
|
115
|
+
}),
|
|
116
|
+
defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
117
|
+
getHexagon: function getHexagon(d) {
|
|
118
|
+
return d[hexagonId];
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
},
|
|
122
|
+
mvt: {
|
|
123
|
+
Layer: _geoLayers.MVTLayer,
|
|
124
|
+
propMap: sharedPropMap,
|
|
125
|
+
defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
126
|
+
pointRadiusScale: 0.3,
|
|
127
|
+
lineWidthScale: 2,
|
|
128
|
+
uniqueIdProperty: 'geoid'
|
|
129
|
+
})
|
|
130
|
+
}
|
|
131
|
+
}[type];
|
|
132
|
+
|
|
133
|
+
_core.log.assert(layer, "Unsupported layer type: ".concat(type));
|
|
134
|
+
|
|
135
|
+
return layer;
|
|
136
|
+
}
|
|
127
137
|
|
|
128
138
|
function domainFromAttribute(attribute, scaleType) {
|
|
129
139
|
if (scaleType === 'ordinal' || scaleType === 'point') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/layer-map.js"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","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","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","hexagonId","H3HexagonLayer","coverage","elevationScale","getHexagon","d","h3","mvt","MVTLayer","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","data","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","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 label: 'cartoLabel',\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: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid'\n }\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 } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\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] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({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 ? Math.round(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\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/layer-map.js"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","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","getLayer","type","config","hexagonId","columns","hex_id","layer","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","H3HexagonLayer","coverage","elevationScale","getHexagon","d","mvt","MVTLayer","uniqueIdProperty","assert","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","data","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","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 {log} from '@deck.gl/core';\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 label: 'cartoLabel',\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 function getLayer(type, config) {\n const hexagonId = config.columns?.hex_id;\n\n const layer = {\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[hexagonId]}\n },\n mvt: {\n Layer: MVTLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid'\n }\n }\n }[type];\n\n log.assert(layer, `Unsupported layer type: ${type}`);\n\n return layer;\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 } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\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] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({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 ? Math.round(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\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
package/dist/es5/api/parseMap.js
CHANGED
|
@@ -54,12 +54,11 @@ function parseMap(json) {
|
|
|
54
54
|
visualChannels = _ref.visualChannels;
|
|
55
55
|
|
|
56
56
|
try {
|
|
57
|
-
|
|
57
|
+
var _getLayer = (0, _layerMap.getLayer)(type, config),
|
|
58
|
+
Layer = _getLayer.Layer,
|
|
59
|
+
propMap = _getLayer.propMap,
|
|
60
|
+
defaultProps = _getLayer.defaultProps;
|
|
58
61
|
|
|
59
|
-
var _LAYER_MAP$type = _layerMap.LAYER_MAP[type],
|
|
60
|
-
Layer = _LAYER_MAP$type.Layer,
|
|
61
|
-
propMap = _LAYER_MAP$type.propMap,
|
|
62
|
-
defaultProps = _LAYER_MAP$type.defaultProps;
|
|
63
62
|
var dataId = config.dataId;
|
|
64
63
|
var dataset = datasets.find(function (d) {
|
|
65
64
|
return d.id === dataId;
|
|
@@ -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","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 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 try {\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 } 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"}
|
|
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"}
|
|
@@ -3,6 +3,7 @@ import { rgb } from 'd3-color';
|
|
|
3
3
|
import { scaleLinear, scaleOrdinal, scaleLog, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt } from 'd3-scale';
|
|
4
4
|
import { format as d3Format } from 'd3-format';
|
|
5
5
|
import moment from 'moment-timezone';
|
|
6
|
+
import { log } from '@deck.gl/core';
|
|
6
7
|
import { H3HexagonLayer, MVTLayer } from '@deck.gl/geo-layers';
|
|
7
8
|
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
8
9
|
const SCALE_FUNCS = {
|
|
@@ -54,45 +55,52 @@ function mergePropMaps(a, b) {
|
|
|
54
55
|
};
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
export
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
export function getLayer(type, config) {
|
|
59
|
+
var _config$columns;
|
|
60
|
+
|
|
61
|
+
const hexagonId = (_config$columns = config.columns) === null || _config$columns === void 0 ? void 0 : _config$columns.hex_id;
|
|
62
|
+
const layer = {
|
|
63
|
+
point: {
|
|
64
|
+
Layer: GeoJsonLayer,
|
|
65
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
66
|
+
visConfig: {
|
|
67
|
+
outline: 'stroked'
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
defaultProps
|
|
71
|
+
},
|
|
72
|
+
geojson: {
|
|
73
|
+
Layer: GeoJsonLayer,
|
|
74
|
+
propMap: sharedPropMap,
|
|
75
|
+
defaultProps: { ...defaultProps,
|
|
76
|
+
lineWidthScale: 2
|
|
63
77
|
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
},
|
|
79
|
+
hexagonId: {
|
|
80
|
+
Layer: H3HexagonLayer,
|
|
81
|
+
propMap: mergePropMaps(sharedPropMap, {
|
|
82
|
+
visConfig: {
|
|
83
|
+
coverage: 'coverage',
|
|
84
|
+
elevationScale: 'elevationScale'
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
defaultProps: { ...defaultProps,
|
|
88
|
+
getHexagon: d => d[hexagonId]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
mvt: {
|
|
92
|
+
Layer: MVTLayer,
|
|
93
|
+
propMap: sharedPropMap,
|
|
94
|
+
defaultProps: { ...defaultProps,
|
|
95
|
+
pointRadiusScale: 0.3,
|
|
96
|
+
lineWidthScale: 2,
|
|
97
|
+
uniqueIdProperty: 'geoid'
|
|
80
98
|
}
|
|
81
|
-
}),
|
|
82
|
-
defaultProps: { ...defaultProps,
|
|
83
|
-
getHexagon: d => d.h3
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
mvt: {
|
|
87
|
-
Layer: MVTLayer,
|
|
88
|
-
propMap: sharedPropMap,
|
|
89
|
-
defaultProps: { ...defaultProps,
|
|
90
|
-
pointRadiusScale: 0.3,
|
|
91
|
-
lineWidthScale: 2,
|
|
92
|
-
uniqueIdProperty: 'geoid'
|
|
93
99
|
}
|
|
94
|
-
}
|
|
95
|
-
|
|
100
|
+
}[type];
|
|
101
|
+
log.assert(layer, "Unsupported layer type: ".concat(type));
|
|
102
|
+
return layer;
|
|
103
|
+
}
|
|
96
104
|
|
|
97
105
|
function domainFromAttribute(attribute, scaleType) {
|
|
98
106
|
if (scaleType === 'ordinal' || scaleType === 'point') {
|