@deck.gl/carto 8.9.0-alpha.2 → 8.9.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +1940 -1675
- package/dist/es5/api/layer-map.js +117 -18
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +10 -8
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +62 -7
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/api/types.js +2 -0
- package/dist/es5/api/types.js.map +1 -0
- package/dist/es5/index.js +0 -20
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +19 -2
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/carto-tile-layer.js +33 -107
- package/dist/es5/layers/carto-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +10 -1
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +10 -1
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +13 -11
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/quadbin-utils.js +6 -82
- package/dist/es5/layers/quadbin-utils.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +16 -32
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +30 -6
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +81 -0
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -0
- package/dist/es5/layers/schema/spatialjson-utils.js +4 -3
- package/dist/es5/layers/schema/spatialjson-utils.js.map +1 -1
- package/dist/es5/layers/schema/tile-loader-utils.js +34 -0
- package/dist/es5/layers/schema/tile-loader-utils.js.map +1 -0
- package/dist/es5/layers/spatial-index-tile-layer.js +40 -0
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/api/layer-map.js +89 -9
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +5 -2
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +67 -7
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/api/types.js +2 -0
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +18 -0
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/carto-tile-layer.js +31 -82
- package/dist/esm/layers/carto-tile-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +6 -1
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +6 -1
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tileset-2d.js +12 -10
- package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/esm/layers/quadbin-utils.js +2 -67
- package/dist/esm/layers/quadbin-utils.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +14 -29
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-tile.js +22 -6
- package/dist/esm/layers/schema/carto-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +40 -0
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -0
- package/dist/esm/layers/schema/spatialjson-utils.js +4 -3
- package/dist/esm/layers/schema/spatialjson-utils.js.map +1 -1
- package/dist/esm/layers/schema/tile-loader-utils.js +23 -0
- package/dist/esm/layers/schema/tile-loader-utils.js.map +1 -0
- package/dist/esm/layers/spatial-index-tile-layer.js +40 -1
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist.min.js +4 -4
- package/package.json +4 -3
- package/src/api/layer-map.ts +102 -17
- package/src/api/maps-v3-client.ts +5 -3
- package/src/api/parseMap.ts +91 -17
- package/src/api/types.ts +108 -0
- package/src/index.ts +0 -5
- package/src/layers/carto-layer.ts +9 -2
- package/src/layers/carto-tile-layer.ts +32 -82
- package/src/layers/h3-tile-layer.ts +7 -1
- package/src/layers/quadbin-layer.ts +1 -1
- package/src/layers/quadbin-tile-layer.ts +7 -1
- package/src/layers/quadbin-tileset-2d.ts +14 -12
- package/src/layers/quadbin-utils.ts +4 -85
- package/src/layers/schema/carto-spatial-tile-loader.ts +12 -29
- package/src/layers/schema/carto-tile.ts +31 -6
- package/src/layers/schema/carto-vector-tile-loader.ts +39 -0
- package/src/layers/schema/spatialjson-utils.ts +4 -4
- package/src/layers/schema/tile-loader-utils.ts +22 -0
- package/src/layers/spatial-index-tile-layer.ts +37 -1
- package/typed/api/layer-map.d.ts +14 -13
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts +1 -0
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/api/parseMap.d.ts +1 -0
- package/typed/api/parseMap.d.ts.map +1 -1
- package/typed/api/types.d.ts +87 -0
- package/typed/api/types.d.ts.map +1 -0
- package/typed/index.d.ts +0 -1
- package/typed/index.d.ts.map +1 -1
- package/typed/layers/carto-layer.d.ts.map +1 -1
- package/typed/layers/carto-tile-layer.d.ts +2 -0
- package/typed/layers/carto-tile-layer.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-layer.d.ts +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tileset-2d.d.ts +6 -5
- package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
- package/typed/layers/quadbin-utils.d.ts +2 -12
- package/typed/layers/quadbin-utils.d.ts.map +1 -1
- package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-tile.d.ts +4 -0
- package/typed/layers/schema/carto-tile.d.ts.map +1 -1
- package/typed/layers/schema/carto-vector-tile-loader.d.ts +4 -0
- package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -0
- package/typed/layers/schema/spatialjson-utils.d.ts +1 -1
- package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
- package/typed/layers/schema/tile-loader-utils.d.ts +5 -0
- package/typed/layers/schema/tile-loader-utils.d.ts.map +1 -0
- package/typed/layers/spatial-index-tile-layer.d.ts +2 -1
- package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/typed/api/index.js +0 -3
- package/typed/api/layer-map.js +0 -264
- package/typed/api/maps-api-common.js +0 -50
- package/typed/api/maps-client.js +0 -125
- package/typed/api/maps-v3-client.js +0 -304
- package/typed/api/parseMap.js +0 -178
- package/typed/basemap.js +0 -9
- package/typed/config.js +0 -35
- package/typed/index.js +0 -10
- package/typed/layers/carto-layer.js +0 -173
- package/typed/layers/carto-tile-layer.js +0 -105
- package/typed/layers/h3-tile-layer.js +0 -47
- package/typed/layers/h3-tileset-2d.js +0 -85
- package/typed/layers/quadkey-tile-layer.d.ts +0 -21
- package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
- package/typed/layers/quadkey-tile-layer.js +0 -42
- package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
- package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
- package/typed/layers/quadkey-tileset-2d.js +0 -36
- package/typed/layers/schema/carto-tile.js +0 -161
- package/typed/layers/spatial-index-tile-layer.js +0 -40
- package/typed/style/color-bins-style.js +0 -12
- package/typed/style/color-categories-style.js +0 -16
- package/typed/style/color-continuous-style.js +0 -12
- package/typed/style/palette.js +0 -62
- package/typed/style/utils.js +0 -15
- package/typed/utils.js +0 -4
|
@@ -0,0 +1,81 @@
|
|
|
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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _cartoTile = require("./carto-tile");
|
|
17
|
+
|
|
18
|
+
var _tileLoaderUtils = require("./tile-loader-utils");
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
|
+
|
|
24
|
+
var CartoVectorTileLoader = {
|
|
25
|
+
name: 'CARTO Vector Tile',
|
|
26
|
+
version: '1',
|
|
27
|
+
id: 'cartoVectorTile',
|
|
28
|
+
module: 'carto',
|
|
29
|
+
extensions: ['pbf'],
|
|
30
|
+
mimeTypes: ['application/vnd.carto-vector-tile'],
|
|
31
|
+
category: 'geometry',
|
|
32
|
+
worker: false,
|
|
33
|
+
parse: function () {
|
|
34
|
+
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
35
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
36
|
+
while (1) {
|
|
37
|
+
switch (_context.prev = _context.next) {
|
|
38
|
+
case 0:
|
|
39
|
+
return _context.abrupt("return", parseCartoVectorTile(arrayBuffer, options));
|
|
40
|
+
|
|
41
|
+
case 1:
|
|
42
|
+
case "end":
|
|
43
|
+
return _context.stop();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}, _callee);
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
function parse(_x, _x2) {
|
|
50
|
+
return _parse.apply(this, arguments);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return parse;
|
|
54
|
+
}(),
|
|
55
|
+
parseSync: parseCartoVectorTile,
|
|
56
|
+
options: {}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
function parseCartoVectorTile(arrayBuffer, options) {
|
|
60
|
+
if (!arrayBuffer) return null;
|
|
61
|
+
var tile = (0, _tileLoaderUtils.parsePbf)(arrayBuffer, _cartoTile.TileReader);
|
|
62
|
+
var points = tile.points,
|
|
63
|
+
lines = tile.lines,
|
|
64
|
+
polygons = tile.polygons;
|
|
65
|
+
var data = {
|
|
66
|
+
points: _objectSpread(_objectSpread({}, points), {}, {
|
|
67
|
+
properties: (0, _tileLoaderUtils.unpackProperties)(points.properties)
|
|
68
|
+
}),
|
|
69
|
+
lines: _objectSpread(_objectSpread({}, lines), {}, {
|
|
70
|
+
properties: (0, _tileLoaderUtils.unpackProperties)(lines.properties)
|
|
71
|
+
}),
|
|
72
|
+
polygons: _objectSpread(_objectSpread({}, polygons), {}, {
|
|
73
|
+
properties: (0, _tileLoaderUtils.unpackProperties)(polygons.properties)
|
|
74
|
+
})
|
|
75
|
+
};
|
|
76
|
+
return data;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
var _default = CartoVectorTileLoader;
|
|
80
|
+
exports.default = _default;
|
|
81
|
+
//# sourceMappingURL=carto-vector-tile-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile","TileReader","points","lines","polygons","data","properties"],"mappings":";;;;;;;;;;;;;;;AAGA;;AACA;;;;;;AAEA,IAAMA,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CAApD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KATyC;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAcA,SAASC,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,MAAMI,IAAI,GAAG,+BAASJ,WAAT,EAAsBK,qBAAtB,CAAb;AAEA,MAAOC,MAAP,GAAkCF,IAAlC,CAAOE,MAAP;AAAA,MAAeC,KAAf,GAAkCH,IAAlC,CAAeG,KAAf;AAAA,MAAsBC,QAAtB,GAAkCJ,IAAlC,CAAsBI,QAAtB;AACA,MAAMC,IAAI,GAAG;AACXH,IAAAA,MAAM,kCAAMA,MAAN;AAAcI,MAAAA,UAAU,EAAE,uCAAiBJ,MAAM,CAACI,UAAxB;AAA1B,MADK;AAEXH,IAAAA,KAAK,kCAAMA,KAAN;AAAaG,MAAAA,UAAU,EAAE,uCAAiBH,KAAK,CAACG,UAAvB;AAAzB,MAFM;AAGXF,IAAAA,QAAQ,kCAAMA,QAAN;AAAgBE,MAAAA,UAAU,EAAE,uCAAiBF,QAAQ,CAACE,UAA1B;AAA5B;AAHG,GAAb;AAOA,SAAOD,IAAP;AACD;;eAEcnB,qB","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf, unpackProperties} from './tile-loader-utils';\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: '1',\n id: 'cartoVectorTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n options: {}\n};\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n const {points, lines, polygons} = tile;\n const data = {\n points: {...points, properties: unpackProperties(points.properties)},\n lines: {...lines, properties: unpackProperties(lines.properties)},\n polygons: {...polygons, properties: unpackProperties(polygons.properties)}\n };\n\n // Note: there is slight, difference in `numericProps` type, however geojson/mvtlayer can cope with this\n return data as unknown as BinaryFeatures;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
|
|
@@ -9,19 +9,20 @@ exports.binaryToSpatialjson = binaryToSpatialjson;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _quadbin = require("quadbin");
|
|
13
13
|
|
|
14
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17
17
|
|
|
18
18
|
function binaryToSpatialjson(binary) {
|
|
19
|
-
var cells = binary.cells
|
|
19
|
+
var cells = binary.cells,
|
|
20
|
+
scheme = binary.scheme;
|
|
20
21
|
var count = cells.indices.value.length;
|
|
21
22
|
var spatial = [];
|
|
22
23
|
|
|
23
24
|
for (var i = 0; i < count; i++) {
|
|
24
|
-
var id = (0,
|
|
25
|
+
var id = scheme === 'h3' ? (0, _quadbin.bigIntToHex)(cells.indices.value[i]) : cells.indices.value[i];
|
|
25
26
|
|
|
26
27
|
var properties = _objectSpread({}, cells.properties[i]);
|
|
27
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/spatialjson-utils.ts"],"names":["binaryToSpatialjson","binary","cells","count","indices","value","length","spatial","i","id","properties","Object","keys","numericProps","key","push"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAmBO,SAASA,mBAAT,CAA6BC,MAA7B,EAAiE;AACtE,MAAOC,KAAP,
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/spatialjson-utils.ts"],"names":["binaryToSpatialjson","binary","cells","scheme","count","indices","value","length","spatial","i","id","properties","Object","keys","numericProps","key","push"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAmBO,SAASA,mBAAT,CAA6BC,MAA7B,EAAiE;AACtE,MAAOC,KAAP,GAAwBD,MAAxB,CAAOC,KAAP;AAAA,MAAcC,MAAd,GAAwBF,MAAxB,CAAcE,MAAd;AACA,MAAMC,KAAK,GAAGF,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBC,MAAlC;AACA,MAAMC,OAAc,GAAG,EAAvB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAApB,EAA2BK,CAAC,EAA5B,EAAgC;AAC9B,QAAMC,EAAE,GAAGP,MAAM,KAAK,IAAX,GAAkB,0BAAYD,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBG,CAApB,CAAZ,CAAlB,GAAwDP,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBG,CAApB,CAAnE;;AAEA,QAAME,UAAU,qBAAOT,KAAK,CAACS,UAAN,CAAiBF,CAAjB,CAAP,CAAhB;;AACA,oCAAkBG,MAAM,CAACC,IAAP,CAAYX,KAAK,CAACY,YAAlB,CAAlB,kCAAmD;AAA9C,UAAMC,GAAG,mBAAT;AACHJ,MAAAA,UAAU,CAACI,GAAD,CAAV,GAAkBb,KAAK,CAACY,YAAN,CAAmBC,GAAnB,EAAwBT,KAAxB,CAA8BG,CAA9B,CAAlB;AACD;;AACDD,IAAAA,OAAO,CAACQ,IAAR,CAAa;AAACN,MAAAA,EAAE,EAAFA,EAAD;AAAKC,MAAAA,UAAU,EAAVA;AAAL,KAAb;AACD;;AAED,SAAOH,OAAP;AACD","sourcesContent":["import {bigIntToHex} from 'quadbin';\n\nexport type IndexScheme = 'h3' | 'quadbin';\ntype TypedArray = Float32Array | Float64Array;\n\nexport type Indices = {value: BigUint64Array};\nexport type NumericProps = Record<string, {value: number[] | TypedArray}>;\nexport type Properties = Record<string, string | number | boolean | null>;\nexport type Cells = {\n indices: Indices;\n numericProps: NumericProps;\n properties: Properties[];\n};\nexport type SpatialBinary = {scheme?: IndexScheme; cells: Cells};\nexport type SpatialJson = {\n id: string | bigint;\n properties: Properties;\n}[];\n\nexport function binaryToSpatialjson(binary: SpatialBinary): SpatialJson {\n const {cells, scheme} = binary;\n const count = cells.indices.value.length;\n const spatial: any[] = [];\n for (let i = 0; i < count; i++) {\n const id = scheme === 'h3' ? bigIntToHex(cells.indices.value[i]) : cells.indices.value[i];\n\n const properties = {...cells.properties[i]};\n for (const key of Object.keys(cells.numericProps)) {\n properties[key] = cells.numericProps[key].value[i];\n }\n spatial.push({id, properties});\n }\n\n return spatial;\n}\n"],"file":"spatialjson-utils.js"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.parsePbf = parsePbf;
|
|
9
|
+
exports.unpackProperties = unpackProperties;
|
|
10
|
+
|
|
11
|
+
var _pbf = _interopRequireDefault(require("pbf"));
|
|
12
|
+
|
|
13
|
+
function parsePbf(buffer, TileReader) {
|
|
14
|
+
var pbf = new _pbf.default(buffer);
|
|
15
|
+
var tile = TileReader.read(pbf);
|
|
16
|
+
return tile;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function unpackProperties(properties) {
|
|
20
|
+
if (!properties || !properties.length) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return properties.map(function (item) {
|
|
25
|
+
var currentRecord = {};
|
|
26
|
+
item.data.forEach(function (_ref) {
|
|
27
|
+
var key = _ref.key,
|
|
28
|
+
value = _ref.value;
|
|
29
|
+
currentRecord[key] = value;
|
|
30
|
+
});
|
|
31
|
+
return currentRecord;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=tile-loader-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/tile-loader-utils.ts"],"names":["parsePbf","buffer","TileReader","pbf","Protobuf","tile","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value"],"mappings":";;;;;;;;;;AAAA;;AAIO,SAASA,QAAT,CAAkBC,MAAlB,EAAuCC,UAAvC,EAAmD;AACxD,MAAMC,GAAG,GAAG,IAAIC,YAAJ,CAAaH,MAAb,CAAZ;AACA,MAAMI,IAAI,GAAGH,UAAU,CAACI,IAAX,CAAgBH,GAAhB,CAAb;AACA,SAAOE,IAAP;AACD;;AAEM,SAASE,gBAAT,CAA0BC,UAA1B,EAA0E;AAC/E,MAAI,CAACA,UAAD,IAAe,CAACA,UAAU,CAACC,MAA/B,EAAuC;AACrC,WAAO,EAAP;AACD;;AACD,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,IAAI,EAAI;AAC5B,QAAMC,aAAyB,GAAG,EAAlC;AACAD,IAAAA,IAAI,CAACE,IAAL,CAAUC,OAAV,CAAkB,gBAAkB;AAAA,UAAhBC,GAAgB,QAAhBA,GAAgB;AAAA,UAAXC,KAAW,QAAXA,KAAW;AAClCJ,MAAAA,aAAa,CAACG,GAAD,CAAb,GAAqBC,KAArB;AACD,KAFD;AAGA,WAAOJ,aAAP;AACD,GANM,CAAP;AAOD","sourcesContent":["import Protobuf from 'pbf';\nimport {KeyValueProperties} from './carto-tile';\nimport {Properties} from './spatialjson-utils';\n\nexport function parsePbf(buffer: ArrayBuffer, TileReader) {\n const pbf = new Protobuf(buffer);\n const tile = TileReader.read(pbf);\n return tile;\n}\n\nexport function unpackProperties(properties: KeyValueProperties[]): Properties[] {\n if (!properties || !properties.length) {\n return [];\n }\n return properties.map(item => {\n const currentRecord: Properties = {};\n item.data.forEach(({key, value}) => {\n currentRecord[key] = value;\n });\n return currentRecord;\n });\n}\n"],"file":"tile-loader-utils.js"}
|
|
@@ -25,6 +25,12 @@ var _cartoSpatialTileLoader = _interopRequireDefault(require("./schema/carto-spa
|
|
|
25
25
|
|
|
26
26
|
var _geoLayers = require("@deck.gl/geo-layers");
|
|
27
27
|
|
|
28
|
+
var _mapsApiCommon = require("../api/maps-api-common");
|
|
29
|
+
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
31
|
+
|
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
33
|
+
|
|
28
34
|
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); }; }
|
|
29
35
|
|
|
30
36
|
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; } }
|
|
@@ -46,6 +52,40 @@ var SpatialIndexTileLayer = function (_TileLayer) {
|
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
(0, _createClass2.default)(SpatialIndexTileLayer, [{
|
|
55
|
+
key: "getTileData",
|
|
56
|
+
value: function getTileData(tile) {
|
|
57
|
+
var _this$props = this.props,
|
|
58
|
+
data = _this$props.data,
|
|
59
|
+
getTileData = _this$props.getTileData,
|
|
60
|
+
fetch = _this$props.fetch;
|
|
61
|
+
var signal = tile.signal;
|
|
62
|
+
tile.url = typeof data === 'string' || Array.isArray(data) ? (0, _geoLayers._getURLFromTemplate)(data, tile) : null;
|
|
63
|
+
|
|
64
|
+
if (!tile.url) {
|
|
65
|
+
return Promise.reject('Invalid URL');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (getTileData) {
|
|
69
|
+
return getTileData(tile);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
var loadOptions = this.getLoadOptions();
|
|
73
|
+
var formatTiles = this.props.formatTiles;
|
|
74
|
+
|
|
75
|
+
if (formatTiles === _mapsApiCommon.TILE_FORMATS.BINARY) {
|
|
76
|
+
loadOptions = _objectSpread(_objectSpread({}, loadOptions), {}, {
|
|
77
|
+
mimeType: 'application/vnd.carto-spatial-tile'
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return fetch(tile.url, {
|
|
82
|
+
propName: 'data',
|
|
83
|
+
layer: this,
|
|
84
|
+
loadOptions: loadOptions,
|
|
85
|
+
signal: signal
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
49
89
|
key: "_updateAutoHighlight",
|
|
50
90
|
value: function _updateAutoHighlight(info) {
|
|
51
91
|
var hoveredFeatureId = this.state.hoveredFeatureId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","SpatialIndexTileLayer","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["CartoSpatialTileLoader","isFeatureIdDefined","value","undefined","SpatialIndexTileLayer","tile","props","data","getTileData","fetch","signal","url","Array","isArray","Promise","reject","loadOptions","getLoadOptions","formatTiles","TILE_FORMATS","BINARY","mimeType","propName","layer","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","setState","highlightedObjectIndex","getHighlightedObjectIndex","content","isFeatureIdPresent","findIndex","feature","TileLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAIA;;AAMA;;;;;;;;;;AATA,2BAAgB,CAACA,+BAAD,CAAhB;;AAWA,SAASC,kBAAT,CAA4BC,KAA5B,EAAqD;AACnD,SAAOA,KAAK,KAAKC,SAAV,IAAuBD,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;AACD;;IAEoBE,qB;;;;;;;;;;;;WAGnB,qBAAYC,IAAZ,EAAiC;AAC/B,wBAAmC,KAAKC,KAAxC;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaC,WAAb,eAAaA,WAAb;AAAA,UAA0BC,KAA1B,eAA0BA,KAA1B;AACA,UAAOC,MAAP,GAAiBL,IAAjB,CAAOK,MAAP;AAEAL,MAAAA,IAAI,CAACM,GAAL,GACE,OAAOJ,IAAP,KAAgB,QAAhB,IAA4BK,KAAK,CAACC,OAAN,CAAcN,IAAd,CAA5B,GAAkD,oCAAoBA,IAApB,EAA0BF,IAA1B,CAAlD,GAAoF,IADtF;;AAEA,UAAI,CAACA,IAAI,CAACM,GAAV,EAAe;AACb,eAAOG,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AAED,UAAIP,WAAJ,EAAiB;AACf,eAAOA,WAAW,CAACH,IAAD,CAAlB;AACD;;AAED,UAAIW,WAAW,GAAG,KAAKC,cAAL,EAAlB;AAEA,UAAOC,WAAP,GAAsB,KAAKZ,KAA3B,CAAOY,WAAP;;AAIA,UAAIA,WAAW,KAAKC,4BAAaC,MAAjC,EAAyC;AACvCJ,QAAAA,WAAW,mCACNA,WADM;AAETK,UAAAA,QAAQ,EAAE;AAFD,UAAX;AAID;;AAED,aAAOZ,KAAK,CAACJ,IAAI,CAACM,GAAN,EAAW;AAACW,QAAAA,QAAQ,EAAE,MAAX;AAAmBC,QAAAA,KAAK,EAAE,IAA1B;AAAgCP,QAAAA,WAAW,EAAXA,WAAhC;AAA6CN,QAAAA,MAAM,EAANA;AAA7C,OAAX,CAAZ;AACD;;;WAED,8BAA+Bc,IAA/B,EAAwD;AACtD,UAAOC,gBAAP,GAA2B,KAAKC,KAAhC,CAAOD,gBAAP;AACA,UAAME,cAAc,GAAGH,IAAI,CAACI,MAA5B;AACA,UAAIC,mBAAJ;;AAEA,UAAIF,cAAJ,EAAoB;AAClBE,QAAAA,mBAAmB,GAAGF,cAAc,CAACG,EAArC;AACD;;AAED,UAAIL,gBAAgB,KAAKI,mBAAzB,EAA8C;AAC5C,YAAKE,cAAL,GAAuB,KAAKzB,KAA5B,CAAKyB,cAAL;;AACA,YAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,UAAAA,cAAc,GAAGA,cAAc,CAACP,IAAD,CAA/B;AACD;;AAED,aAAKQ,QAAL,CAAc;AACZD,UAAAA,cAAc,EAAdA,cADY;AAEZN,UAAAA,gBAAgB,EAAEI;AAFN,SAAd;AAID;AACF;;;WAED,gCAAuBxB,IAAvB,EAA2C;AACzC,aAAO;AACL4B,QAAAA,sBAAsB,EAAE,KAAKC,yBAAL,CAA+B7B,IAA/B,CADnB;AAEL0B,QAAAA,cAAc,EAAE,KAAKL,KAAL,CAAWK;AAFtB,OAAP;AAID;;;WAED,mCAA0B1B,IAA1B,EAA8C;AAC5C,UAAOoB,gBAAP,GAA2B,KAAKC,KAAhC,CAAOD,gBAAP;AACA,UAAMlB,IAAI,GAAGF,IAAI,CAAC8B,OAAlB;AAEA,UAAMC,kBAAkB,GAAGnC,kBAAkB,CAACwB,gBAAD,CAA7C;;AACA,UAAI,CAACW,kBAAD,IAAuB,CAACxB,KAAK,CAACC,OAAN,CAAcN,IAAd,CAA5B,EAAiD;AAC/C,eAAO,CAAC,CAAR;AACD;;AAED,aAAOA,IAAI,CAAC8B,SAAL,CAAe,UAAAC,OAAO;AAAA,eAAIA,OAAO,CAACR,EAAR,KAAeL,gBAAnB;AAAA,OAAtB,CAAP;AACD;;;EAxEiEc,oB;;;8BAA/CnC,qB,eACA,uB","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader as Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {TILE_FORMATS} from '../api/maps-api-common';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nexport default class SpatialIndexTileLayer<ExtraProps = {}> extends TileLayer<any, ExtraProps> {\n static layerName = 'SpatialIndexTileLayer';\n\n getTileData(tile: TileLoadProps) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url =\n typeof data === 'string' || Array.isArray(data) ? _getURLFromTemplate(data, tile) : null;\n if (!tile.url) {\n return Promise.reject('Invalid URL');\n }\n\n if (getTileData) {\n return getTileData(tile);\n }\n\n let loadOptions = this.getLoadOptions();\n // @ts-ignore\n const {formatTiles} = this.props;\n\n // The backend doesn't yet support our custom mime-type, so force it here\n // TODO remove entire `getTileData` method once backend sends the correct mime-type\n if (formatTiles === TILE_FORMATS.BINARY) {\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/vnd.carto-spatial-tile'\n };\n }\n\n return fetch(tile.url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (!isFeatureIdPresent || !Array.isArray(data)) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
|
|
@@ -21,6 +21,11 @@ const SCALE_FUNCS = {
|
|
|
21
21
|
sqrt: scaleSqrt,
|
|
22
22
|
custom: scaleThreshold
|
|
23
23
|
};
|
|
24
|
+
|
|
25
|
+
function identity(v) {
|
|
26
|
+
return v;
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
const UNKNOWN_COLOR = '#868d91';
|
|
25
30
|
export const AGGREGATION = {
|
|
26
31
|
average: 'MEAN',
|
|
@@ -72,6 +77,12 @@ const sharedPropMap = {
|
|
|
72
77
|
wireframe: 'wireframe'
|
|
73
78
|
}
|
|
74
79
|
};
|
|
80
|
+
const customMarkersPropsMap = {
|
|
81
|
+
color: 'getIconColor',
|
|
82
|
+
visConfig: {
|
|
83
|
+
radius: 'getIconSize'
|
|
84
|
+
}
|
|
85
|
+
};
|
|
75
86
|
const aggregationVisConfig = {
|
|
76
87
|
colorAggregation: x => ({
|
|
77
88
|
colorAggregation: AGGREGATION[x] || AGGREGATION.sum
|
|
@@ -101,10 +112,16 @@ function mergePropMaps(a = {}, b = {}) {
|
|
|
101
112
|
}
|
|
102
113
|
|
|
103
114
|
export function getLayer(type, config, dataset) {
|
|
104
|
-
var _config$columns;
|
|
115
|
+
var _config$visConfig, _config$columns;
|
|
116
|
+
|
|
117
|
+
let basePropMap = sharedPropMap;
|
|
118
|
+
|
|
119
|
+
if ((_config$visConfig = config.visConfig) !== null && _config$visConfig !== void 0 && _config$visConfig.customMarkers && !config.textLabel) {
|
|
120
|
+
basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);
|
|
121
|
+
}
|
|
105
122
|
|
|
106
123
|
if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {
|
|
107
|
-
return getTileLayer(dataset);
|
|
124
|
+
return getTileLayer(dataset, basePropMap);
|
|
108
125
|
}
|
|
109
126
|
|
|
110
127
|
const geoColumn = dataset === null || dataset === void 0 ? void 0 : dataset.geoColumn;
|
|
@@ -177,7 +194,7 @@ export function getLayer(type, config, dataset) {
|
|
|
177
194
|
const layer = layerTypeDefs[type];
|
|
178
195
|
assert(layer, "Unsupported layer type: ".concat(type));
|
|
179
196
|
return { ...layer,
|
|
180
|
-
propMap: mergePropMaps(
|
|
197
|
+
propMap: mergePropMaps(basePropMap, layer.propMap),
|
|
181
198
|
defaultProps: { ...defaultProps,
|
|
182
199
|
...layer.defaultProps
|
|
183
200
|
}
|
|
@@ -199,7 +216,7 @@ export function layerFromTileDataset(formatTiles = TILE_FORMATS.MVT, scheme) {
|
|
|
199
216
|
return CartoTileLayer;
|
|
200
217
|
}
|
|
201
218
|
|
|
202
|
-
function getTileLayer(dataset) {
|
|
219
|
+
function getTileLayer(dataset, basePropMap) {
|
|
203
220
|
const {
|
|
204
221
|
aggregationExp,
|
|
205
222
|
aggregationResLevel,
|
|
@@ -211,7 +228,7 @@ function getTileLayer(dataset) {
|
|
|
211
228
|
const formatTiles = new URL(tileUrl).searchParams.get('formatTiles');
|
|
212
229
|
return {
|
|
213
230
|
Layer: layerFromTileDataset(formatTiles, scheme),
|
|
214
|
-
propMap:
|
|
231
|
+
propMap: basePropMap,
|
|
215
232
|
defaultProps: { ...defaultProps,
|
|
216
233
|
...(aggregationExp && {
|
|
217
234
|
aggregationExp
|
|
@@ -246,7 +263,7 @@ function domainFromAttribute(attribute, scaleType, scaleLength) {
|
|
|
246
263
|
}
|
|
247
264
|
|
|
248
265
|
function domainFromValues(values, scaleType) {
|
|
249
|
-
if (scaleType === 'ordinal') {
|
|
266
|
+
if (scaleType === 'ordinal' || scaleType === 'point') {
|
|
250
267
|
return groupSort(values, g => -g.length, d => d);
|
|
251
268
|
} else if (scaleType === 'quantile') {
|
|
252
269
|
return values.sort((a, b) => a - b);
|
|
@@ -372,12 +389,75 @@ export function getColorAccessor({
|
|
|
372
389
|
|
|
373
390
|
return normalizeAccessor(accessor, data);
|
|
374
391
|
}
|
|
392
|
+
const FALLBACK_ICON = 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';
|
|
393
|
+
export function getIconUrlAccessor(field, range, {
|
|
394
|
+
fallbackUrl,
|
|
395
|
+
maxIconSize,
|
|
396
|
+
useMaskedIcons
|
|
397
|
+
}, data) {
|
|
398
|
+
const urlToUnpackedIcon = url => ({
|
|
399
|
+
id: "".concat(url, "@@").concat(maxIconSize),
|
|
400
|
+
url,
|
|
401
|
+
width: maxIconSize,
|
|
402
|
+
height: maxIconSize,
|
|
403
|
+
mask: useMaskedIcons
|
|
404
|
+
});
|
|
405
|
+
|
|
406
|
+
let unknownValue = fallbackUrl || FALLBACK_ICON;
|
|
407
|
+
|
|
408
|
+
if (range !== null && range !== void 0 && range.othersMarker) {
|
|
409
|
+
unknownValue = range.othersMarker;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
const unknownIcon = urlToUnpackedIcon(unknownValue);
|
|
413
|
+
|
|
414
|
+
if (!range || !field) {
|
|
415
|
+
return () => unknownIcon;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
const mapping = {};
|
|
419
|
+
|
|
420
|
+
for (const {
|
|
421
|
+
value,
|
|
422
|
+
markerUrl
|
|
423
|
+
} of range.markerMap) {
|
|
424
|
+
if (markerUrl) {
|
|
425
|
+
mapping[value] = urlToUnpackedIcon(markerUrl);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
const accessor = properties => {
|
|
430
|
+
const propertyValue = properties[field.name];
|
|
431
|
+
return mapping[propertyValue] || unknownIcon;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
return normalizeAccessor(accessor, data);
|
|
435
|
+
}
|
|
436
|
+
export function getMaxMarkerSize(visConfig, visualChannels) {
|
|
437
|
+
const {
|
|
438
|
+
radiusRange,
|
|
439
|
+
radius
|
|
440
|
+
} = visConfig;
|
|
441
|
+
const {
|
|
442
|
+
radiusField,
|
|
443
|
+
sizeField
|
|
444
|
+
} = visualChannels;
|
|
445
|
+
const field = radiusField || sizeField;
|
|
446
|
+
return Math.ceil(radiusRange && field ? radiusRange[1] : radius);
|
|
447
|
+
}
|
|
448
|
+
export function negateAccessor(accessor) {
|
|
449
|
+
return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;
|
|
450
|
+
}
|
|
375
451
|
export function getSizeAccessor({
|
|
376
452
|
name
|
|
377
453
|
}, scaleType, aggregation, range, data) {
|
|
378
|
-
const scale = SCALE_FUNCS[scaleType]();
|
|
379
|
-
|
|
380
|
-
|
|
454
|
+
const scale = scaleType ? SCALE_FUNCS[scaleType]() : identity;
|
|
455
|
+
|
|
456
|
+
if (scaleType) {
|
|
457
|
+
scale.domain(calculateDomain(data, name, scaleType));
|
|
458
|
+
scale.range(range);
|
|
459
|
+
}
|
|
460
|
+
|
|
381
461
|
let accessorKeys = getAccessorKeys(name, aggregation);
|
|
382
462
|
|
|
383
463
|
const accessor = properties => {
|
|
@@ -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","H3TileLayer","QuadbinTileLayer","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","layerTypeDefs","Layer","propMap","outline","geojson","grid","worldUnitSize","cellSize","heatmap","hexagon","getHexagon","layer","layerFromTileDataset","formatTiles","MVT","scheme","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","range","colorMap","scale","domain","scaleColor","forEach","value","push","slice","unknown","alpha","accessorKeys","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 {Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport {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: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config,\n dataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\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\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\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 };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(sharedPropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: string | null = TILE_FORMATS.MVT,\n scheme: string\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === TILE_FORMATS.MVT) {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles');\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({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\nfunction getAccessorKeys(name: string, aggregation: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {aggregation, range: {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, colors.length);\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 let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE,\n aggregation,\n range: Iterable<Range>,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, 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","H3TileLayer","QuadbinTileLayer","TILE_FORMATS","assert","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","custom","identity","v","UNKNOWN_COLOR","AGGREGATION","average","maximum","minimum","sum","OPACITY_MAP","getFillColor","getLineColor","getTextColor","AGGREGATION_FUNC","values","accessor","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","customMarkersPropsMap","aggregationVisConfig","colorAggregation","x","colorRange","colors","map","coverage","elevationPercentile","percentile","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","getLayer","type","config","dataset","basePropMap","customMarkers","getTileLayer","geoColumn","getPosition","d","coordinates","hexagonId","columns","hex_id","layerTypeDefs","Layer","propMap","outline","geojson","grid","worldUnitSize","cellSize","heatmap","hexagon","getHexagon","layer","layerFromTileDataset","formatTiles","MVT","scheme","aggregationExp","aggregationResLevel","data","tiles","tileUrl","URL","searchParams","get","uniqueIdProperty","domainFromAttribute","attribute","scaleType","scaleLength","categories","category","filter","undefined","quantiles","min","max","domainFromValues","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","opacityToAlpha","Math","round","pow","getAccessorKeys","aggregation","keys","concat","toUpperCase","findAccessorKey","key","Error","getColorValueAccessor","aggregator","p","getColorAccessor","range","colorMap","scale","domain","scaleColor","forEach","value","push","slice","unknown","alpha","accessorKeys","propertyValue","FALLBACK_ICON","getIconUrlAccessor","field","fallbackUrl","maxIconSize","useMaskedIcons","urlToUnpackedIcon","url","id","width","height","mask","unknownValue","othersMarker","unknownIcon","mapping","markerUrl","markerMap","getMaxMarkerSize","visualChannels","radiusRange","radiusField","sizeField","ceil","negateAccessor","i","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 {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';\nimport {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\n\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport H3TileLayer from '../layers/h3-tile-layer';\nimport QuadbinTileLayer from '../layers/quadbin-tile-layer';\nimport {TILE_FORMATS} from './maps-api-common';\nimport {assert} from '../utils';\nimport {\n CustomMarkersRange,\n MapDataset,\n MapTextSubLayerConfig,\n TextLabel,\n VisConfig,\n VisualChannelField,\n VisualChannels\n} from './types';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt,\n custom: scaleThreshold\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\nfunction identity<T>(v: T): T {\n return v;\n}\n\nconst UNKNOWN_COLOR = '#868d91';\n\nexport const AGGREGATION = {\n average: 'MEAN',\n maximum: 'MAX',\n minimum: 'MIN',\n sum: 'SUM'\n};\n\nexport const OPACITY_MAP = {\n getFillColor: 'opacity',\n getLineColor: 'strokeOpacity',\n getTextColor: 'opacity'\n};\n\nconst AGGREGATION_FUNC = {\n 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,\n median,\n // Unfortunately mode() is only available in d3-array@3+ which is ESM only\n mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),\n stddev: deviation,\n variance\n};\n\nconst hexToRGBA = c => {\n const {r, g, b, opacity} = rgb(c);\n return [r, g, b, 255 * opacity];\n};\n\n// Kepler -> 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 customMarkersPropsMap = {\n color: 'getIconColor',\n visConfig: {\n radius: 'getIconSize'\n }\n};\n\nconst aggregationVisConfig = {\n colorAggregation: x => ({colorAggregation: AGGREGATION[x] || AGGREGATION.sum}),\n colorRange: x => ({colorRange: x.colors.map(hexToRGBA)}),\n coverage: 'coverage',\n elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],\n percentile: ['lowerPercentile', 'upperPercentile']\n};\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a: Record<string, any> = {}, b: Record<string, any> = {}) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config: MapTextSubLayerConfig,\n dataset: MapDataset\n): {Layer: ConstructorOf<Layer>; propMap: any; defaultProps: any} {\n let basePropMap: any = sharedPropMap;\n\n if (config.visConfig?.customMarkers && !config.textLabel) {\n basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);\n }\n if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {\n return getTileLayer(dataset, basePropMap);\n }\n\n const geoColumn = dataset?.geoColumn;\n const getPosition = d => d[geoColumn].coordinates;\n\n const hexagonId = config.columns?.hex_id;\n\n const layerTypeDefs: Record<\n string,\n {Layer: ConstructorOf<Layer>; propMap?: any; defaultProps?: any}\n > = {\n point: {\n Layer: GeoJsonLayer,\n propMap: {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 };\n\n const layer = layerTypeDefs[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return {\n ...layer,\n propMap: mergePropMaps(basePropMap, layer.propMap),\n defaultProps: {...defaultProps, ...layer.defaultProps}\n };\n}\n\nexport function layerFromTileDataset(\n formatTiles: string | null = TILE_FORMATS.MVT,\n scheme: string\n): typeof CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {\n if (scheme === 'h3') {\n return H3TileLayer;\n }\n if (scheme === 'quadbin') {\n return QuadbinTileLayer;\n }\n if (formatTiles === TILE_FORMATS.MVT) {\n return MVTLayer;\n }\n\n // formatTiles === BINARY|JSON|GEOJSON\n return CartoTileLayer;\n}\n\nfunction getTileLayer(dataset: MapDataset, basePropMap) {\n const {\n aggregationExp,\n aggregationResLevel,\n data: {\n scheme,\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles');\n\n return {\n Layer: layerFromTileDataset(formatTiles, scheme),\n propMap: basePropMap,\n defaultProps: {\n ...defaultProps,\n ...(aggregationExp && {aggregationExp}),\n ...(aggregationResLevel && {aggregationResLevel}),\n formatTiles,\n uniqueIdProperty: 'geoid'\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE, scaleLength: number) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n if (scaleType === 'quantile' && attribute.quantiles) {\n return attribute.quantiles[scaleLength];\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return groupSort(\n values,\n g => -g.length,\n d => d\n );\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType, scaleLength?) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType, scaleLength);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function opacityToAlpha(opacity?: number) {\n return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n}\n\nfunction getAccessorKeys(name: string, aggregation: string | undefined): string[] {\n let keys = [name];\n if (aggregation) {\n // Snowflake will capitalized the keys, need to check lower and upper case version\n keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));\n }\n return keys;\n}\n\nfunction findAccessorKey(keys: string[], properties): string[] {\n for (const key of keys) {\n if (key in properties) {\n return [key];\n }\n }\n\n throw new Error(`Could not find property for any accessor key: ${keys}`);\n}\n\nexport function getColorValueAccessor({name}, colorAggregation, data: any) {\n const aggregator = AGGREGATION_FUNC[colorAggregation];\n const accessor = values => aggregator(values, p => p[name]);\n return normalizeAccessor(accessor, data);\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {aggregation, range: {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, colors.length);\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 let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n const {r, g, b} = rgb(scale(propertyValue));\n return [r, g, b, propertyValue === null ? 0 : alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FALLBACK_ICON =\n 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';\n\nexport function getIconUrlAccessor(\n field: VisualChannelField | null | undefined,\n range: CustomMarkersRange | null | undefined,\n {fallbackUrl, maxIconSize, useMaskedIcons},\n data: any\n) {\n const urlToUnpackedIcon = (url: string) => ({\n id: `${url}@@${maxIconSize}`,\n url,\n width: maxIconSize,\n height: maxIconSize,\n mask: useMaskedIcons\n });\n let unknownValue = fallbackUrl || FALLBACK_ICON;\n\n if (range?.othersMarker) {\n unknownValue = range.othersMarker;\n }\n\n const unknownIcon = urlToUnpackedIcon(unknownValue);\n if (!range || !field) {\n return () => unknownIcon;\n }\n\n const mapping: Record<string, any> = {};\n for (const {value, markerUrl} of range.markerMap) {\n if (markerUrl) {\n mapping[value] = urlToUnpackedIcon(markerUrl);\n }\n }\n\n const accessor = properties => {\n const propertyValue = properties[field.name];\n return mapping[propertyValue] || unknownIcon;\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number {\n const {radiusRange, radius} = visConfig;\n const {radiusField, sizeField} = visualChannels;\n const field = radiusField || sizeField;\n return Math.ceil(radiusRange && field ? radiusRange[1] : radius);\n}\n\nexport function negateAccessor<T>(accessor: Accessor<T, number>): Accessor<T, number> {\n return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;\n}\n\nexport function getSizeAccessor(\n {name},\n scaleType: SCALE_TYPE | undefined,\n aggregation,\n range: Iterable<Range> | undefined,\n data: any\n) {\n const scale = scaleType ? SCALE_FUNCS[scaleType as any]() : identity;\n if (scaleType) {\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n }\n\n let accessorKeys = getAccessorKeys(name, aggregation);\n const accessor = properties => {\n if (!(accessorKeys[0] in properties)) {\n accessorKeys = findAccessorKey(accessorKeys, properties);\n }\n const propertyValue = properties[accessorKeys[0]];\n return scale(propertyValue);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}: VisualChannelField, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getTextPixelOffsetAccessor(\n {alignment, anchor, size}: TextLabel,\n radius\n): Accessor<unknown, [number, number]> {\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: number): [number, number] => [\n signX * (r + padding),\n 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"}
|
|
@@ -5,6 +5,7 @@ import { log } from '@deck.gl/core';
|
|
|
5
5
|
import { assert } from '../utils';
|
|
6
6
|
const MAX_GET_LENGTH = 2048;
|
|
7
7
|
const DEFAULT_CLIENT = 'deck-gl-carto';
|
|
8
|
+
const V3_MINOR_VERSION = '3.1';
|
|
8
9
|
|
|
9
10
|
async function request({
|
|
10
11
|
method,
|
|
@@ -115,6 +116,7 @@ function getParameters({
|
|
|
115
116
|
queryParameters
|
|
116
117
|
}) {
|
|
117
118
|
const parameters = [encodeParameter('client', clientId || DEFAULT_CLIENT)];
|
|
119
|
+
parameters.push(encodeParameter('v', V3_MINOR_VERSION));
|
|
118
120
|
const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';
|
|
119
121
|
parameters.push(encodeParameter(sourceName, source));
|
|
120
122
|
|
|
@@ -374,7 +376,7 @@ async function _fetchDataUrl({
|
|
|
374
376
|
};
|
|
375
377
|
}
|
|
376
378
|
|
|
377
|
-
async function _fetchMapDataset(dataset, accessToken, credentials, clientId, headers
|
|
379
|
+
async function _fetchMapDataset(dataset, accessToken, credentials, clientId, headers) {
|
|
378
380
|
const {
|
|
379
381
|
aggregationExp,
|
|
380
382
|
aggregationResLevel,
|
|
@@ -383,7 +385,8 @@ async function _fetchMapDataset(dataset, accessToken, credentials, clientId, hea
|
|
|
383
385
|
format,
|
|
384
386
|
geoColumn,
|
|
385
387
|
source,
|
|
386
|
-
type
|
|
388
|
+
type,
|
|
389
|
+
queryParameters
|
|
387
390
|
} = dataset;
|
|
388
391
|
const {
|
|
389
392
|
url,
|