@deck.gl/mapbox 8.7.0-alpha.3 → 8.7.0-beta.1

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 CHANGED
@@ -91,32 +91,28 @@ return /******/ (function(modules) { // webpackBootstrap
91
91
  /******/
92
92
  /******/
93
93
  /******/ // Load entry module and return exports
94
- /******/ return __webpack_require__(__webpack_require__.s = "./bundle.js");
94
+ /******/ return __webpack_require__(__webpack_require__.s = "./bundle.ts");
95
95
  /******/ })
96
96
  /************************************************************************/
97
97
  /******/ ({
98
98
 
99
- /***/ "./bundle.js":
99
+ /***/ "./bundle.ts":
100
100
  /*!*******************!*\
101
- !*** ./bundle.js ***!
101
+ !*** ./bundle.ts ***!
102
102
  \*******************/
103
103
  /*! no static exports found */
104
104
  /***/ (function(module, exports, __webpack_require__) {
105
105
 
106
- const MapboxUtils = __webpack_require__(/*! ./src */ "./src/index.js");
106
+ const MapboxUtils = __webpack_require__(/*! ./src */ "./src/index.ts");
107
107
 
108
- /* global window, global */
109
- const _global = typeof window === 'undefined' ? global : window;
110
- const deck = _global.deck || {};
108
+ const deck = globalThis.deck || {}; // Check if peer dependencies are included
111
109
 
112
- // Check if peer dependencies are included
113
110
  if (!deck.Layer) {
114
111
  throw new Error('@deck.gl/core is not found');
115
112
  }
116
113
 
117
114
  module.exports = Object.assign(deck, MapboxUtils);
118
115
 
119
-
120
116
  /***/ }),
121
117
 
122
118
  /***/ "./src/deck-utils.js":
@@ -136,19 +132,22 @@ __webpack_require__.r(__webpack_exports__);
136
132
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
137
133
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
138
134
 
139
-
140
- function getDeckInstance({map, gl, deck}) {
135
+ function getDeckInstance({
136
+ map,
137
+ gl,
138
+ deck
139
+ }) {
141
140
  // Only create one deck instance per context
142
141
  if (map.__deck) {
143
142
  return map.__deck;
144
143
  }
145
144
 
146
145
  const customRender = deck && deck.props._customRender;
147
-
148
146
  const deckProps = {
149
147
  useDevicePixels: true,
150
148
  _customRender: () => {
151
149
  map.triggerRepaint();
150
+
152
151
  if (customRender) {
153
152
  // customRender may be subscribed by DeckGL React component to update child props
154
153
  // make sure it is still called
@@ -180,60 +179,65 @@ function getDeckInstance({map, gl, deck}) {
180
179
  touchAction: 'unset',
181
180
  viewState: getViewState(map)
182
181
  });
183
- deck = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["Deck"](deckProps);
184
-
185
- // If deck is externally provided (React use case), we use deck's viewState to
182
+ deck = new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["Deck"](deckProps); // If deck is externally provided (React use case), we use deck's viewState to
186
183
  // drive the map.
187
184
  // Otherwise (pure JS use case), we use the map's viewState to drive deck.
185
+
188
186
  map.on('move', () => onMapMove(deck, map));
189
187
  map.on('remove', () => {
190
188
  deck.finalize();
191
189
  map.__deck = null;
192
190
  });
193
191
  }
192
+
194
193
  deck.props.userData.mapboxVersion = getMapboxVersion(map);
195
194
  map.__deck = deck;
196
195
  map.on('render', () => {
197
196
  if (deck.layerManager) afterRender(deck, map);
198
197
  });
199
-
200
198
  return deck;
201
199
  }
202
-
203
200
  function addLayer(deck, layer) {
204
201
  deck.props.userData.mapboxLayers.add(layer);
205
202
  updateLayers(deck);
206
203
  }
207
-
208
204
  function removeLayer(deck, layer) {
209
205
  deck.props.userData.mapboxLayers.delete(layer);
210
206
  updateLayers(deck);
211
207
  }
212
-
213
208
  function updateLayer(deck, layer) {
214
209
  updateLayers(deck);
215
210
  }
216
-
217
211
  function drawLayer(deck, map, layer) {
218
- let {currentViewport} = deck.props.userData;
212
+ let {
213
+ currentViewport
214
+ } = deck.props.userData;
215
+
219
216
  if (!currentViewport) {
220
217
  // This is the first layer drawn in this render cycle.
221
218
  // Generate viewport from the current map state.
222
219
  currentViewport = getViewport(deck, map, true);
223
220
  deck.props.userData.currentViewport = currentViewport;
224
221
  }
222
+
225
223
  if (!deck.layerManager) {
226
224
  return;
227
225
  }
226
+
228
227
  deck._drawLayers('mapbox-repaint', {
229
228
  viewports: [currentViewport],
230
- layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,
229
+ layerFilter: ({
230
+ layer: deckLayer
231
+ }) => layer.id === deckLayer.id,
231
232
  clearCanvas: false
232
233
  });
233
234
  }
234
235
 
235
236
  function getViewState(map) {
236
- const {lng, lat} = map.getCenter();
237
+ const {
238
+ lng,
239
+ lat
240
+ } = map.getCenter();
237
241
  return {
238
242
  longitude: lng,
239
243
  latitude: lat,
@@ -247,71 +251,74 @@ function getMapboxVersion(map) {
247
251
  // parse mapbox version string
248
252
  let major = 0;
249
253
  let minor = 0;
254
+
250
255
  if (map.version) {
251
256
  [major, minor] = map.version.split('.').slice(0, 2).map(Number);
252
257
  }
253
- return {major, minor};
258
+
259
+ return {
260
+ major,
261
+ minor
262
+ };
254
263
  }
255
264
 
256
265
  function getViewport(deck, map, useMapboxProjection = true) {
257
- const {mapboxVersion} = deck.props.userData;
258
-
259
- return new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["WebMercatorViewport"](
260
- Object.assign(
261
- {
262
- x: 0,
263
- y: 0,
264
- width: deck.width,
265
- height: deck.height,
266
- repeat: true
267
- },
268
- getViewState(map),
269
- useMapboxProjection
270
- ? {
271
- // match mapbox's projection matrix
272
- // A change of near plane was made in 1.3.0
273
- // https://github.com/mapbox/mapbox-gl-js/pull/8502
274
- nearZMultiplier:
275
- (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2
276
- ? 0.02
277
- : 1 / (deck.height || 1)
278
- }
279
- : {
280
- // use deck.gl's own default
281
- nearZMultiplier: 0.1
282
- }
283
- )
284
- );
266
+ const {
267
+ mapboxVersion
268
+ } = deck.props.userData;
269
+ return new _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["WebMercatorViewport"](Object.assign({
270
+ x: 0,
271
+ y: 0,
272
+ width: deck.width,
273
+ height: deck.height,
274
+ repeat: true
275
+ }, getViewState(map), useMapboxProjection ? {
276
+ // match mapbox's projection matrix
277
+ // A change of near plane was made in 1.3.0
278
+ // https://github.com/mapbox/mapbox-gl-js/pull/8502
279
+ nearZMultiplier: mapboxVersion.major === 1 && mapboxVersion.minor >= 3 || mapboxVersion.major >= 2 ? 0.02 : 1 / (deck.height || 1)
280
+ } : {
281
+ // use deck.gl's own default
282
+ nearZMultiplier: 0.1
283
+ }));
285
284
  }
286
285
 
287
286
  function afterRender(deck, map) {
288
- const {mapboxLayers, isExternal} = deck.props.userData;
287
+ const {
288
+ mapboxLayers,
289
+ isExternal
290
+ } = deck.props.userData;
289
291
 
290
292
  if (isExternal) {
291
293
  // Draw non-Mapbox layers
292
294
  const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);
293
295
  const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));
296
+
294
297
  if (hasNonMapboxLayers) {
295
298
  deck._drawLayers('mapbox-repaint', {
296
299
  viewports: [getViewport(deck, map, false)],
297
- layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),
300
+ layerFilter: ({
301
+ layer
302
+ }) => !mapboxLayerIds.includes(layer.id),
298
303
  clearCanvas: false
299
304
  });
300
305
  }
301
- }
306
+ } // End of render cycle, clear generated viewport
307
+
302
308
 
303
- // End of render cycle, clear generated viewport
304
309
  deck.props.userData.currentViewport = null;
305
310
  }
306
311
 
307
312
  function onMapMove(deck, map) {
308
313
  deck.setProps({
309
314
  viewState: getViewState(map)
310
- });
311
- // Camera changed, will trigger a map repaint right after this
315
+ }); // Camera changed, will trigger a map repaint right after this
312
316
  // Clear any change flag triggered by setting viewState so that deck does not request
313
317
  // a second repaint
314
- deck.needsRedraw({clearRedrawFlags: true});
318
+
319
+ deck.needsRedraw({
320
+ clearRedrawFlags: true
321
+ });
315
322
  }
