@deck.gl/geo-layers 8.6.0-beta.1 → 8.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/dist.dev.js +1449 -1449
  2. package/dist/es5/great-circle-layer/great-circle-layer.js +1 -26
  3. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  4. package/dist/es5/h3-layers/h3-cluster-layer.js +87 -149
  5. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  6. package/dist/es5/h3-layers/h3-hexagon-layer.js +226 -321
  7. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  8. package/dist/es5/index.js +9 -9
  9. package/dist/es5/mesh-layer/mesh-layer.js +125 -151
  10. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  11. package/dist/es5/mvt-layer/coordinate-transform.js +19 -45
  12. package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
  13. package/dist/es5/mvt-layer/find-index-binary.js +26 -45
  14. package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
  15. package/dist/es5/mvt-layer/mvt-layer.js +282 -374
  16. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  17. package/dist/es5/s2-layer/s2-geometry.js +32 -43
  18. package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-layer.js +69 -104
  20. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  21. package/dist/es5/s2-layer/s2-utils.js +28 -27
  22. package/dist/es5/s2-layer/s2-utils.js.map +1 -1
  23. package/dist/es5/terrain-layer/terrain-layer.js +208 -254
  24. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  25. package/dist/es5/tile-3d-layer/tile-3d-layer.js +329 -382
  26. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  27. package/dist/es5/tile-layer/tile-2d-header.js +119 -183
  28. package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
  29. package/dist/es5/tile-layer/tile-2d-traversal.js +115 -178
  30. package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
  31. package/dist/es5/tile-layer/tile-layer.js +214 -258
  32. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  33. package/dist/es5/tile-layer/tileset-2d.js +290 -435
  34. package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
  35. package/dist/es5/tile-layer/utils.js +61 -110
  36. package/dist/es5/tile-layer/utils.js.map +1 -1
  37. package/dist/es5/trips-layer/trips-layer.js +44 -81
  38. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  39. package/dist.min.js +1 -1
  40. package/package.json +2 -2
@@ -2,25 +2,11 @@
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
9
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
10
  var _core = require("@deck.gl/core");
25
11
 
26
12
  var _layers = require("@deck.gl/layers");
@@ -29,22 +15,12 @@ var _tileset2d = _interopRequireWildcard(require("./tileset-2d"));
29
15
 
30
16
  var _utils = require("./utils");
