@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.
- package/dist/dist.dev.js +1449 -1449
- package/dist/es5/great-circle-layer/great-circle-layer.js +1 -26
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +87 -149
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +226 -321
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +9 -9
- package/dist/es5/mesh-layer/mesh-layer.js +125 -151
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +19 -45
- package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/es5/mvt-layer/find-index-binary.js +26 -45
- package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +282 -374
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-geometry.js +32 -43
- package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +69 -104
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-utils.js +28 -27
- package/dist/es5/s2-layer/s2-utils.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +208 -254
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +329 -382
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-header.js +119 -183
- package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-traversal.js +115 -178
- package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +214 -258
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tile-layer/tileset-2d.js +290 -435
- package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
- package/dist/es5/tile-layer/utils.js +61 -110
- package/dist/es5/tile-layer/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +44 -81
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist.min.js +1 -1
- 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
|
-
|
|
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:
|
|
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:
|
|
40
|
+
value: tile => {},
|
|
65
41
|
compare: false
|
|
66
42
|
},
|
|
67
43
|
onTileUnload: {
|
|
68
44
|
type: 'function',
|
|
69
|
-
value:
|
|
45
|
+
value: tile => {},
|
|
70
46
|
compare: false
|
|
71
47
|
},
|
|
72
48
|
onTileError: {
|
|
73
49
|
type: 'function',
|
|
74
|
-
value:
|
|
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
|
-
|
|
97
|
-
(
|
|
70
|
+
class TileLayer extends _core.CompositeLayer {
|
|
71
|
+
initializeState() {
|
|
72
|
+
this.state = {
|
|
73
|
+
tileset: null,
|
|
74
|
+
isLoaded: false
|
|
75
|
+
};
|
|
76
|
+
}
|
|
98
77
|
|
|
99
|
-
|
|
78
|
+
finalizeState() {
|
|
79
|
+
var _this$state$tileset;
|
|
100
80
|
|
|
101
|
-
|
|
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
|
-
(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
124
|
+
this._updateTileset();
|
|
125
|
+
}
|
|
201
126
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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
|
-
|
|
260
|
-
|
|
261
|
-
propName: 'data',
|
|
262
|
-
layer: this,
|
|
263
|
-
signal: signal
|
|
264
|
-
});
|
|
265
|
-
}
|
|
184
|
+
this.state.isLoaded = isLoaded;
|
|
185
|
+
}
|
|
266
186
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
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
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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
|
-
|
|
345
|
-
}(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,IAAI,EAAE,EADa;AAEnBC,EAAAA,cAAc,EAAEC,eAAQC,MAFL;AAGnBC,EAAAA,eAAe,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,KAAK;AAAA,aAAI,IAAIC,oBAAJ,CAAiBD,KAAjB,CAAJ;AAAA,KAA/B;AAA4DE,IAAAA,OAAO,EAAE;AAArE,GAHE;AAInBC,EAAAA,WAAW,EAAE;AAACL,IAAAA,IAAI,EAAE,UAAP;AAAmBM,IAAAA,QAAQ,EAAE,IAA7B;AAAmCL,IAAAA,KAAK,EAAE,IAA1C;AAAgDG,IAAAA,OAAO,EAAE;AAAzD,GAJM;AAMnBG,EAAAA,cAAc,EAAE;AAACP,IAAAA,IAAI,EAAE,UAAP;AAAmBM,IAAAA,QAAQ,EAAE,IAA7B;AAAmCL,IAAAA,KAAK,EAAE,IAA1C;AAAgDG,IAAAA,OAAO,EAAE;AAAzD,GANG;AAOnBI,EAAAA,UAAU,EAAE;AAACR,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAQ,IAAI,EAAI,CAAE,CAApC;AAAsCL,IAAAA,OAAO,EAAE;AAA/C,GAPO;AAQnBM,EAAAA,YAAY,EAAE;AAACV,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAQ,IAAI,EAAI,CAAE,CAApC;AAAsCL,IAAAA,OAAO,EAAE;AAA/C,GARK;AAUnBO,EAAAA,WAAW,EAAE;AAACX,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAW,GAAG;AAAA,aAAIC,OAAO,CAACC,KAAR,CAAcF,GAAd,CAAJ;AAAA,KAA7B;AAAqDR,IAAAA,OAAO,EAAE;AAA9D,GAVM;AAWnBW,EAAAA,MAAM,EAAE;AAACf,IAAAA,IAAI,EAAE,OAAP;AAAgBM,IAAAA,QAAQ,EAAE,IAA1B;AAAgCL,IAAAA,KAAK,EAAE,IAAvC;AAA6CG,IAAAA,OAAO,EAAE;AAAtD,GAXW;AAYnBY,EAAAA,QAAQ,EAAE,GAZS;AAanBC,EAAAA,OAAO,EAAE,IAbU;AAcnBC,EAAAA,OAAO,EAAE,CAdU;AAenBC,EAAAA,YAAY,EAAE,IAfK;AAgBnBC,EAAAA,gBAAgB,EAAE,IAhBC;AAiBnBC,EAAAA,kBAAkB,EAAEC,2BAjBD;AAkBnBC,EAAAA,MAAM,EAAE,IAlBW;AAmBnBC,EAAAA,WAAW,EAAE,CAnBM;AAoBnBC,EAAAA,UAAU,EAAE;AApBO,CAArB;;IAuBqBC,S;;;;;;;;;;;;sCACD;AAChB,WAAKC,KAAL,GAAa;AACXC,QAAAA,OAAO,EAAE,IADE;AAEXC,QAAAA,QAAQ,EAAE;AAFC,OAAb;AAID;;;oCAEe;AAAA;;AACd,kCAAKF,KAAL,CAAWC,OAAX,4EAAoBE,QAApB;AACD;;;4CASgC;AAAA,UAAdC,WAAc,QAAdA,WAAc;AAC/B,aAAOA,WAAW,CAACC,gBAAnB;AACD;;;uCAEiC;AAAA,UAArB9B,KAAqB,SAArBA,KAAqB;AAAA,UAAd6B,WAAc,SAAdA,WAAc;AAAA,UAC3BH,OAD2B,GAChB,KAAKD,KADW,CAC3BC,OAD2B;AAEhC,UAAMK,YAAY,GAAGF,WAAW,CAACG,kBAAZ,IAAkCH,WAAW,CAACI,qBAAnE;AACA,UAAMC,WAAW,GACfL,WAAW,CAACK,WAAZ,IACCL,WAAW,CAACI,qBAAZ,KACEJ,WAAW,CAACI,qBAAZ,CAAkCE,GAAlC,IAAyCN,WAAW,CAACI,qBAAZ,CAAkC9B,WAD7E,CAFH;;AAKA,UAAI,CAACuB,OAAL,EAAc;AACZA,QAAAA,OAAO,GAAG,IAAIU,kBAAJ,CAAc,KAAKC,kBAAL,CAAwBrC,KAAxB,CAAd,CAAV;AACA,aAAKsC,QAAL,CAAc;AAACZ,UAAAA,OAAO,EAAPA;AAAD,SAAd;AACD,OAHD,MAGO,IAAIK,YAAJ,EAAkB;AACvBL,QAAAA,OAAO,CAACa,UAAR,CAAmB,KAAKF,kBAAL,CAAwBrC,KAAxB,CAAnB;;AAEA,YAAIkC,WAAJ,EAAiB;AAGfR,UAAAA,OAAO,CAACc,SAAR;AACD,SAJD,MAIO;AAEL,eAAKf,KAAL,CAAWC,OAAX,CAAmBe,KAAnB,CAAyBC,OAAzB,CAAiC,UAAAnC,IAAI,EAAI;AACvCA,YAAAA,IAAI,CAACoC,MAAL,GAAc,IAAd;AACD,WAFD;AAGD;AACF;;AAED,WAAKC,cAAL;AACD;;;uCAEkB5C,K,EAAO;AAAA,UAEtBc,QAFsB,GAWpBd,KAXoB,CAEtBc,QAFsB;AAAA,UAGtBG,YAHsB,GAWpBjB,KAXoB,CAGtBiB,YAHsB;AAAA,UAItBC,gBAJsB,GAWpBlB,KAXoB,CAItBkB,gBAJsB;AAAA,UAKtBC,kBALsB,GAWpBnB,KAXoB,CAKtBmB,kBALsB;AAAA,UAMtBN,MANsB,GAWpBb,KAXoB,CAMtBa,MANsB;AAAA,UAOtBE,OAPsB,GAWpBf,KAXoB,CAOtBe,OAPsB;AAAA,UAQtBC,OARsB,GAWpBhB,KAXoB,CAQtBgB,OARsB;AAAA,UAStBM,WATsB,GAWpBtB,KAXoB,CAStBsB,WATsB;AAAA,UAUtBC,UAVsB,GAWpBvB,KAXoB,CAUtBuB,UAVsB;AAaxB,aAAO;AACLN,QAAAA,YAAY,EAAZA,YADK;AAELC,QAAAA,gBAAgB,EAAhBA,gBAFK;AAGLH,QAAAA,OAAO,EAAPA,OAHK;AAILC,QAAAA,OAAO,EAAPA,OAJK;AAKLF,QAAAA,QAAQ,EAARA,QALK;AAMLK,QAAAA,kBAAkB,EAAlBA,kBANK;AAOLN,QAAAA,MAAM,EAANA,MAPK;AAQLS,QAAAA,WAAW,EAAXA,WARK;AASLC,QAAAA,UAAU,EAAVA,UATK;AAWLpB,QAAAA,WAAW,EAAE,KAAKA,WAAL,CAAiB0C,IAAjB,CAAsB,IAAtB,CAXR;AAYLvC,QAAAA,UAAU,EAAE,KAAKwC,WAAL,CAAiBD,IAAjB,CAAsB,IAAtB,CAZP;AAaLpC,QAAAA,WAAW,EAAE,KAAKsC,YAAL,CAAkBF,IAAlB,CAAuB,IAAvB,CAbR;AAcLrC,QAAAA,YAAY,EAAE,KAAKwC,aAAL,CAAmBH,IAAnB,CAAwB,IAAxB;AAdT,OAAP;AAgBD;;;qCAEgB;AAAA,UACRnB,OADQ,GACG,KAAKD,KADR,CACRC,OADQ;AAAA,wBAEe,KAAK1B,KAFpB;AAAA,UAERqB,MAFQ,eAERA,MAFQ;AAAA,UAEA4B,WAFA,eAEAA,WAFA;AAGf,UAAMC,WAAW,GAAGxB,OAAO,CAACyB,MAAR,CAAe,KAAKC,OAAL,CAAaC,QAA5B,EAAsC;AAAChC,QAAAA,MAAM,EAANA,MAAD;AAAS4B,QAAAA,WAAW,EAAXA;AAAT,OAAtC,CAApB;AAHe,UAIRtB,QAJQ,GAIID,OAJJ,CAIRC,QAJQ;AAMf,UAAM2B,mBAAmB,GAAG,KAAK7B,KAAL,CAAWE,QAAX,KAAwBA,QAApD;AACA,UAAM4B,cAAc,GAAG,KAAK9B,KAAL,CAAWyB,WAAX,KAA2BA,WAAlD;;AAEA,UAAIvB,QAAQ,KAAK2B,mBAAmB,IAAIC,cAA5B,CAAZ,EAAyD;AACvD,aAAKC,eAAL;AACD;;AAED,UAAID,cAAJ,EAAoB;AAElB,aAAKjB,QAAL,CAAc;AAACY,UAAAA,WAAW,EAAXA;AAAD,SAAd;AACD;;AAED,WAAKzB,KAAL,CAAWE,QAAX,GAAsBA,QAAtB;AACD;;;sCAEiB;AAAA,UACTD,OADS,GACE,KAAKD,KADP,CACTC,OADS;AAAA,UAETrB,cAFS,GAES,KAAKL,KAFd,CAETK,cAFS;;AAIhB,UAAIA,cAAJ,EAAoB;AAClBA,QAAAA,cAAc,CAACqB,OAAO,CAAC+B,aAAT,CAAd;AACD;AACF;;;gCAEWlD,I,EAAM;AAChB,WAAKP,KAAL,CAAWM,UAAX,CAAsBC,IAAtB;AACAA,MAAAA,IAAI,CAACoC,MAAL,GAAc,IAAd;;AAEA,UAAIpC,IAAI,CAACmD,SAAT,EAAoB;AAClB,aAAKC,cAAL;AACD;AACF;;;iCAEY/C,K,EAAOL,I,EAAM;AACxB,WAAKP,KAAL,CAAWS,WAAX,CAAuBG,KAAvB;AACAL,MAAAA,IAAI,CAACoC,MAAL,GAAc,IAAd;;AAEA,UAAIpC,IAAI,CAACmD,SAAT,EAAoB;AAClB,aAAKC,cAAL;AACD;AACF;;;kCAEapD,I,EAAM;AAClB,WAAKP,KAAL,CAAWQ,YAAX,CAAwBD,IAAxB;AACD;;;gCAIWA,I,EAAM;AAAA,yBACmB,KAAKP,KADxB;AAAA,UACTP,IADS,gBACTA,IADS;AAAA,UACHU,WADG,gBACHA,WADG;AAAA,UACUyD,KADV,gBACUA,KADV;AAAA,UAETC,MAFS,GAECtD,IAFD,CAETsD,MAFS;AAIhBtD,MAAAA,IAAI,CAACuD,GAAL,GAAW,+BAAmBrE,IAAnB,EAAyBc,IAAzB,CAAX;;AAEA,UAAIJ,WAAJ,EAAiB;AACf,eAAOA,WAAW,CAACI,IAAD,CAAlB;AACD;;AACD,UAAIA,IAAI,CAACuD,GAAT,EAAc;AACZ,eAAOF,KAAK,CAACrD,IAAI,CAACuD,GAAN,EAAW;AAACC,UAAAA,QAAQ,EAAE,MAAX;AAAmBC,UAAAA,KAAK,EAAE,IAA1B;AAAgCH,UAAAA,MAAM,EAANA;AAAhC,SAAX,CAAZ;AACD;;AACD,aAAO,IAAP;AACD;;;oCAEe7D,K,EAAO;AACrB,aAAO,KAAKA,KAAL,CAAWH,eAAX,CAA2BG,KAA3B,CAAP;AACD;;;gDAE2B;AAC1B,aAAO,CAAC,CAAR;AACD;;;0CAEmC;AAAA,UAApBiE,IAAoB,SAApBA,IAAoB;AAAA,UAAdC,WAAc,SAAdA,WAAc;AAClCD,MAAAA,IAAI,CAAC1D,IAAL,GAAY2D,WAAW,CAAClE,KAAZ,CAAkBO,IAA9B;AACA,aAAO0D,IAAP;AACD;;;yCAEoBA,I,EAAM;AACzB,UAAIA,IAAI,CAACC,WAAT,EAAsB;AACpBD,QAAAA,IAAI,CAACC,WAAL,CAAiBC,mBAAjB,CAAqCF,IAArC;AACD;AACF;;;mCAEc;AAAA;;AACb,aAAO,KAAKxC,KAAL,CAAWC,OAAX,CAAmBe,KAAnB,CAAyB2B,GAAzB,CAA6B,UAAA7D,IAAI,EAAI;AAC1C,YAAM8D,sBAAsB,GAAG,KAAI,CAACC,yBAAL,CAA+B/D,IAA/B,CAA/B;;AAEA,YAAI,CAACA,IAAI,CAACoB,QAAN,IAAkB,CAACpB,IAAI,CAACgE,OAA5B,EAAqC,CAEpC,CAFD,MAEO,IAAI,CAAChE,IAAI,CAACoC,MAAV,EAAkB;AACvB,cAAMA,MAAM,GAAG,KAAI,CAAC9C,eAAL,iCACV,KAAI,CAACG,KADK;AAEbwE,YAAAA,EAAE,YAAK,KAAI,CAACA,EAAV,cAAgBjE,IAAI,CAACkE,CAArB,cAA0BlE,IAAI,CAACmE,CAA/B,cAAoCnE,IAAI,CAACoE,CAAzC,CAFW;AAGblF,YAAAA,IAAI,EAAEc,IAAI,CAACgE,OAHE;AAIbK,YAAAA,OAAO,EAAE,CAJI;AAKbrE,YAAAA,IAAI,EAAJA;AALa,aAAf;;AAOAA,UAAAA,IAAI,CAACoC,MAAL,GAAc,oBAAQA,MAAR,EAAgBkC,OAAhB,EAAyBT,GAAzB,CAA6B,UAAAJ,KAAK;AAAA,mBAC9CA,KAAK,CAACc,KAAN,CAAY;AACVvE,cAAAA,IAAI,EAAJA,IADU;AAEV8D,cAAAA,sBAAsB,EAAtBA;AAFU,aAAZ,CAD8C;AAAA,WAAlC,CAAd;AAMD,SAdM,MAcA,IACL9D,IAAI,CAACoC,MAAL,CAAY,CAAZ,KACApC,IAAI,CAACoC,MAAL,CAAY,CAAZ,EAAe3C,KAAf,CAAqBqE,sBAArB,KAAgDA,sBAF3C,EAGL;AACA9D,UAAAA,IAAI,CAACoC,MAAL,GAAcpC,IAAI,CAACoC,MAAL,CAAYyB,GAAZ,CAAgB,UAAAJ,KAAK;AAAA,mBAAIA,KAAK,CAACc,KAAN,CAAY;AAACT,cAAAA,sBAAsB,EAAtBA;AAAD,aAAZ,CAAJ;AAAA,WAArB,CAAd;AACD;;AACD,eAAO9D,IAAI,CAACoC,MAAZ;AACD,OA1BM,CAAP;AA2BD;;;0CAEuB;AAAA,UAARqB,KAAQ,SAARA,KAAQ;AACtB,aAAOA,KAAK,CAAChE,KAAN,CAAYO,IAAZ,CAAiBmD,SAAxB;AACD;;;wBA/Lc;AAAA,UACNhC,OADM,GACK,KAAKD,KADV,CACNC,OADM;AAEb,aAAOA,OAAO,CAAC+B,aAAR,CAAsBsB,KAAtB,CACL,UAAAxE,IAAI;AAAA,eAAIA,IAAI,CAACoB,QAAL,IAAiBpB,IAAI,CAACoC,MAAtB,IAAgCpC,IAAI,CAACoC,MAAL,CAAYoC,KAAZ,CAAkB,UAAAf,KAAK;AAAA,iBAAIA,KAAK,CAACrC,QAAV;AAAA,SAAvB,CAApC;AAAA,OADC,CAAP;AAGD;;;EAjBoCqD,oB;;;AA8MvCxD,SAAS,CAACyD,SAAV,GAAsB,WAAtB;AACAzD,SAAS,CAAChC,YAAV,GAAyBA,YAAzB","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"}
|