@deck.gl/carto 8.8.0-alpha.2 → 8.8.0-alpha.3
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 +1479 -1085
- package/dist/es5/api/layer-map.js +17 -5
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +1 -0
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/parseMap.js +14 -3
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/index.js +16 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +13 -0
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +96 -0
- package/dist/es5/layers/h3-tile-layer.js.map +1 -0
- package/dist/es5/layers/h3-tileset-2d.js +165 -0
- package/dist/es5/layers/h3-tileset-2d.js.map +1 -0
- package/dist/es5/layers/quadkey-tile-layer.js +97 -0
- package/dist/es5/layers/quadkey-tile-layer.js.map +1 -0
- package/dist/es5/layers/quadkey-tileset-2d.js +89 -0
- package/dist/es5/layers/quadkey-tileset-2d.js.map +1 -0
- package/dist/esm/api/layer-map.js +12 -4
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +1 -0
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/parseMap.js +15 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +12 -1
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +61 -0
- package/dist/esm/layers/h3-tile-layer.js.map +1 -0
- package/dist/esm/layers/h3-tileset-2d.js +103 -0
- package/dist/esm/layers/h3-tileset-2d.js.map +1 -0
- package/dist/esm/layers/quadkey-tile-layer.js +61 -0
- package/dist/esm/layers/quadkey-tile-layer.js.map +1 -0
- package/dist/esm/layers/quadkey-tileset-2d.js +48 -0
- package/dist/esm/layers/quadkey-tileset-2d.js.map +1 -0
- package/dist.min.js +14 -14
- package/package.json +2 -2
- package/src/api/layer-map.ts +14 -4
- package/src/api/maps-api-common.ts +1 -0
- package/src/api/parseMap.ts +20 -5
- package/src/index.ts +2 -0
- package/src/layers/carto-layer.ts +9 -1
- package/src/layers/h3-tile-layer.js +44 -0
- package/src/layers/h3-tileset-2d.js +82 -0
- package/src/layers/quadkey-tile-layer.js +42 -0
- package/src/layers/quadkey-tileset-2d.js +36 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getHexagonsInBoundingBox = getHexagonsInBoundingBox;
|
|
9
|
+
exports.tileToBoundingBox = tileToBoundingBox;
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
25
|
+
|
|
26
|
+
var _geoLayers = require("@deck.gl/geo-layers");
|
|
27
|
+
|
|
28
|
+
var _h3Js = require("h3-js");
|
|
29
|
+
|
|
30
|
+
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); }; }
|
|
31
|
+
|
|
32
|
+
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; } }
|
|
33
|
+
|
|
34
|
+
function getHexagonsInBoundingBox(_ref, resolution) {
|
|
35
|
+
var west = _ref.west,
|
|
36
|
+
north = _ref.north,
|
|
37
|
+
east = _ref.east,
|
|
38
|
+
south = _ref.south;
|
|
39
|
+
|
|
40
|
+
if (resolution === 0) {
|
|
41
|
+
return (0, _h3Js.getRes0Indexes)();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (east - west > 180) {
|
|
45
|
+
return getHexagonsInBoundingBox({
|
|
46
|
+
west: west,
|
|
47
|
+
north: north,
|
|
48
|
+
east: 0,
|
|
49
|
+
south: south
|
|
50
|
+
}, resolution).concat(getHexagonsInBoundingBox({
|
|
51
|
+
west: 0,
|
|
52
|
+
north: north,
|
|
53
|
+
east: east,
|
|
54
|
+
south: south
|
|
55
|
+
}, resolution));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var oversample = 1;
|
|
59
|
+
var h3Indices = (0, _h3Js.polyfill)([[[west, north], [west, south], [east, south], [east, north], [west, north]]], resolution + oversample, true);
|
|
60
|
+
return oversample ? (0, _toConsumableArray2.default)(new Set(h3Indices.map(function (i) {
|
|
61
|
+
return (0, _h3Js.h3ToParent)(i, resolution);
|
|
62
|
+
}))) : h3Indices;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function tileToBoundingBox(index) {
|
|
66
|
+
var coordinates = (0, _h3Js.h3ToGeoBoundary)(index);
|
|
67
|
+
var latitudes = coordinates.map(function (c) {
|
|
68
|
+
return c[0];
|
|
69
|
+
});
|
|
70
|
+
var longitudes = coordinates.map(function (c) {
|
|
71
|
+
return c[1];
|
|
72
|
+
});
|
|
73
|
+
var west = Math.min.apply(Math, (0, _toConsumableArray2.default)(longitudes));
|
|
74
|
+
var south = Math.min.apply(Math, (0, _toConsumableArray2.default)(latitudes));
|
|
75
|
+
var east = Math.max.apply(Math, (0, _toConsumableArray2.default)(longitudes));
|
|
76
|
+
var north = Math.max.apply(Math, (0, _toConsumableArray2.default)(latitudes));
|
|
77
|
+
return {
|
|
78
|
+
west: west,
|
|
79
|
+
south: south,
|
|
80
|
+
east: east,
|
|
81
|
+
north: north
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var H3Tileset2D = function (_Tileset2D) {
|
|
86
|
+
(0, _inherits2.default)(H3Tileset2D, _Tileset2D);
|
|
87
|
+
|
|
88
|
+
var _super = _createSuper(H3Tileset2D);
|
|
89
|
+
|
|
90
|
+
function H3Tileset2D() {
|
|
91
|
+
(0, _classCallCheck2.default)(this, H3Tileset2D);
|
|
92
|
+
return _super.apply(this, arguments);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
(0, _createClass2.default)(H3Tileset2D, [{
|
|
96
|
+
key: "getTileIndices",
|
|
97
|
+
value: function getTileIndices(_ref2) {
|
|
98
|
+
var viewport = _ref2.viewport,
|
|
99
|
+
minZoom = _ref2.minZoom,
|
|
100
|
+
maxZoom = _ref2.maxZoom;
|
|
101
|
+
|
|
102
|
+
var _viewport$getBounds = viewport.getBounds(),
|
|
103
|
+
_viewport$getBounds2 = (0, _slicedToArray2.default)(_viewport$getBounds, 4),
|
|
104
|
+
east = _viewport$getBounds2[0],
|
|
105
|
+
south = _viewport$getBounds2[1],
|
|
106
|
+
west = _viewport$getBounds2[2],
|
|
107
|
+
north = _viewport$getBounds2[3];
|
|
108
|
+
|
|
109
|
+
var z = viewport.zoom;
|
|
110
|
+
|
|
111
|
+
if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
|
|
112
|
+
z = minZoom;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
|
|
116
|
+
z = maxZoom;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
var resolution = Math.max(0, Math.floor(2 * z / 3) - 2);
|
|
120
|
+
return getHexagonsInBoundingBox({
|
|
121
|
+
west: west,
|
|
122
|
+
north: north,
|
|
123
|
+
east: east,
|
|
124
|
+
south: south
|
|
125
|
+
}, resolution).map(function (i) {
|
|
126
|
+
return {
|
|
127
|
+
i: i
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}, {
|
|
132
|
+
key: "getTileId",
|
|
133
|
+
value: function getTileId(_ref3) {
|
|
134
|
+
var i = _ref3.i;
|
|
135
|
+
return i;
|
|
136
|
+
}
|
|
137
|
+
}, {
|
|
138
|
+
key: "getTileMetadata",
|
|
139
|
+
value: function getTileMetadata(_ref4) {
|
|
140
|
+
var i = _ref4.i;
|
|
141
|
+
return {
|
|
142
|
+
bbox: tileToBoundingBox(i)
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}, {
|
|
146
|
+
key: "getTileZoom",
|
|
147
|
+
value: function getTileZoom(_ref5) {
|
|
148
|
+
var i = _ref5.i;
|
|
149
|
+
return (0, _h3Js.h3GetResolution)(i);
|
|
150
|
+
}
|
|
151
|
+
}, {
|
|
152
|
+
key: "getParentIndex",
|
|
153
|
+
value: function getParentIndex(index) {
|
|
154
|
+
var resolution = (0, _h3Js.h3GetResolution)(index.i);
|
|
155
|
+
var i = (0, _h3Js.h3ToParent)(index.i, resolution - 1);
|
|
156
|
+
return {
|
|
157
|
+
i: i
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}]);
|
|
161
|
+
return H3Tileset2D;
|
|
162
|
+
}(_geoLayers._Tileset2D);
|
|
163
|
+
|
|
164
|
+
exports.default = H3Tileset2D;
|
|
165
|
+
//# sourceMappingURL=h3-tileset-2d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/h3-tileset-2d.js"],"names":["getHexagonsInBoundingBox","resolution","west","north","east","south","concat","oversample","h3Indices","Set","map","i","tileToBoundingBox","index","coordinates","latitudes","c","longitudes","Math","min","max","H3Tileset2D","viewport","minZoom","maxZoom","getBounds","z","zoom","Number","isFinite","floor","bbox","Tileset2D"],"mappings":"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","sourcesContent":["import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';\nimport {polyfill, getRes0Indexes, h3GetResolution, h3ToGeoBoundary, h3ToParent} from 'h3-js';\n\nexport function getHexagonsInBoundingBox({west, north, east, south}, resolution) {\n if (resolution === 0) {\n return getRes0Indexes();\n }\n if (east - west > 180) {\n // This is a known issue in h3-js: polyfill does not work correctly\n // when longitude span is larger than 180 degrees.\n return getHexagonsInBoundingBox({west, north, east: 0, south}, resolution).concat(\n getHexagonsInBoundingBox({west: 0, north, east, south}, resolution)\n );\n }\n\n // `polyfill()` fills based on hexagon center, which means tiles vanish\n // prematurely. Get more accurate coverage by oversampling\n const oversample = 1;\n const h3Indices = polyfill(\n [\n [\n [west, north],\n [west, south],\n [east, south],\n [east, north],\n [west, north]\n ]\n ],\n resolution + oversample,\n true\n );\n\n return oversample ? [...new Set(h3Indices.map(i => h3ToParent(i, resolution)))] : h3Indices;\n}\n\nexport function tileToBoundingBox(index) {\n const coordinates = h3ToGeoBoundary(index);\n const latitudes = coordinates.map(c => c[0]);\n const longitudes = coordinates.map(c => c[1]);\n const west = Math.min(...longitudes);\n const south = Math.min(...latitudes);\n const east = Math.max(...longitudes);\n const north = Math.max(...latitudes);\n return {west, south, east, north};\n}\n\nexport default class H3Tileset2D extends Tileset2D {\n getTileIndices({viewport, minZoom, maxZoom}) {\n const [east, south, west, north] = viewport.getBounds();\n\n // TODO ignores extent\n let z = viewport.zoom;\n if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {\n z = minZoom;\n }\n if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n }\n\n // Heuristic to get h3 resolution\n const resolution = Math.max(0, Math.floor((2 * z) / 3) - 2);\n return getHexagonsInBoundingBox({west, north, east, south}, resolution).map(i => ({i}));\n }\n\n getTileId({i}) {\n return i;\n }\n\n getTileMetadata({i}) {\n return {bbox: tileToBoundingBox(i)};\n }\n\n getTileZoom({i}) {\n return h3GetResolution(i);\n }\n\n getParentIndex(index) {\n const resolution = h3GetResolution(index.i);\n const i = h3ToParent(index.i, resolution - 1);\n return {i};\n }\n}\n"],"file":"h3-tileset-2d.js"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _core = require("@deck.gl/core");
|
|
21
|
+
|
|
22
|
+
var _geoLayers = require("@deck.gl/geo-layers");
|
|
23
|
+
|
|
24
|
+
var _quadkeyTileset2d = _interopRequireDefault(require("./quadkey-tileset-2d"));
|
|
25
|
+
|
|
26
|
+
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); }; }
|
|
27
|
+
|
|
28
|
+
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; } }
|
|
29
|
+
|
|
30
|
+
var renderSubLayers = function renderSubLayers(props) {
|
|
31
|
+
var data = props.data;
|
|
32
|
+
if (!data || !data.length) return null;
|
|
33
|
+
return new _geoLayers.QuadkeyLayer(props);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var QuadkeyTileLayer = function (_CompositeLayer) {
|
|
37
|
+
(0, _inherits2.default)(QuadkeyTileLayer, _CompositeLayer);
|
|
38
|
+
|
|
39
|
+
var _super = _createSuper(QuadkeyTileLayer);
|
|
40
|
+
|
|
41
|
+
function QuadkeyTileLayer() {
|
|
42
|
+
(0, _classCallCheck2.default)(this, QuadkeyTileLayer);
|
|
43
|
+
return _super.apply(this, arguments);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(0, _createClass2.default)(QuadkeyTileLayer, [{
|
|
47
|
+
key: "initializeState",
|
|
48
|
+
value: function initializeState() {
|
|
49
|
+
this.setState({
|
|
50
|
+
data: null,
|
|
51
|
+
tileJSON: null
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
key: "updateState",
|
|
56
|
+
value: function updateState(_ref) {
|
|
57
|
+
var props = _ref.props,
|
|
58
|
+
oldProps = _ref.oldProps,
|
|
59
|
+
context = _ref.context,
|
|
60
|
+
changeFlags = _ref.changeFlags;
|
|
61
|
+
|
|
62
|
+
if (changeFlags.dataChanged) {
|
|
63
|
+
var data = this.props.data;
|
|
64
|
+
var tileJSON = data;
|
|
65
|
+
data = tileJSON.tiles;
|
|
66
|
+
this.setState({
|
|
67
|
+
data: data,
|
|
68
|
+
tileJSON: tileJSON
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}, {
|
|
73
|
+
key: "renderLayers",
|
|
74
|
+
value: function renderLayers() {
|
|
75
|
+
var _this$state = this.state,
|
|
76
|
+
data = _this$state.data,
|
|
77
|
+
tileJSON = _this$state.tileJSON;
|
|
78
|
+
var maxresolution = tileJSON.maxresolution;
|
|
79
|
+
var maxZoom = maxresolution - this.props.aggregationResLevel;
|
|
80
|
+
return [new _geoLayers.TileLayer(this.props, {
|
|
81
|
+
id: 'quadkey-tile-layer',
|
|
82
|
+
data: data,
|
|
83
|
+
getQuadkey: function getQuadkey(d) {
|
|
84
|
+
return d.id;
|
|
85
|
+
},
|
|
86
|
+
TilesetClass: _quadkeyTileset2d.default,
|
|
87
|
+
renderSubLayers: renderSubLayers,
|
|
88
|
+
maxZoom: maxZoom
|
|
89
|
+
})];
|
|
90
|
+
}
|
|
91
|
+
}]);
|
|
92
|
+
return QuadkeyTileLayer;
|
|
93
|
+
}(_core.CompositeLayer);
|
|
94
|
+
|
|
95
|
+
exports.default = QuadkeyTileLayer;
|
|
96
|
+
QuadkeyTileLayer.layerName = 'QuadkeyTileLayer';
|
|
97
|
+
//# sourceMappingURL=quadkey-tile-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadkey-tile-layer.js"],"names":["renderSubLayers","props","data","length","QuadkeyLayer","QuadkeyTileLayer","setState","tileJSON","oldProps","context","changeFlags","dataChanged","tiles","state","maxresolution","maxZoom","aggregationResLevel","TileLayer","id","getQuadkey","d","TilesetClass","QuadkeyTileset2D","CompositeLayer","layerName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAC/B,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,SAAO,IAAIC,uBAAJ,CAAiBH,KAAjB,CAAP;AACD,CAJD;;IAMqBI,gB;;;;;;;;;;;;WACnB,2BAAkB;AAChB,WAAKC,QAAL,CAAc;AAACJ,QAAAA,IAAI,EAAE,IAAP;AAAaK,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAqD;AAAA,UAAxCN,KAAwC,QAAxCA,KAAwC;AAAA,UAAjCO,QAAiC,QAAjCA,QAAiC;AAAA,UAAvBC,OAAuB,QAAvBA,OAAuB;AAAA,UAAdC,WAAc,QAAdA,WAAc;;AACnD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKT,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMK,QAAQ,GAAGL,IAAjB;AACAA,QAAAA,IAAI,GAAGK,QAAQ,CAACK,KAAhB;AACA,aAAKN,QAAL,CAAc;AAACJ,UAAAA,IAAI,EAAJA,IAAD;AAAOK,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAAe;AACb,wBAAyB,KAAKM,KAA9B;AAAA,UAAOX,IAAP,eAAOA,IAAP;AAAA,UAAaK,QAAb,eAAaA,QAAb;AACA,UAAOO,aAAP,GAAwBP,QAAxB,CAAOO,aAAP;AACA,UAAMC,OAAO,GAAGD,aAAa,GAAG,KAAKb,KAAL,CAAWe,mBAA3C;AACA,aAAO,CACL,IAAIC,oBAAJ,CAAc,KAAKhB,KAAnB,EAA0B;AACxBiB,QAAAA,EAAE,EAAE,oBADoB;AAExBhB,QAAAA,IAAI,EAAJA,IAFwB;AAGxBiB,QAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,iBAAIA,CAAC,CAACF,EAAN;AAAA,SAHW;AAIxBG,QAAAA,YAAY,EAAEC,yBAJU;AAKxBtB,QAAAA,eAAe,EAAfA,eALwB;AAMxBe,QAAAA,OAAO,EAAPA;AANwB,OAA1B,CADK,CAAP;AAUD;;;EA5B2CQ,oB;;;AA+B9ClB,gBAAgB,CAACmB,SAAjB,GAA6B,kBAA7B","sourcesContent":["import {CompositeLayer} from '@deck.gl/core';\nimport {QuadkeyLayer, TileLayer} from '@deck.gl/geo-layers';\nimport QuadkeyTileset2D from './quadkey-tileset-2d';\n\nconst renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n return new QuadkeyLayer(props);\n};\n\nexport default class QuadkeyTileLayer extends CompositeLayer {\n initializeState() {\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({props, oldProps, context, changeFlags}) {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = tileJSON.tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers() {\n const {data, tileJSON} = this.state;\n const {maxresolution} = tileJSON;\n const maxZoom = maxresolution - this.props.aggregationResLevel;\n return [\n new TileLayer(this.props, {\n id: 'quadkey-tile-layer',\n data,\n getQuadkey: d => d.id,\n TilesetClass: QuadkeyTileset2D,\n renderSubLayers,\n maxZoom\n })\n ];\n }\n}\n\nQuadkeyTileLayer.layerName = 'QuadkeyTileLayer';\n"],"file":"quadkey-tile-layer.js"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _geoLayers = require("@deck.gl/geo-layers");
|
|
23
|
+
|
|
24
|
+
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); }; }
|
|
25
|
+
|
|
26
|
+
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; } }
|
|
27
|
+
|
|
28
|
+
function tileToQuadkey(tile) {
|
|
29
|
+
var index = '';
|
|
30
|
+
|
|
31
|
+
for (var z = tile.z; z > 0; z--) {
|
|
32
|
+
var b = 0;
|
|
33
|
+
var mask = 1 << z - 1;
|
|
34
|
+
if ((tile.x & mask) !== 0) b++;
|
|
35
|
+
if ((tile.y & mask) !== 0) b += 2;
|
|
36
|
+
index += b.toString();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
i: index
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var QuadkeyTileset2D = function (_Tileset2D) {
|
|
45
|
+
(0, _inherits2.default)(QuadkeyTileset2D, _Tileset2D);
|
|
46
|
+
|
|
47
|
+
var _super = _createSuper(QuadkeyTileset2D);
|
|
48
|
+
|
|
49
|
+
function QuadkeyTileset2D() {
|
|
50
|
+
(0, _classCallCheck2.default)(this, QuadkeyTileset2D);
|
|
51
|
+
return _super.apply(this, arguments);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
(0, _createClass2.default)(QuadkeyTileset2D, [{
|
|
55
|
+
key: "getTileIndices",
|
|
56
|
+
value: function getTileIndices(opts) {
|
|
57
|
+
return (0, _get2.default)((0, _getPrototypeOf2.default)(QuadkeyTileset2D.prototype), "getTileIndices", this).call(this, opts).map(tileToQuadkey);
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "getTileId",
|
|
61
|
+
value: function getTileId(_ref) {
|
|
62
|
+
var i = _ref.i;
|
|
63
|
+
return i;
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: "getTileMetadata",
|
|
67
|
+
value: function getTileMetadata() {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
key: "getTileZoom",
|
|
72
|
+
value: function getTileZoom(_ref2) {
|
|
73
|
+
var i = _ref2.i;
|
|
74
|
+
return i.length;
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "getParentIndex",
|
|
78
|
+
value: function getParentIndex(index) {
|
|
79
|
+
var i = index.i.slice(0, -1);
|
|
80
|
+
return {
|
|
81
|
+
i: i
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}]);
|
|
85
|
+
return QuadkeyTileset2D;
|
|
86
|
+
}(_geoLayers._Tileset2D);
|
|
87
|
+
|
|
88
|
+
exports.default = QuadkeyTileset2D;
|
|
89
|
+
//# sourceMappingURL=quadkey-tileset-2d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadkey-tileset-2d.js"],"names":["tileToQuadkey","tile","index","z","b","mask","x","y","toString","i","QuadkeyTileset2D","opts","map","length","slice","Tileset2D"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEA,SAASA,aAAT,CAAuBC,IAAvB,EAA6B;AAC3B,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAGF,IAAI,CAACE,CAAlB,EAAqBA,CAAC,GAAG,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;AAC/B,QAAIC,CAAC,GAAG,CAAR;AACA,QAAMC,IAAI,GAAG,KAAMF,CAAC,GAAG,CAAvB;AACA,QAAI,CAACF,IAAI,CAACK,CAAL,GAASD,IAAV,MAAoB,CAAxB,EAA2BD,CAAC;AAC5B,QAAI,CAACH,IAAI,CAACM,CAAL,GAASF,IAAV,MAAoB,CAAxB,EAA2BD,CAAC,IAAI,CAAL;AAC3BF,IAAAA,KAAK,IAAIE,CAAC,CAACI,QAAF,EAAT;AACD;;AACD,SAAO;AAACC,IAAAA,CAAC,EAAEP;AAAJ,GAAP;AACD;;IAEoBQ,gB;;;;;;;;;;;;WACnB,wBAAeC,IAAf,EAAqB;AACnB,aAAO,iHAAqBA,IAArB,EAA2BC,GAA3B,CAA+BZ,aAA/B,CAAP;AACD;;;WAED,yBAAe;AAAA,UAAJS,CAAI,QAAJA,CAAI;AACb,aAAOA,CAAP;AACD;;;WAED,2BAAkB;AAChB,aAAO,EAAP;AACD;;;WAED,4BAAiB;AAAA,UAAJA,CAAI,SAAJA,CAAI;AACf,aAAOA,CAAC,CAACI,MAAT;AACD;;;WAED,wBAAeX,KAAf,EAAsB;AACpB,UAAMO,CAAC,GAAGP,KAAK,CAACO,CAAN,CAAQK,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;AACA,aAAO;AAACL,QAAAA,CAAC,EAADA;AAAD,OAAP;AACD;;;EApB2CM,qB","sourcesContent":["import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';\n\nfunction tileToQuadkey(tile) {\n let index = '';\n for (let z = tile.z; z > 0; z--) {\n let b = 0;\n const mask = 1 << (z - 1);\n if ((tile.x & mask) !== 0) b++;\n if ((tile.y & mask) !== 0) b += 2;\n index += b.toString();\n }\n return {i: index};\n}\n\nexport default class QuadkeyTileset2D extends Tileset2D {\n getTileIndices(opts) {\n return super.getTileIndices(opts).map(tileToQuadkey);\n }\n\n getTileId({i}) {\n return i;\n }\n\n getTileMetadata() {\n return {};\n }\n\n getTileZoom({i}) {\n return i.length;\n }\n\n getParentIndex(index) {\n const i = index.i.slice(0, -1);\n return {i};\n }\n}\n"],"file":"quadkey-tileset-2d.js"}
|
|
@@ -26,6 +26,11 @@ export const AGGREGATION = {
|
|
|
26
26
|
minimum: 'MIN',
|
|
27
27
|
sum: 'SUM'
|
|
28
28
|
};
|
|
29
|
+
export const OPACITY_MAP = {
|
|
30
|
+
getFillColor: 'opacity',
|
|
31
|
+
getLineColor: 'strokeOpacity',
|
|
32
|
+
getTextColor: 'opacity'
|
|
33
|
+
};
|
|
29
34
|
const AGGREGATION_FUNC = {
|
|
30
35
|
'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,
|
|
31
36
|
median,
|
|
@@ -58,7 +63,6 @@ const sharedPropMap = {
|
|
|
58
63
|
enable3d: 'extruded',
|
|
59
64
|
elevationScale: 'elevationScale',
|
|
60
65
|
filled: 'filled',
|
|
61
|
-
opacity: 'opacity',
|
|
62
66
|
strokeColor: 'getLineColor',
|
|
63
67
|
stroked: 'stroked',
|
|
64
68
|
thickness: 'getLineWidth',
|
|
@@ -254,6 +258,9 @@ function normalizeAccessor(accessor, data) {
|
|
|
254
258
|
return accessor;
|
|
255
259
|
}
|
|
256
260
|
|
|
261
|
+
export function opacityToAlpha(opacity) {
|
|
262
|
+
return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;
|
|
263
|
+
}
|
|
257
264
|
export function getColorValueAccessor({
|
|
258
265
|
name
|
|
259
266
|
}, colorAggregation, data) {
|
|
@@ -290,15 +297,16 @@ export function getColorAccessor({
|
|
|
290
297
|
scale.domain(domain);
|
|
291
298
|
scale.range(scaleColor);
|
|
292
299
|
scale.unknown(UNKNOWN_COLOR);
|
|
293
|
-
const alpha =
|
|
300
|
+
const alpha = opacityToAlpha(opacity);
|
|
294
301
|
|
|
295
302
|
const accessor = properties => {
|
|
303
|
+
const propertyValue = properties[name];
|
|
296
304
|
const {
|
|
297
305
|
r,
|
|
298
306
|
g,
|
|
299
307
|
b
|
|
300
|
-
} = rgb(scale(
|
|
301
|
-
return [r, g, b, alpha];
|
|
308
|
+
} = rgb(scale(propertyValue));
|
|
309
|
+
return [r, g, b, propertyValue === null ? 0 : alpha];
|
|
302
310
|
};
|
|
303
311
|
|
|
304
312
|
return normalizeAccessor(accessor, data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["deviation","extent","groupSort","median","variance","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","scaleThreshold","format","d3Format","moment","CPUGridLayer","HeatmapLayer","HexagonLayer","GeoJsonLayer","H3HexagonLayer","MVTLayer","CartoTileLayer","TILE_FORMATS","assert","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","custom","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","AGGREGATION_FUNC","values","accessor","v","length","mode","pop","stddev","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layer","Layer","propMap","outline","geojson","grid","worldUnitSize","cellSize","heatmap","hexagon","getHexagon","data","tiles","tileUrl","formatTiles","URL","searchParams","get","MVT","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","category","filter","undefined","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","getColorValueAccessor","aggregator","p","getColorAccessor","colorMap","scale","domain","scaleColor","forEach","value","push","slice","range","unknown","alpha","Math","round","pow","getSizeAccessor","FORMATS","date","s","utc","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset","_domainFromValues"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport {TILE_FORMATS} from './maps-api-common';\nimport {assert} from '../utils';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler -> 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 elevationScale: 'elevationScale',\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 aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a = {}, b = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config,\n dataset\n): {Layer: any; propMap: any; defaultProps: any} {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {visConfig: {outline: 'stroked'}}\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n }[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n layer.propMap = mergePropMaps(sharedPropMap, layer.propMap);\n layer.defaultProps = {...defaultProps, ...layer.defaultProps};\n return layer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n data: {\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return {\n Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : CartoTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE) {\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: SCALE_TYPE) {\n if (scaleType === 'ordinal') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\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 getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {colors, colorMap},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const {r, g, b} = rgb(scale(properties[name]));\n return [r, g, b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType: SCALE_TYPE, range: Iterable<Range>, data: any) {\n const scale = SCALE_FUNCS[scaleType as any]();\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: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, 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 => [signX * (r + padding), signY * (r + padding + sizeOffset)];\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.ts"],"names":["deviation","extent","groupSort","median","variance","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","scaleThreshold","format","d3Format","moment","CPUGridLayer","HeatmapLayer","HexagonLayer","GeoJsonLayer","H3HexagonLayer","MVTLayer","CartoTileLayer","TILE_FORMATS","assert","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","custom","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","v","length","mode","pop","stddev","hexToRGBA","c","r","g","b","opacity","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","elevationScale","filled","strokeColor","stroked","thickness","radius","wireframe","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layer","Layer","propMap","outline","geojson","grid","worldUnitSize","cellSize","heatmap","hexagon","getHexagon","data","tiles","tileUrl","formatTiles","URL","searchParams","get","MVT","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","category","filter","undefined","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","opacityToAlpha","Math","round","pow","getColorValueAccessor","aggregator","p","getColorAccessor","colorMap","scale","domain","scaleColor","forEach","value","push","slice","range","unknown","alpha","propertyValue","getSizeAccessor","FORMATS","date","s","utc","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset","_domainFromValues"],"mappings":"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","sourcesContent":["import {deviation, extent, groupSort, median, variance} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt,\n scaleThreshold\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\n\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport {TILE_FORMATS} from './maps-api-common';\nimport {assert} from '../utils';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler -> 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 elevationScale: 'elevationScale',\n filled: 'filled',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a = {}, b = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config,\n dataset\n): {Layer: any; propMap: any; defaultProps: any} {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {visConfig: {outline: 'stroked'}}\n },\n geojson: {\n Layer: GeoJsonLayer\n },\n grid: {\n Layer: CPUGridLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({cellSize: 1000 * x})}},\n defaultProps: {getPosition}\n },\n heatmap: {\n Layer: HeatmapLayer,\n propMap: {visConfig: {...aggregationVisConfig, radius: 'radiusPixels'}},\n defaultProps: {getPosition}\n },\n hexagon: {\n Layer: HexagonLayer,\n propMap: {visConfig: {...aggregationVisConfig, worldUnitSize: x => ({radius: 1000 * x})}},\n defaultProps: {getPosition}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: {visConfig: {coverage: 'coverage'}},\n defaultProps: {getHexagon: d => d[hexagonId], stroked: false}\n }\n }[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n layer.propMap = mergePropMaps(sharedPropMap, layer.propMap);\n layer.defaultProps = {...defaultProps, ...layer.defaultProps};\n return layer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n data: {\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return {\n Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : CartoTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE) {\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: SCALE_TYPE) {\n if (scaleType === 'ordinal') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\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 opacityToAlpha(opacity) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {colors, colorMap},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n let domain: (string | number)[] = [];\n let scaleColor: string[] = [];\n\n if (Array.isArray(colorMap)) {\n colorMap.forEach(([value, color]) => {\n domain.push(value);\n scaleColor.push(color);\n });\n } else {\n domain = calculateDomain(data, name, scaleType);\n scaleColor = colors;\n }\n\n if (scaleType === 'ordinal') {\n domain = domain.slice(0, scaleColor.length);\n }\n\n scale.domain(domain);\n scale.range(scaleColor);\n scale.unknown(UNKNOWN_COLOR);\n const alpha = opacityToAlpha(opacity);\n\n const accessor = properties => {\n const propertyValue = properties[name];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType: SCALE_TYPE, range: Iterable<Range>, data: any) {\n const scale = SCALE_FUNCS[scaleType as any]();\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: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, 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 => [signX * (r + padding), signY * (r + padding + sizeOffset)];\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","encodeParameter","name","value","encodeURIComponent"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,GAAG,QAAtC;AACP,OAAO,MAAMC,+BAA+B,GAAG,UAAxC;AAGP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;AAOP,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;AAMP,OAAO,MAAMC,eAA0B,GAAG,CAACJ,SAAS,CAACE,KAAX,CAAnC;AACP,OAAO,MAAMG,kBAA6B,GAAG,CAACL,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;AAGP,OAAO,MAAMI,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;AASP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;
|
|
1
|
+
{"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","COLUMNS_SUPPORT","GEO_COLUMN_SUPPORT","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","encodeParameter","name","value","encodeURIComponent"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,GAAG,QAAtC;AACP,OAAO,MAAMC,+BAA+B,GAAG,UAAxC;AAGP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;AAOP,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;AAMP,OAAO,MAAMC,eAA0B,GAAG,CAACJ,SAAS,CAACE,KAAX,CAAnC;AACP,OAAO,MAAMG,kBAA6B,GAAG,CAACL,SAAS,CAACC,KAAX,EAAkBD,SAAS,CAACE,KAA5B,CAAtC;AAGP,OAAO,MAAMI,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;AASP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BF,EAAAA,IAAI,EAAE,MAFoB;AAG1BH,EAAAA,OAAO,EAAE,SAHiB;AAI1BM,EAAAA,MAAM,EAAE;AAJkB,CAArB;AAQP,WAAYC,eAAZ;;WAAYA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,KAAAA,e;;AAiCZ,OAAO,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,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 type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\nexport const COLUMNS_SUPPORT: MapType[] = [MAP_TYPES.TABLE];\nexport const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n JSON: 'json',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
|
package/dist/esm/api/parseMap.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AGGREGATION, getLayer, getColorAccessor, getColorValueAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor } from './layer-map';
|
|
1
|
+
import { AGGREGATION, getLayer, getColorAccessor, getColorValueAccessor, getSizeAccessor, getTextAccessor, getTextPixelOffsetAccessor, OPACITY_MAP, opacityToAlpha } from './layer-map';
|
|
2
2
|
import { _flatten as flatten, log } from '@deck.gl/core';
|
|
3
3
|
import { assert } from '../utils';
|
|
4
4
|
export function parseMap(json) {
|
|
@@ -149,6 +149,16 @@ function createStyleProps(config, mapping) {
|
|
|
149
149
|
result.getLineColor = result.getFillColor;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
for (const colorAccessor in OPACITY_MAP) {
|
|
153
|
+
if (Array.isArray(result[colorAccessor])) {
|
|
154
|
+
const color = [...result[colorAccessor]];
|
|
155
|
+
const opacityKey = OPACITY_MAP[colorAccessor];
|
|
156
|
+
const opacity = config.visConfig[opacityKey];
|
|
157
|
+
color[3] = opacityToAlpha(opacity);
|
|
158
|
+
result[colorAccessor] = color;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
152
162
|
result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];
|
|
153
163
|
return result;
|
|
154
164
|
}
|
|
@@ -190,15 +200,16 @@ function createChannelProps(visualChannels, type, config, data) {
|
|
|
190
200
|
if (!AGGREGATION[colorAggregation]) {
|
|
191
201
|
result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);
|
|
192
202
|
} else {
|
|
193
|
-
result.getColorWeight = d => [colorField.name];
|
|
203
|
+
result.getColorWeight = d => d[colorField.name];
|
|
194
204
|
}
|
|
195
205
|
}
|
|
196
206
|
} else if (colorField) {
|
|
197
|
-
result.getFillColor = getColorAccessor(colorField, colorScale, visConfig.colorRange,
|
|
207
|
+
result.getFillColor = getColorAccessor(colorField, colorScale, visConfig.colorRange, visConfig.opacity, data);
|
|
198
208
|
}
|
|
199
209
|
|
|
200
210
|
if (strokeColorField) {
|
|
201
|
-
const
|
|
211
|
+
const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;
|
|
212
|
+
const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;
|
|
202
213
|
result.getLineColor = getColorAccessor(strokeColorField, strokeColorScale, visConfig.strokeColorRange, opacity, data);
|
|
203
214
|
}
|
|
204
215
|
|