@deck.gl/carto 8.7.0-beta.5 → 8.7.0-beta.6
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 +379 -326
- package/dist/es5/api/index.js.map +1 -1
- package/dist/es5/api/layer-map.js +8 -8
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +15 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-client.js +15 -18
- package/dist/es5/api/maps-client.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +234 -176
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +5 -8
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/basemap.js +7 -7
- package/dist/es5/basemap.js.map +1 -1
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/index.js +4 -4
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +2 -2
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +23 -23
- package/dist/es5/layers/carto-tile-layer.js.map +1 -0
- package/dist/es5/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
- package/dist/es5/layers/schema/carto-tile.js.map +1 -0
- package/dist/es5/style/color-bins-style.js +1 -1
- package/dist/es5/style/color-bins-style.js.map +1 -1
- package/dist/es5/style/color-categories-style.js +1 -1
- package/dist/es5/style/color-categories-style.js.map +1 -1
- package/dist/es5/style/color-continuous-style.js +1 -1
- package/dist/es5/style/color-continuous-style.js.map +1 -1
- package/dist/es5/style/palette.js +1 -6
- package/dist/es5/style/palette.js.map +1 -1
- package/dist/es5/style/utils.js +2 -6
- package/dist/es5/style/utils.js.map +1 -1
- package/dist/es5/utils.js +13 -0
- package/dist/es5/utils.js.map +1 -0
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/layer-map.js +5 -4
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +14 -0
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +6 -10
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +68 -37
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +4 -3
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/basemap.js +7 -7
- package/dist/esm/basemap.js.map +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +2 -2
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +15 -15
- package/dist/esm/layers/carto-tile-layer.js.map +1 -0
- package/dist/esm/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
- package/dist/esm/layers/schema/carto-tile.js.map +1 -0
- package/dist/esm/style/color-bins-style.js +1 -1
- package/dist/esm/style/color-bins-style.js.map +1 -1
- package/dist/esm/style/color-categories-style.js +1 -1
- package/dist/esm/style/color-categories-style.js.map +1 -1
- package/dist/esm/style/color-continuous-style.js +1 -1
- package/dist/esm/style/color-continuous-style.js.map +1 -1
- package/dist/esm/style/palette.js +1 -6
- package/dist/esm/style/palette.js.map +1 -1
- package/dist/esm/style/utils.js +2 -6
- package/dist/esm/style/utils.js.map +1 -1
- package/dist/esm/utils.js +5 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist.min.js +2 -2
- package/package.json +8 -2
- package/src/api/{index.js → index.ts} +0 -0
- package/src/api/{layer-map.js → layer-map.ts} +25 -14
- package/src/api/maps-api-common.ts +76 -0
- package/src/api/{maps-client.js → maps-client.ts} +55 -20
- package/src/api/{maps-v3-client.js → maps-v3-client.ts} +143 -56
- package/src/api/{parseMap.js → parseMap.ts} +7 -6
- package/src/basemap.ts +10 -0
- package/src/{config.js → config.ts} +22 -6
- package/src/{index.js → index.ts} +2 -2
- package/src/layers/carto-layer.js +2 -2
- package/src/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +13 -13
- package/src/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +0 -0
- package/src/style/color-bins-style.ts +26 -0
- package/src/style/{color-categories-style.js → color-categories-style.ts} +10 -4
- package/src/style/color-continuous-style.ts +25 -0
- package/src/style/{palette.js → palette.ts} +18 -15
- package/src/style/{utils.js → utils.ts} +7 -10
- package/src/utils.ts +5 -0
- package/dist/es5/layers/carto-dynamic-tile-layer.js.map +0 -1
- package/dist/es5/layers/schema/carto-dynamic-tile.js.map +0 -1
- package/dist/esm/layers/carto-dynamic-tile-layer.js.map +0 -1
- package/dist/esm/layers/schema/carto-dynamic-tile.js.map +0 -1
- package/src/api/maps-api-common.js +0 -41
- package/src/basemap.js +0 -10
- package/src/style/color-bins-style.js +0 -21
- package/src/style/color-continuous-style.js +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/style/color-categories-style.
|
|
1
|
+
{"version":3,"sources":["../../../src/style/color-categories-style.ts"],"names":["colorCategories","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","othersColor","OTHERS_COLOR","Array","isArray","colorsByCategory","palette","length","entries","i","c","d","value","Number","isFinite"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;;;AAEe,SAASA,eAAT,OAYO;AAAA,MAXpBC,IAWoB,QAXpBA,IAWoB;AAAA,MAVpBC,MAUoB,QAVpBA,MAUoB;AAAA,yBATpBC,MASoB;AAAA,MATpBA,MASoB,4BATXC,wBASW;AAAA,4BARpBC,SAQoB;AAAA,MARpBA,SAQoB,+BARRC,mBAQQ;AAAA,8BAPpBC,WAOoB;AAAA,MAPpBA,WAOoB,iCAPNC,qBAOM;AACpB,qBAAOC,KAAK,CAACC,OAAN,CAAcR,MAAd,CAAP,EAA8B,wDAA9B;AAEA,MAAMS,gBAAgB,GAAG,EAAzB;AACA,MAAMC,OAAO,GAAG,OAAOT,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,EAAmBD,MAAM,CAACW,MAA1B,CAA7B,GAAiEV,MAAjF;;AAJoB,6CAMCD,MAAM,CAACY,OAAP,EAND;AAAA;;AAAA;AAMpB,wDAAuC;AAAA;AAAA,UAA3BC,CAA2B;AAAA,UAAxBC,CAAwB;;AACrCL,MAAAA,gBAAgB,CAACK,CAAD,CAAhB,GAAsBJ,OAAO,CAACG,CAAD,CAA7B;AACD;AARmB;AAAA;AAAA;AAAA;AAAA;;AAUpB,SAAO,UAAAE,CAAC,EAAI;AACV,QAAMC,KAAK,GAAG,yBAAajB,IAAb,EAAmBgB,CAAnB,CAAd;AACA,WAAQ,OAAOC,KAAP,KAAiB,QAAjB,IAA6BC,MAAM,CAACC,QAAP,CAAgBF,KAAhB,CAA9B,IAAyD,OAAOA,KAAP,KAAiB,QAA1E,GACHP,gBAAgB,CAACO,KAAD,CAAhB,IAA2BX,WADxB,GAEHF,SAFJ;AAGD,GALD;AAMD","sourcesContent":["import getPalette, {Color, DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR} from './palette';\nimport {assert, AttributeSelector, getAttrValue} from './utils';\n\nexport default function colorCategories({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR,\n othersColor = OTHERS_COLOR\n}: {\n attr: AttributeSelector;\n domain: number[];\n colors: string | Color[];\n nullColor?: Color;\n othersColor?: Color;\n}): AttributeSelector {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers or strings');\n\n const colorsByCategory = {};\n const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;\n\n for (const [i, c] of domain.entries()) {\n colorsByCategory[c] = palette[i];\n }\n\n return d => {\n const value = getAttrValue(attr, d);\n return (typeof value === 'number' && Number.isFinite(value)) || typeof value === 'string'\n ? colorsByCategory[value] || othersColor\n : nullColor;\n };\n}\n"],"file":"color-categories-style.js"}
|
|
@@ -29,7 +29,7 @@ function colorContinuous(_ref) {
|
|
|
29
29
|
var color = (0, _d3Scale.scaleLinear)().domain(domain).range(palette);
|
|
30
30
|
return function (d) {
|
|
31
31
|
var value = (0, _utils.getAttrValue)(attr, d);
|
|
32
|
-
return Number.isFinite(value) ? color(value) : nullColor;
|
|
32
|
+
return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=color-continuous-style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/style/color-continuous-style.
|
|
1
|
+
{"version":3,"sources":["../../../src/style/color-continuous-style.ts"],"names":["colorContinuous","attr","domain","colors","DEFAULT_PALETTE","nullColor","NULL_COLOR","Array","isArray","palette","length","color","range","d","value","Number","isFinite"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,eAAT,OAUO;AAAA,MATpBC,IASoB,QATpBA,IASoB;AAAA,MARpBC,MAQoB,QARpBA,MAQoB;AAAA,yBAPpBC,MAOoB;AAAA,MAPpBA,MAOoB,4BAPXC,wBAOW;AAAA,4BANpBC,SAMoB;AAAA,MANpBA,SAMoB,+BANRC,mBAMQ;AACpB,qBAAOC,KAAK,CAACC,OAAN,CAAcN,MAAd,CAAP,EAA8B,6CAA9B;AAEA,MAAMO,OAAO,GAAG,OAAON,MAAP,KAAkB,QAAlB,GAA6B,sBAAWA,MAAX,EAAmBD,MAAM,CAACQ,MAA1B,CAA7B,GAAiEP,MAAjF;AACA,MAAMQ,KAAK,GAAG,4BAAqBT,MAArB,CAA4BA,MAA5B,EAAoCU,KAApC,CAA0CH,OAA1C,CAAd;AAEA,SAAO,UAAAI,CAAC,EAAI;AACV,QAAMC,KAAK,GAAG,yBAAab,IAAb,EAAmBY,CAAnB,CAAd;AACA,WAAO,OAAOC,KAAP,KAAiB,QAAjB,IAA6BC,MAAM,CAACC,QAAP,CAAgBF,KAAhB,CAA7B,GAAsDH,KAAK,CAACG,KAAD,CAA3D,GAAqET,SAA5E;AACD,GAHD;AAID","sourcesContent":["import {scaleLinear} from 'd3-scale';\nimport getPalette, {Color, DEFAULT_PALETTE, NULL_COLOR} from './palette';\nimport {assert, AttributeSelector, getAttrValue} from './utils';\n\nexport default function colorContinuous({\n attr,\n domain,\n colors = DEFAULT_PALETTE,\n nullColor = NULL_COLOR\n}: {\n attr: AttributeSelector;\n domain: number[];\n colors?: string | Color[];\n nullColor?: Color;\n}): AttributeSelector {\n assert(Array.isArray(domain), 'Expected \"domain\" to be an array of numbers');\n\n const palette = typeof colors === 'string' ? getPalette(colors, domain.length) : colors;\n const color = scaleLinear<Color>().domain(domain).range(palette);\n\n return d => {\n const value = getAttrValue(attr, d);\n return typeof value === 'number' && Number.isFinite(value) ? color(value) : nullColor;\n };\n}\n"],"file":"color-continuous-style.js"}
|
|
@@ -75,12 +75,7 @@ function hexToRgb(hex) {
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
78
|
-
|
|
79
|
-
if (result) {
|
|
80
|
-
return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
|
|
81
|
-
}
|
|
82
|
-
|
|
83
78
|
(0, _utils.assert)(result, "Hexadecimal color \"".concat(hex, "\" was not parsed correctly"));
|
|
84
|
-
return
|
|
79
|
+
return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), parseInt(result[4], 16)];
|
|
85
80
|
}
|
|
86
81
|
//# sourceMappingURL=palette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/style/palette.
|
|
1
|
+
{"version":3,"sources":["../../../src/style/palette.ts"],"names":["DEFAULT_PALETTE","NULL_COLOR","OTHERS_COLOR","getPalette","name","numCategories","palette","cartoColors","paletteIndex","palettesColorVariants","Object","keys","filter","p","map","Number","longestPaletteIndex","Math","max","smallestPaletteIndex","min","isInteger","colors","tags","includes","slice","c","hexToRgb","hex","result","exec","parseInt"],"mappings":"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","sourcesContent":["import * as cartoColors from 'cartocolor';\nimport {assert} from './utils';\n\nexport type Color = [r: number, b: number, g: number, a?: number];\n\nexport const DEFAULT_PALETTE = 'PurpOr';\nexport const NULL_COLOR: Color = [204, 204, 204];\nexport const OTHERS_COLOR: Color = [119, 119, 119];\n\ninterface CartoColorsPalette {\n tags?: string[];\n [key: number]: string[];\n}\n\nexport default function getPalette(name: string, numCategories: number): Color[] {\n const palette: CartoColorsPalette | undefined = cartoColors[name];\n let paletteIndex = numCategories;\n\n assert(palette, `Palette \"${name}\" not found. Expected a CARTOColors string`);\n\n const palettesColorVariants = Object.keys(palette)\n .filter(p => p !== 'tags')\n .map(Number);\n\n const longestPaletteIndex = Math.max(...palettesColorVariants);\n const smallestPaletteIndex = Math.min(...palettesColorVariants);\n\n if (!Number.isInteger(numCategories) || numCategories > longestPaletteIndex) {\n paletteIndex = longestPaletteIndex;\n } else if (numCategories < smallestPaletteIndex) {\n paletteIndex = smallestPaletteIndex;\n }\n\n let colors = palette[paletteIndex];\n\n if (palette.tags && palette.tags.includes('qualitative')) {\n colors = colors.slice(0, -1);\n }\n\n return colors.map(c => hexToRgb(c));\n}\n\nexport function hexToRgb(hex: string): Color {\n // Evaluate #ABC\n let result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n 255\n ];\n }\n\n // Evaluate #ABCD\n result = /^#?([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})([a-f\\d]{1})$/i.exec(hex);\n\n if (result) {\n return [\n parseInt(result[1] + result[1], 16),\n parseInt(result[2] + result[2], 16),\n parseInt(result[3] + result[3], 16),\n parseInt(result[4] + result[4], 16)\n ];\n }\n\n // Evaluate #ABCDEF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (result) {\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), 255];\n }\n\n // Evaluate #ABCDEFAF\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n assert(result, `Hexadecimal color \"${hex}\" was not parsed correctly`);\n\n return [\n parseInt(result[1], 16),\n parseInt(result[2], 16),\n parseInt(result[3], 16),\n parseInt(result[4], 16)\n ];\n}\n"],"file":"palette.js"}
|
package/dist/es5/style/utils.js
CHANGED
|
@@ -16,15 +16,11 @@ function getAttrValue(attr, d) {
|
|
|
16
16
|
assert((0, _typeof2.default)(d) === 'object', 'Expected "data" to be an object');
|
|
17
17
|
assert(ALLOWED_ATTR_TYPES.includes((0, _typeof2.default)(attr)), 'Expected "attr" to be a function or string');
|
|
18
18
|
|
|
19
|
-
if (
|
|
19
|
+
if (typeof attr === 'function') {
|
|
20
20
|
return attr(d);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
return d.properties[attr];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return {};
|
|
23
|
+
return d.properties[attr];
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
function assert(condition) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/style/utils.
|
|
1
|
+
{"version":3,"sources":["../../../src/style/utils.ts"],"names":["ALLOWED_ATTR_TYPES","Object","freeze","getAttrValue","attr","d","assert","includes","properties","condition","message","Error"],"mappings":";;;;;;;;;;;;AAAA,IAAMA,kBAAkB,GAAGC,MAAM,CAACC,MAAP,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAA3B;;AAKO,SAASC,YAAT,CAAsBC,IAAtB,EAA+CC,CAA/C,EAAgE;AACrEC,EAAAA,MAAM,CAAC,sBAAOD,CAAP,MAAa,QAAd,EAAwB,iCAAxB,CAAN;AACAC,EAAAA,MAAM,CAACN,kBAAkB,CAACO,QAAnB,uBAAmCH,IAAnC,EAAD,EAA2C,4CAA3C,CAAN;;AAGA,MAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9B,WAAOA,IAAI,CAACC,CAAD,CAAX;AACD;;AACD,SAAOA,CAAC,CAACG,UAAF,CAAaJ,IAAb,CAAP;AACD;;AAEM,SAASE,MAAT,CAAgBG,SAAhB,EAA4D;AAAA,MAAjCC,OAAiC,uEAAvB,EAAuB;;AACjE,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,8BAAgCD,OAAhC,EAAN;AACD;AACF","sourcesContent":["const ALLOWED_ATTR_TYPES = Object.freeze(['function', 'string']);\n\ntype Row = {properties: Record<string, unknown>};\nexport type AttributeSelector = string | ((d: Row) => unknown);\n\nexport function getAttrValue(attr: AttributeSelector, d: Row): unknown {\n assert(typeof d === 'object', 'Expected \"data\" to be an object');\n assert(ALLOWED_ATTR_TYPES.includes(typeof attr), 'Expected \"attr\" to be a function or string');\n\n // Is function\n if (typeof attr === 'function') {\n return attr(d);\n }\n return d.properties[attr];\n}\n\nexport function assert(condition, message = ''): asserts condition {\n if (!condition) {\n throw new Error(`CARTO style error: ${message}`);\n }\n}\n"],"file":"utils.js"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.assert = assert;
|
|
7
|
+
|
|
8
|
+
var _core = require("@deck.gl/core");
|
|
9
|
+
|
|
10
|
+
function assert(condition, message) {
|
|
11
|
+
_core.log.assert(condition, message);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"names":["assert","condition","message","log"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,MAAT,CAAgBC,SAAhB,EAAoCC,OAApC,EAAyE;AAC9EC,YAAIH,MAAJ,CAAWC,SAAX,EAAsBC,OAAtB;AACD","sourcesContent":["import {log} from '@deck.gl/core';\n\nexport function assert(condition: unknown, message?: string): asserts condition {\n log.assert(condition, message);\n}\n"],"file":"utils.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/index.
|
|
1
|
+
{"version":3,"sources":["../../../src/api/index.ts"],"names":["FORMATS","TILE_FORMATS","MAP_TYPES","API_VERSIONS","getDataV2","CONNECTIONS","fetchLayerData","fetchMap","getData","mapInstantiation"],"mappings":"AAAA,SAAQA,OAAR,EAAiBC,YAAjB,EAA+BC,SAA/B,EAA0CC,YAA1C,QAA6D,mBAA7D;AACA,SAAQC,SAAR,EAAmBC,WAAnB,QAAqC,eAArC;AACA,SAAQC,cAAR,EAAwBC,QAAxB,EAAkCC,OAAlC,EAA2CC,gBAA3C,QAAkE,kBAAlE","sourcesContent":["export {FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
|
|
@@ -3,10 +3,11 @@ import { rgb } from 'd3-color';
|
|
|
3
3
|
import { scaleLinear, scaleOrdinal, scaleLog, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt } from 'd3-scale';
|
|
4
4
|
import { format as d3Format } from 'd3-format';
|
|
5
5
|
import moment from 'moment-timezone';
|
|
6
|
-
import { log } from '@deck.gl/core';
|
|
7
6
|
import { H3HexagonLayer, MVTLayer } from '@deck.gl/geo-layers';
|
|
8
7
|
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
9
|
-
import
|
|
8
|
+
import CartoTileLayer from '../layers/carto-tile-layer';
|
|
9
|
+
import { TILE_FORMATS } from './maps-api-common';
|
|
10
|
+
import { assert } from '../utils';
|
|
10
11
|
const SCALE_FUNCS = {
|
|
11
12
|
linear: scaleLinear,
|
|
12
13
|
ordinal: scaleOrdinal,
|
|
@@ -94,7 +95,7 @@ export function getLayer(type, config, dataset) {
|
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
}[type];
|
|
97
|
-
|
|
98
|
+
assert(layer, "Unsupported layer type: ".concat(type));
|
|
98
99
|
return layer;
|
|
99
100
|
}
|
|
100
101
|
|
|
@@ -106,7 +107,7 @@ function getTileLayer(dataset) {
|
|
|
106
107
|
} = dataset;
|
|
107
108
|
const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;
|
|
108
109
|
return {
|
|
109
|
-
Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer :
|
|
110
|
+
Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : CartoTileLayer,
|
|
110
111
|
propMap: sharedPropMap,
|
|
111
112
|
defaultProps: { ...defaultProps,
|
|
112
113
|
pointRadiusScale: 0.3,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/layer-map.js"],"names":["extent","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","format","d3Format","moment","log","H3HexagonLayer","MVTLayer","GeoJsonLayer","_CartoDynamicTileLayer","TILE_FORMATS","SCALE_FUNCS","linear","ordinal","point","quantile","quantize","sqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","dataset","getTileLayer","hexagonId","columns","hex_id","layer","Layer","propMap","outline","geojson","lineWidthScale","coverage","elevationScale","getHexagon","d","assert","data","tiles","tileUrl","formatTiles","URL","searchParams","get","MVT","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","utc","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset","_domainFromValues"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {log} from '@deck.gl/core';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {_CartoDynamicTileLayer, TILE_FORMATS} from '@deck.gl/carto';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt\n};\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(type, config, dataset) {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n }\n }[type];\n\n log.assert(layer, `Unsupported layer type: ${type}`);\n\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 : _CartoDynamicTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor({name}, scaleType, {colors}, opacity, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["extent","rgb","scaleLinear","scaleOrdinal","scaleLog","scalePoint","scaleQuantile","scaleQuantize","scaleSqrt","format","d3Format","moment","H3HexagonLayer","MVTLayer","GeoJsonLayer","CartoTileLayer","TILE_FORMATS","assert","SCALE_FUNCS","linear","ordinal","log","point","quantile","quantize","sqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","dataset","getTileLayer","hexagonId","columns","hex_id","layer","Layer","propMap","outline","geojson","lineWidthScale","coverage","elevationScale","getHexagon","d","data","tiles","tileUrl","formatTiles","URL","searchParams","get","MVT","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","utc","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset","_domainFromValues"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\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};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\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 hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n }\n }[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\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 pointRadiusScale: 0.3,\n lineWidthScale: 2,\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 [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values 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 getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {colors},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType: 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 => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
|
|
@@ -25,6 +25,20 @@ export const TILE_FORMATS = {
|
|
|
25
25
|
GEOJSON: 'geojson',
|
|
26
26
|
BINARY: 'binary'
|
|
27
27
|
};
|
|
28
|
+
export let SchemaFieldType;
|
|
29
|
+
|
|
30
|
+
(function (SchemaFieldType) {
|
|
31
|
+
SchemaFieldType["Number"] = "number";
|
|
32
|
+
SchemaFieldType["Bigint"] = "bigint";
|
|
33
|
+
SchemaFieldType["String"] = "string";
|
|
34
|
+
SchemaFieldType["Geometry"] = "geometry";
|
|
35
|
+
SchemaFieldType["Timestamp"] = "timestamp";
|
|
36
|
+
SchemaFieldType["Object"] = "object";
|
|
37
|
+
SchemaFieldType["Boolean"] = "boolean";
|
|
38
|
+
SchemaFieldType["Variant"] = "variant";
|
|
39
|
+
SchemaFieldType["Unknown"] = "unknown";
|
|
40
|
+
})(SchemaFieldType || (SchemaFieldType = {}));
|
|
41
|
+
|
|
28
42
|
export function encodeParameter(name, value) {
|
|
29
43
|
return "".concat(name, "=").concat(encodeURIComponent(value));
|
|
30
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-api-common.
|
|
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","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;AAQP,OAAO,MAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;AASP,OAAO,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BL,EAAAA,OAAO,EAAE,SAFiB;AAG1BM,EAAAA,MAAM,EAAE;AAHkB,CAArB;AAOP,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>;\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 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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultClassicCredentials, getDefaultCredentials } from '../config';
|
|
1
|
+
import { defaultClassicCredentials, defaultCloudNativeCredentials, getDefaultCredentials } from '../config';
|
|
2
2
|
import { API_VERSIONS, DEFAULT_MAPS_URL_FORMAT, DEFAULT_REGION_COMPONENT_IN_URL, DEFAULT_USER_COMPONENT_IN_URL, encodeParameter, MAP_TYPES } from './maps-api-common';
|
|
3
3
|
export const CONNECTIONS = {
|
|
4
4
|
BIGQUERY: 'bigquery',
|
|
@@ -12,18 +12,14 @@ export async function getDataV2({
|
|
|
12
12
|
credentials
|
|
13
13
|
}) {
|
|
14
14
|
const defaultCredentials = getDefaultCredentials();
|
|
15
|
-
const apiVersion = credentials
|
|
16
|
-
const localCreds = { ...defaultClassicCredentials,
|
|
15
|
+
const apiVersion = (credentials === null || credentials === void 0 ? void 0 : credentials.apiVersion) || defaultCredentials.apiVersion;
|
|
16
|
+
const localCreds = { ...(apiVersion === API_VERSIONS.V3 ? defaultCloudNativeCredentials : defaultClassicCredentials),
|
|
17
|
+
mapsUrl: DEFAULT_MAPS_URL_FORMAT[apiVersion],
|
|
17
18
|
...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
|
|
18
19
|
...credentials
|
|
19
20
|
};
|
|
20
|
-
|
|
21
|
-
if (!localCreds.mapsUrl) {
|
|
22
|
-
localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
21
|
let url;
|
|
26
|
-
const connection = type ===
|
|
22
|
+
const connection = type === MAP_TYPES.TILESET ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
|
|
27
23
|
|
|
28
24
|
switch (apiVersion) {
|
|
29
25
|
case API_VERSIONS.V1:
|
|
@@ -104,7 +100,7 @@ function dealWithError({
|
|
|
104
100
|
|
|
105
101
|
function initURLParameters(credentials) {
|
|
106
102
|
const encodedApiKey = encodeParameter('api_key', credentials.apiKey);
|
|
107
|
-
const encodedClient = encodeParameter('client',
|
|
103
|
+
const encodedClient = encodeParameter('client', 'deck-gl-carto');
|
|
108
104
|
return [encodedApiKey, encodedClient];
|
|
109
105
|
}
|
|
110
106
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-client.js"],"names":["defaultClassicCredentials","getDefaultCredentials","API_VERSIONS","DEFAULT_MAPS_URL_FORMAT","DEFAULT_REGION_COMPONENT_IN_URL","DEFAULT_USER_COMPONENT_IN_URL","encodeParameter","MAP_TYPES","CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","mapsUrl","url","connection","V1","mapConfig","createMapConfig","buildURLMapsAPIv1","layergroup","request","metadata","tilejson","vector","V2","buildURLMapsAPIv2","Error","response","fetch","headers","Accept","error","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","QUERY","replace","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {defaultClassicCredentials, getDefaultCredentials} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({type, source, credentials}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = (credentials && credentials.apiVersion) || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...defaultClassicCredentials,\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n };\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];\n }\n\n let url;\n\n const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It should be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}) {\n let response;\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, json, credentials}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${credentials.username}') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${credentials.apiKey}') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials) {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', `deck-gl-carto`);\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({mapConfig, credentials}) {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({connection, type, source, credentials}) {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/maps-client.ts"],"names":["defaultClassicCredentials","defaultCloudNativeCredentials","getDefaultCredentials","API_VERSIONS","DEFAULT_MAPS_URL_FORMAT","DEFAULT_REGION_COMPONENT_IN_URL","DEFAULT_USER_COMPONENT_IN_URL","encodeParameter","MAP_TYPES","CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","V3","mapsUrl","url","connection","TILESET","V1","mapConfig","createMapConfig","buildURLMapsAPIv1","layergroup","request","metadata","tilejson","vector","V2","buildURLMapsAPIv2","Error","response","fetch","headers","Accept","error","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","QUERY","replace","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {\n ClassicCredentials,\n defaultClassicCredentials,\n defaultCloudNativeCredentials,\n getDefaultCredentials\n} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MapType,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({\n type,\n source,\n credentials\n}: {\n type: MapType;\n source: string;\n credentials?: Partial<ClassicCredentials>;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = credentials?.apiVersion || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(apiVersion === API_VERSIONS.V3 ? defaultCloudNativeCredentials : defaultClassicCredentials),\n mapsUrl: DEFAULT_MAPS_URL_FORMAT[apiVersion],\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n } as unknown as Required<ClassicCredentials>;\n\n let url: string;\n\n const connection = type === MAP_TYPES.TILESET ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It should be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}: {url: string; credentials: ClassicCredentials}) {\n let response;\n\n try {\n /* global fetch */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({\n response,\n json,\n credentials\n}: {\n response: Response;\n json: any;\n credentials: ClassicCredentials;\n}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${credentials.username}') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${credentials.apiKey}') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials: ClassicCredentials): string[] {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', 'deck-gl-carto');\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({\n mapConfig,\n credentials\n}: {\n mapConfig: unknown;\n credentials: Required<ClassicCredentials>;\n}): string {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({\n connection,\n type,\n source,\n credentials\n}: {\n connection: string;\n type: MapType;\n source: string;\n credentials: Required<ClassicCredentials>;\n}): string {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials: Required<ClassicCredentials>) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql: string) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n // eslint-disable-next-line camelcase\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}
|