316
323
 
317
324
  function updateLayers(deck) {
@@ -320,20 +327,24 @@ function updateLayers(deck) {
320
327
  }
321
328
 
322
329
  const layers = [];
330
+ let layerIndex = 0;
323
331
  deck.props.userData.mapboxLayers.forEach(deckLayer => {
324
332
  const LayerType = deckLayer.props.type;
325
- const layer = new LayerType(deckLayer.props);
333
+ const layer = new LayerType(deckLayer.props, {
334
+ _offset: layerIndex++
335
+ });
326
336
  layers.push(layer);
327
337
  });
328
- deck.setProps({layers});
338
+ deck.setProps({
339
+ layers
340
+ });
329
341
  }
330
342
 
331
-
332
343
  /***/ }),
333
344
 
334
- /***/ "./src/index.js":
345
+ /***/ "./src/index.ts":
335
346
  /*!**********************!*\
336
- !*** ./src/index.js ***!
347
+ !*** ./src/index.ts ***!
337
348
  \**********************/
338
349
  /*! exports provided: MapboxLayer */
339
350
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -345,7 +356,6 @@ __webpack_require__.r(__webpack_exports__);
345
356
 
346
357
 
347
358
 
348
-
349
359
  /***/ }),
350
360
 
351
361
  /***/ "./src/mapbox-layer.js":
@@ -360,7 +370,6 @@ __webpack_require__.r(__webpack_exports__);
360
370
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MapboxLayer; });
361
371
  /* harmony import */ var _deck_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deck-utils */ "./src/deck-utils.js");
362
372
 
363
-
364
373
  class MapboxLayer {
365
374
  /* eslint-disable no-this-before-super */
366
375
  constructor(props) {
@@ -375,12 +384,16 @@ class MapboxLayer {
375
384
  this.deck = null;
376
385
  this.props = props;
377
386
  }
378
-
379
387
  /* Mapbox custom layer methods */
380
388
 
389
+
381
390
  onAdd(map, gl) {
382
391
  this.map = map;
383
- this.deck = Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["getDeckInstance"])({map, gl, deck: this.props.deck});
392
+ this.deck = Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["getDeckInstance"])({
393
+ map,
394
+ gl,
395
+ deck: this.props.deck
396
+ });
384
397
  Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["addLayer"])(this.deck, this);