31
17
 
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
33
-
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- var defaultProps = {
18
+ const defaultProps = {
41
19
  data: [],
42
20
  dataComparator: _utils.urlType.equals,
43
21
  renderSubLayers: {
44
22
  type: 'function',
45
- value: function value(props) {
46
- return new _layers.GeoJsonLayer(props);
47
- },
23
+ value: props => new _layers.GeoJsonLayer(props),
48
24
  compare: false
49
25
  },
50
26
  getTileData: {
@@ -61,19 +37,17 @@ var defaultProps = {
61
37
  },
62
38
  onTileLoad: {
63
39
  type: 'function',
64
- value: function value(tile) {},
40
+ value: tile => {},
65
41
  compare: false
66
42
  },
67
43
  onTileUnload: {
68
44
  type: 'function',
69
- value: function value(tile) {},
45
+ value: tile => {},
70
46
  compare: false
71
47
  },
72
48
  onTileError: {
73
49
  type: 'function',
74
- value: function value(err) {
75
- return console.error(err);
76
- },
50
+ value: err => console.error(err),
77
51
  compare: false
78
52
  },
79
53
  extent: {
@@ -93,256 +67,238 @@ var defaultProps = {
93
67
  zoomOffset: 0
94
68
  };
95
69
 
96
- var TileLayer = function (_CompositeLayer) {
97
- (0, _inherits2.default)(TileLayer, _CompositeLayer);
70
+ class TileLayer extends _core.CompositeLayer {
71
+ initializeState() {
72
+ this.state = {
73
+ tileset: null,
74
+ isLoaded: false
75
+ };
76
+ }
98
77
 
99
- var _super = _createSuper(TileLayer);
78
+ finalizeState() {
79
+ var _this$state$tileset;
100
80
 
101
- function TileLayer() {
102
- (0, _classCallCheck2.default)(this, TileLayer);
103
- return _super.apply(this, arguments);
81
+ (_this$state$tileset = this.state.tileset) === null || _this$state$tileset === void 0 ? void 0 : _this$state$tileset.finalize();
104
82
  }
105
83
 
106
- (0, _createClass2.default)(TileLayer, [{
107
- key: "initializeState",
108
- value: function initializeState() {
109
- this.state = {
110
- tileset: null,
111
- isLoaded: false
112
- };
113
- }
114
- }, {
115
- key: "finalizeState",
116
- value: function finalizeState() {
117
- var _this$state$tileset;
84
+ get isLoaded() {
85
+ const {
86
+ tileset
87
+ } = this.state;
88
+ return tileset.selectedTiles.every(tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded));
89
+ }
118
90
 
119
- (_this$state$tileset = this.state.tileset) === null || _this$state$tileset === void 0 ? void 0 : _this$state$tileset.finalize();
120
- }
121
- }, {
122
- key: "shouldUpdateState",
123
- value: function shouldUpdateState(_ref) {
124
- var changeFlags = _ref.changeFlags;
125
- return changeFlags.somethingChanged;
126
- }
127
- }, {
128
- key: "updateState",
129
- value: function updateState(_ref2) {
130
- var props = _ref2.props,
131
- changeFlags = _ref2.changeFlags;
132
- var tileset = this.state.tileset;
133
- var propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
134
- var dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
135
-
136
- if (!tileset) {
137
- tileset = new _tileset2d.default(this._getTilesetOptions(props));
138
- this.setState({
139
- tileset: tileset
91
+ shouldUpdateState({
92
+ changeFlags
93
+ }) {
94
+ return changeFlags.somethingChanged;
95
+ }
96
+
97
+ updateState({
98
+ props,
99
+ changeFlags
100
+ }) {
101
+ let {
102
+ tileset
103
+ } = this.state;
104
+ const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
105
+ const dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
106
+
107
+ if (!tileset) {
108
+ tileset = new _tileset2d.default(this._getTilesetOptions(props));
109
+ this.setState({
110
+ tileset
111
+ });
112
+ } else if (propsChanged) {
113
+ tileset.setOptions(this._getTilesetOptions(props));
114
+
115
+ if (dataChanged) {
116
+ tileset.reloadAll();
117
+ } else {
118
+ this.state.tileset.tiles.forEach(tile => {
119
+ tile.layers = null;
140
120
  });
141
- } else if (propsChanged) {
142
- tileset.setOptions(this._getTilesetOptions(props));
143
-
144
- if (dataChanged) {
145
- tileset.reloadAll();
146
- } else {
147
- this.state.tileset.tiles.forEach(function (tile) {
148
- tile.layers = null;
149
- });
150
- }
151
121
  }
152
-
153
- this._updateTileset();
154
- }
155
- }, {
156
- key: "_getTilesetOptions",
157
- value: function _getTilesetOptions(props) {
158
- var tileSize = props.tileSize,
159
- maxCacheSize = props.maxCacheSize,
160
- maxCacheByteSize = props.maxCacheByteSize,
161
- refinementStrategy = props.refinementStrategy,
162
- extent = props.extent,
163
- maxZoom = props.maxZoom,
164
- minZoom = props.minZoom,
165
- maxRequests = props.maxRequests,
166
- zoomOffset = props.zoomOffset;
167
- return {
168
- maxCacheSize: maxCacheSize,
169
- maxCacheByteSize: maxCacheByteSize,
170
- maxZoom: maxZoom,
171
- minZoom: minZoom,
172
- tileSize: tileSize,
173
- refinementStrategy: refinementStrategy,
174
- extent: extent,
175
- maxRequests: maxRequests,
176
- zoomOffset: zoomOffset,
177
- getTileData: this.getTileData.bind(this),
178
- onTileLoad: this._onTileLoad.bind(this),
179
- onTileError: this._onTileError.bind(this),
180
- onTileUnload: this._onTileUnload.bind(this)
181
- };
182
122
  }
183
- }, {
184
- key: "_updateTileset",
185
- value: function _updateTileset() {
186
- var tileset = this.state.tileset;
187
- var _this$props = this.props,
188
- zRange = _this$props.zRange,
189
- modelMatrix = _this$props.modelMatrix;
190
- var frameNumber = tileset.update(this.context.viewport, {
191
- zRange: zRange,
192
- modelMatrix: modelMatrix
193
- });
194
- var isLoaded = tileset.isLoaded;
195
- var loadingStateChanged = this.state.isLoaded !== isLoaded;
196
- var tilesetChanged = this.state.frameNumber !== frameNumber;
197
123
 
198
- if (isLoaded && (loadingStateChanged || tilesetChanged)) {
199
- this._onViewportLoad();
200
- }
124
+ this._updateTileset();
125
+ }
201
126
 
202
- if (tilesetChanged) {
203
- this.setState({
204
- frameNumber: frameNumber
205
- });
206
- }
127
+ _getTilesetOptions(props) {
128
+ const {
129
+ tileSize,
130
+ maxCacheSize,
131
+ maxCacheByteSize,
132
+ refinementStrategy,
133
+ extent,
134
+ maxZoom,
135
+ minZoom,
136
+ maxRequests,
137
+ zoomOffset
138
+ } = props;
139
+ return {
140
+ maxCacheSize,
141
+ maxCacheByteSize,
142
+ maxZoom,
143
+ minZoom,
144
+ tileSize,
145
+ refinementStrategy,
146
+ extent,
147
+ maxRequests,
148
+ zoomOffset,
149
+ getTileData: this.getTileData.bind(this),
150
+ onTileLoad: this._onTileLoad.bind(this),
151
+ onTileError: this._onTileError.bind(this),
152
+ onTileUnload: this._onTileUnload.bind(this)
153
+ };
154
+ }
207
155
 
208
- this.state.isLoaded = isLoaded;
209
- }
210
- }, {
211
- key: "_onViewportLoad",
212
- value: function _onViewportLoad() {
213
- var tileset = this.state.tileset;
214
- var onViewportLoad = this.props.onViewportLoad;
215
-
216
- if (onViewportLoad) {
217
- onViewportLoad(tileset.selectedTiles);
218
- }
219
- }
220
- }, {
221
- key: "_onTileLoad",
222
- value: function _onTileLoad(tile) {
223
- this.props.onTileLoad(tile);
224
- tile.layers = null;
225
-
226
- if (tile.isVisible) {
227
- this.setNeedsUpdate();
228
- }
229
- }
230
- }, {
231
- key: "_onTileError",
232
- value: function _onTileError(error, tile) {
233
- this.props.onTileError(error);
234
- tile.layers = null;
235
-
236
- if (tile.isVisible) {
237
- this.setNeedsUpdate();
238
- }
156
+ _updateTileset() {
157
+ const {
158
+ tileset
159
+ } = this.state;
160
+ const {
161
+ zRange,
162
+ modelMatrix
163
+ } = this.props;
164
+ const frameNumber = tileset.update(this.context.viewport, {
165
+ zRange,
166
+ modelMatrix
167
+ });
168
+ const {
169
+ isLoaded
170
+ } = tileset;
171
+ const loadingStateChanged = this.state.isLoaded !== isLoaded;
172
+ const tilesetChanged = this.state.frameNumber !== frameNumber;
173
+
174
+ if (isLoaded && (loadingStateChanged || tilesetChanged)) {
175
+ this._onViewportLoad();
239
176
  }
240
- }, {
241
- key: "_onTileUnload",
242
- value: function _onTileUnload(tile) {
243
- this.props.onTileUnload(tile);
177
+
178
+ if (tilesetChanged) {
179
+ this.setState({
180
+ frameNumber
181
+ });
244
182
  }
245
- }, {
246
- key: "getTileData",
247
- value: function getTileData(tile) {
248
- var _this$props2 = this.props,
249
- data = _this$props2.data,
250
- getTileData = _this$props2.getTileData,
251
- fetch = _this$props2.fetch;
252
- var signal = tile.signal;
253
- tile.url = (0, _utils.getURLFromTemplate)(data, tile);
254
-
255
- if (getTileData) {
256
- return getTileData(tile);
257
- }
258
183
 
259
- if (tile.url) {
260
- return fetch(tile.url, {
261
- propName: 'data',
262
- layer: this,
263
- signal: signal
264
- });
265
- }
184
+ this.state.isLoaded = isLoaded;
185
+ }
266
186
 
267
- return null;
268
- }
269
- }, {
270
- key: "renderSubLayers",
271
- value: function renderSubLayers(props) {
272
- return this.props.renderSubLayers(props);
187
+ _onViewportLoad() {
188
+ const {
189
+ tileset
190
+ } = this.state;
191
+ const {
192
+ onViewportLoad
193
+ } = this.props;
194
+
195
+ if (onViewportLoad) {
196
+ onViewportLoad(tileset.selectedTiles);
273
197
  }
274
- }, {
275
- key: "getHighlightedObjectIndex",
276
- value: function getHighlightedObjectIndex() {
277
- return -1;
198
+ }
199
+
200
+ _onTileLoad(tile) {
201
+ this.props.onTileLoad(tile);
202
+ tile.layers = null;
203
+
204
+ if (tile.isVisible) {
205
+ this.setNeedsUpdate();
278
206
  }
279
- }, {
280
- key: "getPickingInfo",
281
- value: function getPickingInfo(_ref3) {
282
- var info = _ref3.info,
283
- sourceLayer = _ref3.sourceLayer;
284
- info.tile = sourceLayer.props.tile;
285
- return info;
207
+ }
208
+
209
+ _onTileError(error, tile) {
210
+ this.props.onTileError(error);
211
+ tile.layers = null;
212
+
213
+ if (tile.isVisible) {
214
+ this.setNeedsUpdate();
286
215
  }
287
- }, {
288
- key: "_updateAutoHighlight",
289
- value: function _updateAutoHighlight(info) {
290
- if (info.sourceLayer) {
291
- info.sourceLayer.updateAutoHighlight(info);
292
- }
216
+ }
217
+
218
+ _onTileUnload(tile) {
219
+ this.props.onTileUnload(tile);
220
+ }
221
+
222
+ getTileData(tile) {
223
+ const {
224
+ data,
225
+ getTileData,
226
+ fetch
227
+ } = this.props;
228
+ const {
229
+ signal
230
+ } = tile;
231
+ tile.url = (0, _utils.getURLFromTemplate)(data, tile);
232
+
233
+ if (getTileData) {
234
+ return getTileData(tile);
293
235
  }
294
- }, {
295
- key: "renderLayers",
296
- value: function renderLayers() {
297
- var _this = this;
298
-
299
- return this.state.tileset.tiles.map(function (tile) {
300
- var highlightedObjectIndex = _this.getHighlightedObjectIndex(tile);
301
-
302
- if (!tile.isLoaded && !tile.content) {} else if (!tile.layers) {
303
- var layers = _this.renderSubLayers(_objectSpread(_objectSpread({}, _this.props), {}, {
304
- id: "".concat(_this.id, "-").concat(tile.x, "-").concat(tile.y, "-").concat(tile.z),
305
- data: tile.content,
306
- _offset: 0,
307
- tile: tile
308
- }));
309
-
310
- tile.layers = (0, _core._flatten)(layers, Boolean).map(function (layer) {
311
- return layer.clone({
312
- tile: tile,
313
- highlightedObjectIndex: highlightedObjectIndex
314
- });
315
- });
316
- } else if (tile.layers[0] && tile.layers[0].props.highlightedObjectIndex !== highlightedObjectIndex) {
317
- tile.layers = tile.layers.map(function (layer) {
318
- return layer.clone({
319
- highlightedObjectIndex: highlightedObjectIndex
320
- });
321
- });
322
- }
323
-
324
- return tile.layers;
236
+
237
+ if (tile.url) {
238
+ return fetch(tile.url, {
239
+ propName: 'data',
240
+ layer: this,
241
+ signal
325
242
  });
326
243
  }
327
- }, {
328
- key: "filterSubLayer",
329
- value: function filterSubLayer(_ref4) {
330
- var layer = _ref4.layer;
331
- return layer.props.tile.isVisible;
244
+
245
+ return null;
246
+ }
247
+
248
+ renderSubLayers(props) {
249
+ return this.props.renderSubLayers(props);
250
+ }
251
+
252
+ getHighlightedObjectIndex() {
253
+ return -1;
254
+ }
255
+
256
+ getPickingInfo({
257
+ info,
258
+ sourceLayer
259
+ }) {
260
+ info.tile = sourceLayer.props.tile;
261
+ return info;
262
+ }
263
+
264
+ _updateAutoHighlight(info) {
265
+ if (info.sourceLayer) {
266
+ info.sourceLayer.updateAutoHighlight(info);
332
267
  }
333
- }, {
334
- key: "isLoaded",
335
- get: function get() {
336
- var tileset = this.state.tileset;
337
- return tileset.selectedTiles.every(function (tile) {
338
- return tile.isLoaded && tile.layers && tile.layers.every(function (layer) {
339
- return layer.isLoaded;
268
+ }
269
+
270
+ renderLayers() {
271
+ return this.state.tileset.tiles.map(tile => {
272
+ const highlightedObjectIndex = this.getHighlightedObjectIndex(tile);
273
+
274
+ if (!tile.isLoaded && !tile.content) {} else if (!tile.layers) {
275
+ const layers = this.renderSubLayers({ ...this.props,
276
+ id: "".concat(this.id, "-").concat(tile.x, "-").concat(tile.y, "-").concat(tile.z),
277
+ data: tile.content,
278
+ _offset: 0,
279
+ tile
340
280
  });
341
- });
342
- }
343
- }]);
344
- return TileLayer;
345
- }(_core.CompositeLayer);
281
+ tile.layers = (0, _core._flatten)(layers, Boolean).map(layer => layer.clone({
282
+ tile,
283
+ highlightedObjectIndex
284
+ }));
285
+ } else if (tile.layers[0] && tile.layers[0].props.highlightedObjectIndex !== highlightedObjectIndex) {
286
+ tile.layers = tile.layers.map(layer => layer.clone({
287
+ highlightedObjectIndex
288
+ }));
289
+ }
290
+
291
+ return tile.layers;
292
+ });
293
+ }
294
+
295
+ filterSubLayer({
296
+ layer
297
+ }) {
298
+ return layer.props.tile.isVisible;
299
+ }
300
+
301
+ }
346
302
 
347
303
  exports.default = TileLayer;
348
304
  TileLayer.layerName = 'TileLayer';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile-layer/tile-layer.js"],"names":["defaultProps","data","dataComparator","urlType","equals","renderSubLayers","type","value","props","GeoJsonLayer","compare","getTileData","optional","onViewportLoad","onTileLoad","tile","onTileUnload","onTileError","err","console","error","extent","tileSize","maxZoom","minZoom","maxCacheSize","maxCacheByteSize","refinementStrategy","STRATEGY_DEFAULT","zRange","maxRequests","zoomOffset","TileLayer","state","tileset","isLoaded","finalize","changeFlags","somethingChanged","propsChanged","propsOrDataChanged","updateTriggersChanged","dataChanged","all","Tileset2D","_getTilesetOptions","setState","setOptions","reloadAll","tiles","forEach","layers","_updateTileset","bind","_onTileLoad","_onTileError","_onTileUnload","modelMatrix","frameNumber","update","context","viewport","loadingStateChanged","tilesetChanged","_onViewportLoad","selectedTiles","isVisible","setNeedsUpdate","fetch","signal","url","propName","layer","info","sourceLayer","updateAutoHighlight","map","highlightedObjectIndex","getHighlightedObjectIndex","content","id","x","y","z","_offset","Boolean","clone","every","CompositeLayer","layerName"],"mappings":"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","sourcesContent":["import {CompositeLayer, _flatten as flatten} from '@deck.gl/core';\nimport {GeoJsonLayer} from '@deck.gl/layers';\n\nimport Tileset2D, {STRATEGY_DEFAULT} from './tileset-2d';\nimport {urlType, getURLFromTemplate} from './utils';\n\nconst defaultProps = {\n data: [],\n dataComparator: urlType.equals,\n renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props), compare: false},\n getTileData: {type: 'function', optional: true, value: null, compare: false},\n // TODO - change to onViewportLoad to align with Tile3DLayer\n onViewportLoad: {type: 'function', optional: true, value: null, compare: false},\n onTileLoad: {type: 'function', value: tile => {}, compare: false},\n onTileUnload: {type: 'function', value: tile => {}, compare: false},\n // eslint-disable-next-line\n onTileError: {type: 'function', value: err => console.error(err), compare: false},\n extent: {type: 'array', optional: true, value: null, compare: true},\n tileSize: 512,\n maxZoom: null,\n minZoom: 0,\n maxCacheSize: null,\n maxCacheByteSize: null,\n refinementStrategy: STRATEGY_DEFAULT,\n zRange: null,\n maxRequests: 6,\n zoomOffset: 0\n};\n\nexport default class TileLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n tileset: null,\n isLoaded: false\n };\n }\n\n finalizeState() {\n this.state.tileset?.finalize();\n }\n\n get isLoaded() {\n const {tileset} = this.state;\n return tileset.selectedTiles.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n );\n }\n\n shouldUpdateState({changeFlags}) {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, changeFlags}) {\n let {tileset} = this.state;\n const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;\n const dataChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData));\n\n if (!tileset) {\n tileset = new Tileset2D(this._getTilesetOptions(props));\n this.setState({tileset});\n } else if (propsChanged) {\n tileset.setOptions(this._getTilesetOptions(props));\n\n if (dataChanged) {\n // reload all tiles\n // use cached layers until new content is loaded\n tileset.reloadAll();\n } else {\n // some render options changed, regenerate sub layers now\n this.state.tileset.tiles.forEach(tile => {\n tile.layers = null;\n });\n }\n }\n\n this._updateTileset();\n }\n\n _getTilesetOptions(props) {\n const {\n tileSize,\n maxCacheSize,\n maxCacheByteSize,\n refinementStrategy,\n extent,\n maxZoom,\n minZoom,\n maxRequests,\n zoomOffset\n } = props;\n\n return {\n maxCacheSize,\n maxCacheByteSize,\n maxZoom,\n minZoom,\n tileSize,\n refinementStrategy,\n extent,\n maxRequests,\n zoomOffset,\n\n getTileData: this.getTileData.bind(this),\n onTileLoad: this._onTileLoad.bind(this),\n onTileError: this._onTileError.bind(this),\n onTileUnload: this._onTileUnload.bind(this)\n };\n }\n\n _updateTileset() {\n const {tileset} = this.state;\n const {zRange, modelMatrix} = this.props;\n const frameNumber = tileset.update(this.context.viewport, {zRange, modelMatrix});\n const {isLoaded} = tileset;\n\n const loadingStateChanged = this.state.isLoaded !== isLoaded;\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n\n if (isLoaded && (loadingStateChanged || tilesetChanged)) {\n this._onViewportLoad();\n }\n\n if (tilesetChanged) {\n // Save the tileset frame number - trigger a rerender\n this.setState({frameNumber});\n }\n // Save the loaded state - should not trigger a rerender\n this.state.isLoaded = isLoaded;\n }\n\n _onViewportLoad() {\n const {tileset} = this.state;\n const {onViewportLoad} = this.props;\n\n if (onViewportLoad) {\n onViewportLoad(tileset.selectedTiles);\n }\n }\n\n _onTileLoad(tile) {\n this.props.onTileLoad(tile);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileError(error, tile) {\n this.props.onTileError(error);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileUnload(tile) {\n this.props.onTileUnload(tile);\n }\n\n // Methods for subclass to override\n\n getTileData(tile) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url = getURLFromTemplate(data, tile);\n\n if (getTileData) {\n return getTileData(tile);\n }\n if (tile.url) {\n return fetch(tile.url, {propName: 'data', layer: this, signal});\n }\n return null;\n }\n\n renderSubLayers(props) {\n return this.props.renderSubLayers(props);\n }\n\n getHighlightedObjectIndex() {\n return -1;\n }\n\n getPickingInfo({info, sourceLayer}) {\n info.tile = sourceLayer.props.tile;\n return info;\n }\n\n _updateAutoHighlight(info) {\n if (info.sourceLayer) {\n info.sourceLayer.updateAutoHighlight(info);\n }\n }\n\n renderLayers() {\n return this.state.tileset.tiles.map(tile => {\n const highlightedObjectIndex = this.getHighlightedObjectIndex(tile);\n // cache the rendered layer in the tile\n if (!tile.isLoaded && !tile.content) {\n // nothing to show\n } else if (!tile.layers) {\n const layers = this.renderSubLayers({\n ...this.props,\n id: `${this.id}-${tile.x}-${tile.y}-${tile.z}`,\n data: tile.content,\n _offset: 0,\n tile\n });\n tile.layers = flatten(layers, Boolean).map(layer =>\n layer.clone({\n tile,\n highlightedObjectIndex\n })\n );\n } else if (\n tile.layers[0] &&\n tile.layers[0].props.highlightedObjectIndex !== highlightedObjectIndex\n ) {\n tile.layers = tile.layers.map(layer => layer.clone({highlightedObjectIndex}));\n }\n return tile.layers;\n });\n }\n\n filterSubLayer({layer}) {\n return layer.props.tile.isVisible;\n }\n}\n\nTileLayer.layerName = 'TileLayer';\nTileLayer.defaultProps = defaultProps;\n"],"file":"tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/tile-layer/tile-layer.js"],"names":["defaultProps","data","dataComparator","urlType","equals","renderSubLayers","type","value","props","GeoJsonLayer","compare","getTileData","optional","onViewportLoad","onTileLoad","tile","onTileUnload","onTileError","err","console","error","extent","tileSize","maxZoom","minZoom","maxCacheSize","maxCacheByteSize","refinementStrategy","STRATEGY_DEFAULT","zRange","maxRequests","zoomOffset","TileLayer","CompositeLayer","initializeState","state","tileset","isLoaded","finalizeState","finalize","selectedTiles","every","layers","layer","shouldUpdateState","changeFlags","somethingChanged","updateState","propsChanged","propsOrDataChanged","updateTriggersChanged","dataChanged","all","Tileset2D","_getTilesetOptions","setState","setOptions","reloadAll","tiles","forEach","_updateTileset","bind","_onTileLoad","_onTileError","_onTileUnload","modelMatrix","frameNumber","update","context","viewport","loadingStateChanged","tilesetChanged","_onViewportLoad","isVisible","setNeedsUpdate","fetch","signal","url","propName","getHighlightedObjectIndex","getPickingInfo","info","sourceLayer","_updateAutoHighlight","updateAutoHighlight","renderLayers","map","highlightedObjectIndex","content","id","x","y","z","_offset","Boolean","clone","filterSubLayer","layerName"],"mappings":"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","sourcesContent":["import {CompositeLayer, _flatten as flatten} from '@deck.gl/core';\nimport {GeoJsonLayer} from '@deck.gl/layers';\n\nimport Tileset2D, {STRATEGY_DEFAULT} from './tileset-2d';\nimport {urlType, getURLFromTemplate} from './utils';\n\nconst defaultProps = {\n data: [],\n dataComparator: urlType.equals,\n renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props), compare: false},\n getTileData: {type: 'function', optional: true, value: null, compare: false},\n // TODO - change to onViewportLoad to align with Tile3DLayer\n onViewportLoad: {type: 'function', optional: true, value: null, compare: false},\n onTileLoad: {type: 'function', value: tile => {}, compare: false},\n onTileUnload: {type: 'function', value: tile => {}, compare: false},\n // eslint-disable-next-line\n onTileError: {type: 'function', value: err => console.error(err), compare: false},\n extent: {type: 'array', optional: true, value: null, compare: true},\n tileSize: 512,\n maxZoom: null,\n minZoom: 0,\n maxCacheSize: null,\n maxCacheByteSize: null,\n refinementStrategy: STRATEGY_DEFAULT,\n zRange: null,\n maxRequests: 6,\n zoomOffset: 0\n};\n\nexport default class TileLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n tileset: null,\n isLoaded: false\n };\n }\n\n finalizeState() {\n this.state.tileset?.finalize();\n }\n\n get isLoaded() {\n const {tileset} = this.state;\n return tileset.selectedTiles.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n );\n }\n\n shouldUpdateState({changeFlags}) {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, changeFlags}) {\n let {tileset} = this.state;\n const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;\n const dataChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData));\n\n if (!tileset) {\n tileset = new Tileset2D(this._getTilesetOptions(props));\n this.setState({tileset});\n } else if (propsChanged) {\n tileset.setOptions(this._getTilesetOptions(props));\n\n if (dataChanged) {\n // reload all tiles\n // use cached layers until new content is loaded\n tileset.reloadAll();\n } else {\n // some render options changed, regenerate sub layers now\n this.state.tileset.tiles.forEach(tile => {\n tile.layers = null;\n });\n }\n }\n\n this._updateTileset();\n }\n\n _getTilesetOptions(props) {\n const {\n tileSize,\n maxCacheSize,\n maxCacheByteSize,\n refinementStrategy,\n extent,\n maxZoom,\n minZoom,\n maxRequests,\n zoomOffset\n } = props;\n\n return {\n maxCacheSize,\n maxCacheByteSize,\n maxZoom,\n minZoom,\n tileSize,\n refinementStrategy,\n extent,\n maxRequests,\n zoomOffset,\n\n getTileData: this.getTileData.bind(this),\n onTileLoad: this._onTileLoad.bind(this),\n onTileError: this._onTileError.bind(this),\n onTileUnload: this._onTileUnload.bind(this)\n };\n }\n\n _updateTileset() {\n const {tileset} = this.state;\n const {zRange, modelMatrix} = this.props;\n const frameNumber = tileset.update(this.context.viewport, {zRange, modelMatrix});\n const {isLoaded} = tileset;\n\n const loadingStateChanged = this.state.isLoaded !== isLoaded;\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n\n if (isLoaded && (loadingStateChanged || tilesetChanged)) {\n this._onViewportLoad();\n }\n\n if (tilesetChanged) {\n // Save the tileset frame number - trigger a rerender\n this.setState({frameNumber});\n }\n // Save the loaded state - should not trigger a rerender\n this.state.isLoaded = isLoaded;\n }\n\n _onViewportLoad() {\n const {tileset} = this.state;\n const {onViewportLoad} = this.props;\n\n if (onViewportLoad) {\n onViewportLoad(tileset.selectedTiles);\n }\n }\n\n _onTileLoad(tile) {\n this.props.onTileLoad(tile);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileError(error, tile) {\n this.props.onTileError(error);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileUnload(tile) {\n this.props.onTileUnload(tile);\n }\n\n // Methods for subclass to override\n\n getTileData(tile) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url = getURLFromTemplate(data, tile);\n\n if (getTileData) {\n return getTileData(tile);\n }\n if (tile.url) {\n return fetch(tile.url, {propName: 'data', layer: this, signal});\n }\n return null;\n }\n\n renderSubLayers(props) {\n return this.props.renderSubLayers(props);\n }\n\n getHighlightedObjectIndex() {\n return -1;\n }\n\n getPickingInfo({info, sourceLayer}) {\n info.tile = sourceLayer.props.tile;\n return info;\n }\n\n _updateAutoHighlight(info) {\n if (info.sourceLayer) {\n info.sourceLayer.updateAutoHighlight(info);\n }\n }\n\n renderLayers() {\n return this.state.tileset.tiles.map(tile => {\n const highlightedObjectIndex = this.getHighlightedObjectIndex(tile);\n // cache the rendered layer in the tile\n if (!tile.isLoaded && !tile.content) {\n // nothing to show\n } else if (!tile.layers) {\n const layers = this.renderSubLayers({\n ...this.props,\n id: `${this.id}-${tile.x}-${tile.y}-${tile.z}`,\n data: tile.content,\n _offset: 0,\n tile\n });\n tile.layers = flatten(layers, Boolean).map(layer =>\n layer.clone({\n tile,\n highlightedObjectIndex\n })\n );\n } else if (\n tile.layers[0] &&\n tile.layers[0].props.highlightedObjectIndex !== highlightedObjectIndex\n ) {\n tile.layers = tile.layers.map(layer => layer.clone({highlightedObjectIndex}));\n }\n return tile.layers;\n });\n }\n\n filterSubLayer({layer}) {\n return layer.props.tile.isVisible;\n }\n}\n\nTileLayer.layerName = 'TileLayer';\nTileLayer.defaultProps = defaultProps;\n"],"file":"tile-layer.js"}