@deck.gl/carto 8.7.0-beta.1 → 8.7.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@deck.gl/carto",
3
3
  "description": "CARTO official integration with Deck.gl. Build geospatial applications using CARTO and Deck.gl.",
4
4
  "license": "MIT",
5
- "version": "8.7.0-beta.1",
5
+ "version": "8.7.0-beta.2",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -35,7 +35,7 @@
35
35
  "@loaders.gl/loader-utils": "^3.1.5",
36
36
  "@loaders.gl/mvt": "^3.1.5",
37
37
  "@loaders.gl/tiles": "^3.1.5",
38
- "@math.gl/web-mercator": "^3.5.6",
38
+ "@math.gl/web-mercator": "^3.5.7",
39
39
  "cartocolor": "^4.0.2",
40
40
  "d3-array": "^2.8.0",
41
41
  "d3-color": "^2.0.0",
@@ -49,5 +49,5 @@
49
49
  "@deck.gl/layers": "^8.0.0",
50
50
  "@loaders.gl/core": "^3.1.5"
51
51
  },
52
- "gitHead": "0297ca9d2c85d980b075e2af4cfbeb75e31db55a"
52
+ "gitHead": "a507df6d9a5d9d9bba3a97ac93246b6ed0e5dd43"
53
53
  }
@@ -11,6 +11,7 @@ import {
11
11
  } from 'd3-scale';
12
12
  import {format as d3Format} from 'd3-format';
13
13
  import moment from 'moment-timezone';
14
+ import {log} from '@deck.gl/core';
14
15
  import {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';
15
16
  import {GeoJsonLayer} from '@deck.gl/layers';
16
17
 
@@ -62,37 +63,45 @@ function mergePropMaps(a, b) {
62
63
  return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};
63
64
  }
64
65
 
65
- export const LAYER_MAP = {
66
- point: {
67
- Layer: GeoJsonLayer,
68
- propMap: mergePropMaps(sharedPropMap, {
69
- visConfig: {outline: 'stroked'}
70
- }),
71
- defaultProps
72
- },
73
- geojson: {
74
- Layer: GeoJsonLayer,
75
- propMap: sharedPropMap,
76
- defaultProps: {...defaultProps, lineWidthScale: 2}
77
- },
78
- hexagonId: {
79
- Layer: H3HexagonLayer,
80
- propMap: mergePropMaps(sharedPropMap, {
81
- visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}
82
- }),
83
- defaultProps: {...defaultProps, getHexagon: d => d.h3}
84
- },
85
- mvt: {
86
- Layer: MVTLayer,
87
- propMap: sharedPropMap,
88
- defaultProps: {
89
- ...defaultProps,
90
- pointRadiusScale: 0.3,
91
- lineWidthScale: 2,
92
- uniqueIdProperty: 'geoid'
66
+ export function getLayer(type, config) {
67
+ const hexagonId = config.columns?.hex_id;
68
+
69
+ const layer = {
70
+ point: {
71
+ Layer: GeoJsonLayer,
72
+ propMap: mergePropMaps(sharedPropMap, {
73
+ visConfig: {outline: 'stroked'}
74
+ }),
75
+ defaultProps
76
+ },
77
+ geojson: {
78
+ Layer: GeoJsonLayer,
79
+ propMap: sharedPropMap,
80
+ defaultProps: {...defaultProps, lineWidthScale: 2}
81
+ },
82
+ hexagonId: {
83
+ Layer: H3HexagonLayer,
84
+ propMap: mergePropMaps(sharedPropMap, {
85
+ visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}
86
+ }),
87
+ defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}
88
+ },
89
+ mvt: {
90
+ Layer: MVTLayer,
91
+ propMap: sharedPropMap,
92
+ defaultProps: {
93
+ ...defaultProps,
94
+ pointRadiusScale: 0.3,
95
+ lineWidthScale: 2,
96
+ uniqueIdProperty: 'geoid'
97
+ }
93
98
  }
94
- }
95
- };
99
+ }[type];
100
+
101
+ log.assert(layer, `Unsupported layer type: ${type}`);
102
+
103
+ return layer;
104
+ }
96
105
 
97
106
  function domainFromAttribute(attribute, scaleType) {
98
107
  if (scaleType === 'ordinal' || scaleType === 'point') {
@@ -1,6 +1,6 @@
1
1
  import GL from '@luma.gl/constants';
2
2
  import {
3
- LAYER_MAP,
3
+ getLayer,
4
4
  getColorAccessor,
5
5
  getSizeAccessor,
6
6
  getTextAccessor,
@@ -24,9 +24,7 @@ export function parseMap(json) {
24
24
  mapStyle,
25
25
  layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {
26
26
  try {
27
- log.assert(type in LAYER_MAP, `Unsupported layer type: ${type}`);
28
- const {Layer, propMap, defaultProps} = LAYER_MAP[type];
29
-
27
+ const {Layer, propMap, defaultProps} = getLayer(type, config);
30
28
  const {dataId} = config;
31
29
  const dataset = datasets.find(d => d.id === dataId);
32
30
  log.assert(dataset, `No dataset matching dataId: ${dataId}`);