385
398
  }
386
399
 
@@ -390,8 +403,10 @@ class MapboxLayer {
390
403
 
391
404
  setProps(props) {
392
405
  // id cannot be changed
393
- Object.assign(this.props, props, {id: this.id});
394
- // safe guard in case setProps is called before onAdd
406
+ Object.assign(this.props, props, {
407
+ id: this.id
408
+ }); // safe guard in case setProps is called before onAdd
409
+
395
410
  if (this.deck) {
396
411
  Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["updateLayer"])(this.deck, this);
397
412
  }
@@ -400,8 +415,8 @@ class MapboxLayer {
400
415
  render(gl, matrix) {
401
416
  Object(_deck_utils__WEBPACK_IMPORTED_MODULE_0__["drawLayer"])(this.deck, this.map, this);
402
417
  }
403
- }
404
418
 
419
+ }
405
420
 
406
421
  /***/ }),
407
422
 
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -9,21 +11,23 @@ exports.removeLayer = removeLayer;
9
11
  exports.updateLayer = updateLayer;
10
12
  exports.drawLayer = drawLayer;
11
13
 
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
12
16
  var _core = require("@deck.gl/core");
13
17
 
14
- function getDeckInstance({
15
- map,
16
- gl,
17
- deck
18
- }) {
18
+ function getDeckInstance(_ref) {
19
+ var map = _ref.map,
20
+ gl = _ref.gl,
21
+ deck = _ref.deck;
22
+
19
23
  if (map.__deck) {
20
24
  return map.__deck;
21
25
  }
22
26
 
23
- const customRender = deck && deck.props._customRender;
24
- const deckProps = {
27
+ var customRender = deck && deck.props._customRender;
28
+ var deckProps = {
25
29
  useDevicePixels: true,
26
- _customRender: () => {
30
+ _customRender: function _customRender() {
27
31
  map.triggerRepaint();
28
32
 
29
33
  if (customRender) {
@@ -47,15 +51,17 @@ function getDeckInstance({
47
51
  deck.props.userData.isExternal = true;
48
52
  } else {
49
53
  Object.assign(deckProps, {
50
- gl,
54
+ gl: gl,
51
55
  width: false,
52
56
  height: false,
53
57
  touchAction: 'unset',
54
58
  viewState: getViewState(map)
55
59
  });
56
60
  deck = new _core.Deck(deckProps);
57
- map.on('move', () => onMapMove(deck, map));
58
- map.on('remove', () => {
61
+ map.on('move', function () {
62
+ return onMapMove(deck, map);
63
+ });
64
+ map.on('remove', function () {
59
65
  deck.finalize();
60
66
  map.__deck = null;
61
67
  });
@@ -63,7 +69,7 @@ function getDeckInstance({
63
69
 
64
70
  deck.props.userData.mapboxVersion = getMapboxVersion(map);
65
71
  map.__deck = deck;
66
- map.on('render', () => {
72
+ map.on('render', function () {
67
73
  if (deck.layerManager) afterRender(deck, map);
68
74
  });
69
75
  return deck;
@@ -84,9 +90,7 @@ function updateLayer(deck, layer) {
84
90
  }
85
91
 
86
92
  function drawLayer(deck, map, layer) {
87
- let {
88
- currentViewport
89
- } = deck.props.userData;
93
+ var currentViewport = deck.props.userData.currentViewport;
90
94
 
91
95
  if (!currentViewport) {
92
96
  currentViewport = getViewport(deck, map, true);
@@ -99,18 +103,19 @@ function drawLayer(deck, map, layer) {
99
103
 
100
104
  deck._drawLayers('mapbox-repaint', {
101
105
  viewports: [currentViewport],
102
- layerFilter: ({
103
- layer: deckLayer
104
- }) => layer.id === deckLayer.id,
106
+ layerFilter: function layerFilter(_ref2) {
107
+ var deckLayer = _ref2.layer;
108
+ return layer.id === deckLayer.id;
109
+ },
105
110
  clearCanvas: false
106
111
  });
107
112
  }
108
113
 
109
114
  function getViewState(map) {
110
- const {
111
- lng,
112
- lat
113
- } = map.getCenter();
115
+ var _map$getCenter = map.getCenter(),
116
+ lng = _map$getCenter.lng,
117
+ lat = _map$getCenter.lat;
118
+
114
119
  return {
115
120
  longitude: lng,
116
121
  latitude: lat,
@@ -121,23 +126,27 @@ function getViewState(map) {
121
126
  }
122
127
 
123
128
  function getMapboxVersion(map) {
124
- let major = 0;
125
- let minor = 0;
129
+ var major = 0;
130
+ var minor = 0;
126
131
 
127
132
  if (map.version) {
128
- [major, minor] = map.version.split('.').slice(0, 2).map(Number);
133
+ var _map$version$split$sl = map.version.split('.').slice(0, 2).map(Number);
134
+
135
+ var _map$version$split$sl2 = (0, _slicedToArray2.default)(_map$version$split$sl, 2);
136
+
137
+ major = _map$version$split$sl2[0];
138
+ minor = _map$version$split$sl2[1];
129
139
  }
130
140
 
131
141
  return {
132
- major,
133
- minor
142
+ major: major,
143
+ minor: minor
134
144
  };
135
145
  }
136
146
 
137
- function getViewport(deck, map, useMapboxProjection = true) {
138
- const {
139
- mapboxVersion
140
- } = deck.props.userData;
147
+ function getViewport(deck, map) {
148
+ var useMapboxProjection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
149
+ var mapboxVersion = deck.props.userData.mapboxVersion;
141
150
  return new _core.WebMercatorViewport(Object.assign({
142
151
  x: 0,
143
152
  y: 0,
@@ -152,21 +161,25 @@ function getViewport(deck, map, useMapboxProjection = true) {
152
161
  }
153
162
 
154
163
  function afterRender(deck, map) {
155
- const {
156
- mapboxLayers,
157
- isExternal
158
- } = deck.props.userData;
164
+ var _deck$props$userData = deck.props.userData,
165
+ mapboxLayers = _deck$props$userData.mapboxLayers,
166
+ isExternal = _deck$props$userData.isExternal;
159
167
 
160
168
  if (isExternal) {
161
- const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);
162
- const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));
169
+ var mapboxLayerIds = Array.from(mapboxLayers, function (layer) {
170
+ return layer.id;
171
+ });
172
+ var hasNonMapboxLayers = deck.props.layers.some(function (layer) {
173
+ return !mapboxLayerIds.includes(layer.id);
174
+ });
163
175
 
164
176
  if (hasNonMapboxLayers) {
165
177
  deck._drawLayers('mapbox-repaint', {
166
178
  viewports: [getViewport(deck, map, false)],
167
- layerFilter: ({
168
- layer
169
- }) => !mapboxLayerIds.includes(layer.id),
179
+ layerFilter: function layerFilter(_ref3) {
180
+ var layer = _ref3.layer;
181
+ return !mapboxLayerIds.includes(layer.id);
182
+ },
170
183
  clearCanvas: false
171
184
  });
172
185
  }
@@ -189,14 +202,17 @@ function updateLayers(deck) {
189
202
  return;
190
203
  }
191
204
 
192
- const layers = [];
193
- deck.props.userData.mapboxLayers.forEach(deckLayer => {
194
- const LayerType = deckLayer.props.type;
195
- const layer = new LayerType(deckLayer.props);
205
+ var layers = [];
206
+ var layerIndex = 0;
207
+ deck.props.userData.mapboxLayers.forEach(function (deckLayer) {
208
+ var LayerType = deckLayer.props.type;
209
+ var layer = new LayerType(deckLayer.props, {
210
+ _offset: layerIndex++
211
+ });
196
212
  layers.push(layer);
197
213
  });
198
214
  deck.setProps({
199
- layers
215
+ layers: layers
200
216
  });
201
217
  }
202
218
  //# sourceMappingURL=deck-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deck-utils.js"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","Deck","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","repeat","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, true);\n deck.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version.split('.').slice(0, 2).map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: true\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\n}\n\nfunction afterRender(deck, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props);\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
1
+ {"version":3,"sources":["../../src/deck-utils.js"],"names":["getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","Deck","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","getCenter","lng","lat","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","WebMercatorViewport","x","y","repeat","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, true);\n deck.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version.split('.').slice(0, 2).map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: true\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\n}\n\nfunction afterRender(deck, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
package/dist/es5/index.js CHANGED
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  Object.defineProperty(exports, "MapboxLayer", {
9
9
  enumerable: true,
10
- get: function () {
10
+ get: function get() {
11
11
  return _mapboxLayer.default;
12
12
  }
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export {default as MapboxLayer} from './mapbox-layer';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export {default as MapboxLayer} from './mapbox-layer';\n"],"file":"index.js"}
@@ -1,14 +1,22 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
8
14
  var _deckUtils = require("./deck-utils");
9
15
 
10
- class MapboxLayer {
11
- constructor(props) {
16
+ var MapboxLayer = function () {
17
+ function MapboxLayer(props) {
18
+ (0, _classCallCheck2.default)(this, MapboxLayer);
19
+
12
20
  if (!props.id) {
13
21
  throw new Error('Layer must have an unique id');
14
22
  }
@@ -21,35 +29,41 @@ class MapboxLayer {
21
29
  this.props = props;
22
30
  }
23
31
 
24
- onAdd(map, gl) {
25
- this.map = map;
26
- this.deck = (0, _deckUtils.getDeckInstance)({
27
- map,
28
- gl,
29
- deck: this.props.deck
30
- });
31
- (0, _deckUtils.addLayer)(this.deck, this);
32
- }
33
-
34
- onRemove() {
35
- (0, _deckUtils.removeLayer)(this.deck, this);
36
- }
37
-
38
- setProps(props) {
39
- Object.assign(this.props, props, {
40
- id: this.id
41
- });
42
-
43
- if (this.deck) {
44
- (0, _deckUtils.updateLayer)(this.deck, this);
32
+ (0, _createClass2.default)(MapboxLayer, [{
33
+ key: "onAdd",
34
+ value: function onAdd(map, gl) {
35
+ this.map = map;
36
+ this.deck = (0, _deckUtils.getDeckInstance)({
37
+ map: map,
38
+ gl: gl,
39
+ deck: this.props.deck
40
+ });
41
+ (0, _deckUtils.addLayer)(this.deck, this);
45
42
  }
46
- }
47
-
48
- render(gl, matrix) {
49
- (0, _deckUtils.drawLayer)(this.deck, this.map, this);
50
- }
43
+ }, {
44
+ key: "onRemove",
45
+ value: function onRemove() {
46
+ (0, _deckUtils.removeLayer)(this.deck, this);
47
+ }
48
+ }, {
49
+ key: "setProps",
50
+ value: function setProps(props) {
51
+ Object.assign(this.props, props, {
52
+ id: this.id
53
+ });
51
54
 
52
- }
55
+ if (this.deck) {
56
+ (0, _deckUtils.updateLayer)(this.deck, this);
57
+ }
58
+ }
59
+ }, {
60
+ key: "render",
61
+ value: function render(gl, matrix) {
62
+ (0, _deckUtils.drawLayer)(this.deck, this.map, this);
63
+ }
64
+ }]);
65
+ return MapboxLayer;
66
+ }();
53
67
 
54
68
  exports.default = MapboxLayer;
55
69
  //# sourceMappingURL=mapbox-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mapbox-layer.js"],"names":["MapboxLayer","constructor","props","id","Error","type","renderingMode","map","deck","onAdd","gl","onRemove","setProps","Object","assign","render","matrix"],"mappings":";;;;;;;AAAA;;AAEe,MAAMA,WAAN,CAAkB;AAE/BC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,QAAI,CAACA,KAAK,CAACC,EAAX,EAAe;AACb,YAAM,IAAIC,KAAJ,CAAU,8BAAV,CAAN;AACD;;AAED,SAAKD,EAAL,GAAUD,KAAK,CAACC,EAAhB;AACA,SAAKE,IAAL,GAAY,QAAZ;AACA,SAAKC,aAAL,GAAqBJ,KAAK,CAACI,aAAN,IAAuB,IAA5C;AACA,SAAKC,GAAL,GAAW,IAAX;AACA,SAAKC,IAAL,GAAY,IAAZ;AACA,SAAKN,KAAL,GAAaA,KAAb;AACD;;AAIDO,EAAAA,KAAK,CAACF,GAAD,EAAMG,EAAN,EAAU;AACb,SAAKH,GAAL,GAAWA,GAAX;AACA,SAAKC,IAAL,GAAY,gCAAgB;AAACD,MAAAA,GAAD;AAAMG,MAAAA,EAAN;AAAUF,MAAAA,IAAI,EAAE,KAAKN,KAAL,CAAWM;AAA3B,KAAhB,CAAZ;AACA,6BAAS,KAAKA,IAAd,EAAoB,IAApB;AACD;;AAEDG,EAAAA,QAAQ,GAAG;AACT,gCAAY,KAAKH,IAAjB,EAAuB,IAAvB;AACD;;AAEDI,EAAAA,QAAQ,CAACV,KAAD,EAAQ;AAEdW,IAAAA,MAAM,CAACC,MAAP,CAAc,KAAKZ,KAAnB,EAA0BA,KAA1B,EAAiC;AAACC,MAAAA,EAAE,EAAE,KAAKA;AAAV,KAAjC;;AAEA,QAAI,KAAKK,IAAT,EAAe;AACb,kCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;AACF;;AAEDO,EAAAA,MAAM,CAACL,EAAD,EAAKM,MAAL,EAAa;AACjB,8BAAU,KAAKR,IAAf,EAAqB,KAAKD,GAA1B,EAA+B,IAA/B;AACD;;AAtC8B","sourcesContent":["import {getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer} from './deck-utils';\n\nexport default class MapboxLayer {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n\n /* Mapbox custom layer methods */\n\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({map, gl, deck: this.props.deck});\n addLayer(this.deck, this);\n }\n\n onRemove() {\n removeLayer(this.deck, this);\n }\n\n setProps(props) {\n // id cannot be changed\n Object.assign(this.props, props, {id: this.id});\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n\n render(gl, matrix) {\n drawLayer(this.deck, this.map, this);\n }\n}\n"],"file":"mapbox-layer.js"}
1
+ {"version":3,"sources":["../../src/mapbox-layer.js"],"names":["MapboxLayer","props","id","Error","type","renderingMode","map","deck","gl","Object","assign","matrix"],"mappings":";;;;;;;;;;;;;AAAA;;IAEqBA,W;AAEnB,uBAAYC,KAAZ,EAAmB;AAAA;;AACjB,QAAI,CAACA,KAAK,CAACC,EAAX,EAAe;AACb,YAAM,IAAIC,KAAJ,CAAU,8BAAV,CAAN;AACD;;AAED,SAAKD,EAAL,GAAUD,KAAK,CAACC,EAAhB;AACA,SAAKE,IAAL,GAAY,QAAZ;AACA,SAAKC,aAAL,GAAqBJ,KAAK,CAACI,aAAN,IAAuB,IAA5C;AACA,SAAKC,GAAL,GAAW,IAAX;AACA,SAAKC,IAAL,GAAY,IAAZ;AACA,SAAKN,KAAL,GAAaA,KAAb;AACD;;;;WAID,eAAMK,GAAN,EAAWE,EAAX,EAAe;AACb,WAAKF,GAAL,GAAWA,GAAX;AACA,WAAKC,IAAL,GAAY,gCAAgB;AAACD,QAAAA,GAAG,EAAHA,GAAD;AAAME,QAAAA,EAAE,EAAFA,EAAN;AAAUD,QAAAA,IAAI,EAAE,KAAKN,KAAL,CAAWM;AAA3B,OAAhB,CAAZ;AACA,+BAAS,KAAKA,IAAd,EAAoB,IAApB;AACD;;;WAED,oBAAW;AACT,kCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;;;WAED,kBAASN,KAAT,EAAgB;AAEdQ,MAAAA,MAAM,CAACC,MAAP,CAAc,KAAKT,KAAnB,EAA0BA,KAA1B,EAAiC;AAACC,QAAAA,EAAE,EAAE,KAAKA;AAAV,OAAjC;;AAEA,UAAI,KAAKK,IAAT,EAAe;AACb,oCAAY,KAAKA,IAAjB,EAAuB,IAAvB;AACD;AACF;;;WAED,gBAAOC,EAAP,EAAWG,MAAX,EAAmB;AACjB,gCAAU,KAAKJ,IAAf,EAAqB,KAAKD,GAA1B,EAA+B,IAA/B;AACD","sourcesContent":["import {getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer} from './deck-utils';\n\nexport default class MapboxLayer {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n\n /* Mapbox custom layer methods */\n\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({map, gl, deck: this.props.deck});\n addLayer(this.deck, this);\n }\n\n onRemove() {\n removeLayer(this.deck, this);\n }\n\n setProps(props) {\n // id cannot be changed\n Object.assign(this.props, props, {id: this.id});\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n\n render(gl, matrix) {\n drawLayer(this.deck, this.map, this);\n }\n}\n"],"file":"mapbox-layer.js"}
@@ -174,9 +174,12 @@ function updateLayers(deck) {
174
174
  }
175
175
 
176
176
  const layers = [];
177
+ let layerIndex = 0;
177
178
  deck.props.userData.mapboxLayers.forEach(deckLayer => {
178
179
  const LayerType = deckLayer.props.type;
179
- const layer = new LayerType(deckLayer.props);
180
+ const layer = new LayerType(deckLayer.props, {
181
+ _offset: layerIndex++
182
+ });
180
183
  layers.push(layer);
181
184
  });
182
185
  deck.setProps({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deck-utils.js"],"names":["Deck","WebMercatorViewport","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","x","y","repeat","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","forEach","LayerType","type","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, true);\n deck.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version.split('.').slice(0, 2).map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: true\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\n}\n\nfunction afterRender(deck, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props);\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
1
+ {"version":3,"sources":["../../src/deck-utils.js"],"names":["Deck","WebMercatorViewport","getDeckInstance","map","gl","deck","__deck","customRender","props","_customRender","deckProps","useDevicePixels","triggerRepaint","parameters","depthMask","depthTest","blendFunc","blendEquation","userData","isExternal","mapboxLayers","Set","setProps","Object","assign","width","height","touchAction","viewState","getViewState","on","onMapMove","finalize","mapboxVersion","getMapboxVersion","layerManager","afterRender","addLayer","layer","add","updateLayers","removeLayer","delete","updateLayer","drawLayer","currentViewport","getViewport","_drawLayers","viewports","layerFilter","deckLayer","id","clearCanvas","lng","lat","getCenter","longitude","latitude","zoom","getZoom","bearing","getBearing","pitch","getPitch","major","minor","version","split","slice","Number","useMapboxProjection","x","y","repeat","nearZMultiplier","mapboxLayerIds","Array","from","hasNonMapboxLayers","layers","some","includes","needsRedraw","clearRedrawFlags","layerIndex","forEach","LayerType","type","_offset","push"],"mappings":"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","sourcesContent":["import {Deck, WebMercatorViewport} from '@deck.gl/core';\n\nexport function getDeckInstance({map, gl, deck}) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n\n const customRender = deck && deck.props._customRender;\n\n const deckProps = {\n useDevicePixels: true,\n _customRender: () => {\n map.triggerRepaint();\n if (customRender) {\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n customRender();\n }\n },\n // TODO: import these defaults from a single source of truth\n parameters: {\n depthMask: true,\n depthTest: true,\n blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],\n blendEquation: gl.FUNC_ADD\n },\n userData: {\n isExternal: false,\n mapboxLayers: new Set()\n }\n };\n\n if (deck) {\n deck.setProps(deckProps);\n deck.props.userData.isExternal = true;\n } else {\n // Using external gl context - do not set css size\n Object.assign(deckProps, {\n gl,\n width: false,\n height: false,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n deck = new Deck(deckProps);\n\n // If deck is externally provided (React use case), we use deck's viewState to\n // drive the map.\n // Otherwise (pure JS use case), we use the map's viewState to drive deck.\n map.on('move', () => onMapMove(deck, map));\n map.on('remove', () => {\n deck.finalize();\n map.__deck = null;\n });\n }\n deck.props.userData.mapboxVersion = getMapboxVersion(map);\n map.__deck = deck;\n map.on('render', () => {\n if (deck.layerManager) afterRender(deck, map);\n });\n\n return deck;\n}\n\nexport function addLayer(deck, layer) {\n deck.props.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\n\nexport function removeLayer(deck, layer) {\n deck.props.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\n\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\n\nexport function drawLayer(deck, map, layer) {\n let {currentViewport} = deck.props.userData;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, true);\n deck.props.userData.currentViewport = currentViewport;\n }\n if (!deck.layerManager) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: ({layer: deckLayer}) => layer.id === deckLayer.id,\n clearCanvas: false\n });\n}\n\nfunction getViewState(map) {\n const {lng, lat} = map.getCenter();\n return {\n longitude: lng,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch()\n };\n}\n\nfunction getMapboxVersion(map) {\n // parse mapbox version string\n let major = 0;\n let minor = 0;\n if (map.version) {\n [major, minor] = map.version.split('.').slice(0, 2).map(Number);\n }\n return {major, minor};\n}\n\nfunction getViewport(deck, map, useMapboxProjection = true) {\n const {mapboxVersion} = deck.props.userData;\n\n return new WebMercatorViewport(\n Object.assign(\n {\n x: 0,\n y: 0,\n width: deck.width,\n height: deck.height,\n repeat: true\n },\n getViewState(map),\n useMapboxProjection\n ? {\n // match mapbox's projection matrix\n // A change of near plane was made in 1.3.0\n // https://github.com/mapbox/mapbox-gl-js/pull/8502\n nearZMultiplier:\n (mapboxVersion.major === 1 && mapboxVersion.minor >= 3) || mapboxVersion.major >= 2\n ? 0.02\n : 1 / (deck.height || 1)\n }\n : {\n // use deck.gl's own default\n nearZMultiplier: 0.1\n }\n )\n );\n}\n\nfunction afterRender(deck, map) {\n const {mapboxLayers, isExternal} = deck.props.userData;\n\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const hasNonMapboxLayers = deck.props.layers.some(layer => !mapboxLayerIds.includes(layer.id));\n if (hasNonMapboxLayers) {\n deck._drawLayers('mapbox-repaint', {\n viewports: [getViewport(deck, map, false)],\n layerFilter: ({layer}) => !mapboxLayerIds.includes(layer.id),\n clearCanvas: false\n });\n }\n }\n\n // End of render cycle, clear generated viewport\n deck.props.userData.currentViewport = null;\n}\n\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({clearRedrawFlags: true});\n}\n\nfunction updateLayers(deck) {\n if (deck.props.userData.isExternal) {\n return;\n }\n\n const layers = [];\n let layerIndex = 0;\n deck.props.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});\n layers.push(layer);\n });\n deck.setProps({layers});\n}\n"],"file":"deck-utils.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":["default","MapboxLayer"],"mappings":"AAAA,SAAQA,OAAO,IAAIC,WAAnB,QAAqC,gBAArC","sourcesContent":["export {default as MapboxLayer} from './mapbox-layer';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["default","MapboxLayer"],"mappings":"AAAA,SAAQA,OAAO,IAAIC,WAAnB,QAAqC,gBAArC","sourcesContent":["export {default as MapboxLayer} from './mapbox-layer';\n"],"file":"index.js"}
package/dist.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("deck")):"function"==typeof define&&define.amd?define(["deck"],r):"object"==typeof exports?exports.deck=r(require("deck")):e.deck=r(e.deck)}(window,(function(e){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=4)}([function(r,t){r.exports=e},function(e,r){e.exports=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}},function(e,r){function t(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}},function(e,r,t){var n=t(5),o=t(6),i=t(7);e.exports=function(e,r){return n(e)||o(e,r)||i()}},function(e,r,t){var n=t(8),o=("undefined"==typeof window?global:window).deck||{};if(!o.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(o,n)},function(e,r){e.exports=function(e){if(Array.isArray(e))return e}},function(e,r){e.exports=function(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return t}}},function(e,r){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,r,t){"use strict";t.r(r);var n=t(1),o=t.n(n),i=t(2),a=t.n(i),u=t(3),s=t.n(u),c=t(0);function p(e){var r=e.map,t=e.gl,n=e.deck;if(r.__deck)return r.__deck;var o=n&&n.props._customRender,i={useDevicePixels:!0,_customRender:function(){r.triggerRepaint(),o&&o()},parameters:{depthMask:!0,depthTest:!0,blendFunc:[770,771,1,771],blendEquation:32774},userData:{isExternal:!1,mapboxLayers:new Set}};return n?(n.setProps(i),n.props.userData.isExternal=!0):(Object.assign(i,{gl:t,width:!1,height:!1,touchAction:"unset",viewState:l(r)}),n=new c.Deck(i),r.on("move",(function(){return function(e,r){e.setProps({viewState:l(r)}),e.needsRedraw({clearRedrawFlags:!0})}(n,r)})),r.on("remove",(function(){n.finalize(),r.__deck=null}))),n.props.userData.mapboxVersion=function(e){var r=0,t=0;if(e.version){var n=e.version.split(".").slice(0,2).map(Number),o=s()(n,2);r=o[0],t=o[1]}return{major:r,minor:t}}(r),r.__deck=n,r.on("render",(function(){n.layerManager&&function(e,r){var t=e.props.userData,n=t.mapboxLayers;if(t.isExternal){var o=Array.from(n,(function(e){return e.id}));e.props.layers.some((function(e){return!o.includes(e.id)}))&&e._drawLayers("mapbox-repaint",{viewports:[d(e,r,!1)],layerFilter:function(e){var r=e.layer;return!o.includes(r.id)},clearCanvas:!1})}e.props.userData.currentViewport=null}(n,r)})),n}function l(e){var r=e.getCenter();return{longitude:r.lng,latitude:r.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}function d(e,r){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.props.userData.mapboxVersion;return new c.WebMercatorViewport(Object.assign({x:0,y:0,width:e.width,height:e.height,repeat:!0},l(r),t?{nearZMultiplier:1===n.major&&n.minor>=3||n.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function f(e){if(!e.props.userData.isExternal){var r=[];e.props.userData.mapboxLayers.forEach((function(e){var t=new(0,e.props.type)(e.props);r.push(t)})),e.setProps({layers:r})}}var y=function(){function e(r){if(o()(this,e),!r.id)throw new Error("Layer must have an unique id");this.id=r.id,this.type="custom",this.renderingMode=r.renderingMode||"3d",this.map=null,this.deck=null,this.props=r}return a()(e,[{key:"onAdd",value:function(e,r){var t,n;this.map=e,this.deck=p({map:e,gl:r,deck:this.props.deck}),t=this.deck,n=this,t.props.userData.mapboxLayers.add(n),f(t)}},{key:"onRemove",value:function(){var e,r;e=this.deck,r=this,e.props.userData.mapboxLayers.delete(r),f(e)}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&f(this.deck)}},{key:"render",value:function(e,r){var t,n,o,i;t=this.deck,n=this.map,o=this,(i=t.props.userData.currentViewport)||(i=d(t,n,!0),t.props.userData.currentViewport=i),t.layerManager&&t._drawLayers("mapbox-repaint",{viewports:[i],layerFilter:function(e){var r=e.layer;return o.id===r.id},clearCanvas:!1})}}]),e}();t.d(r,"MapboxLayer",(function(){return y}))}])}));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("deck")):"function"==typeof define&&define.amd?define(["deck"],r):"object"==typeof exports?exports.deck=r(require("deck")):e.deck=r(e.deck)}(window,(function(e){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=4)}([function(r,t){r.exports=e},function(e,r){e.exports=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}},function(e,r){function t(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}},function(e,r,t){var n=t(5),o=t(6),i=t(7);e.exports=function(e,r){return n(e)||o(e,r)||i()}},function(e,r,t){var n=t(8),o=globalThis.deck||{};if(!o.Layer)throw new Error("@deck.gl/core is not found");e.exports=Object.assign(o,n)},function(e,r){e.exports=function(e){if(Array.isArray(e))return e}},function(e,r){e.exports=function(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return t}}},function(e,r){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,r,t){"use strict";t.r(r);var n=t(1),o=t.n(n),i=t(2),a=t.n(i),u=t(3),s=t.n(u),c=t(0);function p(e){var r=e.map,t=e.gl,n=e.deck;if(r.__deck)return r.__deck;var o=n&&n.props._customRender,i={useDevicePixels:!0,_customRender:function(){r.triggerRepaint(),o&&o()},parameters:{depthMask:!0,depthTest:!0,blendFunc:[770,771,1,771],blendEquation:32774},userData:{isExternal:!1,mapboxLayers:new Set}};return n?(n.setProps(i),n.props.userData.isExternal=!0):(Object.assign(i,{gl:t,width:!1,height:!1,touchAction:"unset",viewState:l(r)}),n=new c.Deck(i),r.on("move",(function(){return function(e,r){e.setProps({viewState:l(r)}),e.needsRedraw({clearRedrawFlags:!0})}(n,r)})),r.on("remove",(function(){n.finalize(),r.__deck=null}))),n.props.userData.mapboxVersion=function(e){var r=0,t=0;if(e.version){var n=e.version.split(".").slice(0,2).map(Number),o=s()(n,2);r=o[0],t=o[1]}return{major:r,minor:t}}(r),r.__deck=n,r.on("render",(function(){n.layerManager&&function(e,r){var t=e.props.userData,n=t.mapboxLayers;if(t.isExternal){var o=Array.from(n,(function(e){return e.id}));e.props.layers.some((function(e){return!o.includes(e.id)}))&&e._drawLayers("mapbox-repaint",{viewports:[f(e,r,!1)],layerFilter:function(e){var r=e.layer;return!o.includes(r.id)},clearCanvas:!1})}e.props.userData.currentViewport=null}(n,r)})),n}function l(e){var r=e.getCenter();return{longitude:r.lng,latitude:r.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}function f(e,r){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.props.userData.mapboxVersion;return new c.WebMercatorViewport(Object.assign({x:0,y:0,width:e.width,height:e.height,repeat:!0},l(r),t?{nearZMultiplier:1===n.major&&n.minor>=3||n.major>=2?.02:1/(e.height||1)}:{nearZMultiplier:.1}))}function d(e){if(!e.props.userData.isExternal){var r=[],t=0;e.props.userData.mapboxLayers.forEach((function(e){var n=new(0,e.props.type)(e.props,{_offset:t++});r.push(n)})),e.setProps({layers:r})}}var y=function(){function e(r){if(o()(this,e),!r.id)throw new Error("Layer must have an unique id");this.id=r.id,this.type="custom",this.renderingMode=r.renderingMode||"3d",this.map=null,this.deck=null,this.props=r}return a()(e,[{key:"onAdd",value:function(e,r){var t,n;this.map=e,this.deck=p({map:e,gl:r,deck:this.props.deck}),t=this.deck,n=this,t.props.userData.mapboxLayers.add(n),d(t)}},{key:"onRemove",value:function(){var e,r;e=this.deck,r=this,e.props.userData.mapboxLayers.delete(r),d(e)}},{key:"setProps",value:function(e){Object.assign(this.props,e,{id:this.id}),this.deck&&d(this.deck)}},{key:"render",value:function(e,r){var t,n,o,i;t=this.deck,n=this.map,o=this,(i=t.props.userData.currentViewport)||(i=f(t,n,!0),t.props.userData.currentViewport=i),t.layerManager&&t._drawLayers("mapbox-repaint",{viewports:[i],layerFilter:function(e){var r=e.layer;return o.id===r.id},clearCanvas:!1})}}]),e}();t.d(r,"MapboxLayer",(function(){return y}))}])}));
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@deck.gl/mapbox",
3
3
  "description": "Use deck.gl layers as custom mapbox-gl-js layers",
4
4
  "license": "MIT",
5
- "version": "8.7.0-alpha.3",
5
+ "version": "8.7.0-beta.1",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -31,5 +31,5 @@
31
31
  "peerDependencies": {
32
32
  "@deck.gl/core": "^8.0.0"
33
33
  },
34
- "gitHead": "03fd8c4caae96d66bd651cb76e11a6d05acf8f8c"
34
+ "gitHead": "0297ca9d2c85d980b075e2af4cfbeb75e31db55a"
35
35
  }
package/src/deck-utils.js CHANGED
@@ -183,9 +183,10 @@ function updateLayers(deck) {
183
183
  }
184
184
 
185
185
  const layers = [];
186
+ let layerIndex = 0;
186
187
  deck.props.userData.mapboxLayers.forEach(deckLayer => {
187
188
  const LayerType = deckLayer.props.type;
188
- const layer = new LayerType(deckLayer.props);
189
+ const layer = new LayerType(deckLayer.props, {_offset: layerIndex++});
189
190
  layers.push(layer);
190
191
  });
191
192
  deck.setProps({layers});
File without changes