@deck.gl/geo-layers 8.6.3 → 8.7.0-alpha.10
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 +9747 -6413
- package/dist/es5/great-circle-layer/great-circle-layer.js +26 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +149 -87
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +326 -230
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +9 -9
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +153 -132
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +46 -20
- package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/es5/mvt-layer/find-index-binary.js +45 -26
- package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +395 -280
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-geometry.js +43 -32
- package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +104 -69
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-utils.js +27 -28
- package/dist/es5/s2-layer/s2-utils.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +250 -208
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +384 -329
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-header.js +182 -118
- package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-traversal.js +176 -113
- package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +254 -213
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tile-layer/tileset-2d.js +519 -300
- package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
- package/dist/es5/tile-layer/utils.js +110 -61
- package/dist/es5/tile-layer/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +81 -44
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +2 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.js +2 -8
- package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/esm/mvt-layer/mvt-layer.js +27 -1
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/s2-layer/s2-utils.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js +8 -10
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +2 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/esm/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/esm/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/esm/tile-layer/tile-layer.js +8 -16
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tile-layer/tileset-2d.js +85 -79
- package/dist/esm/tile-layer/tileset-2d.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +12 -12
- package/src/h3-layers/h3-hexagon-layer.js +2 -1
- package/src/{index.js → index.ts} +0 -0
- package/src/mesh-layer/mesh-layer-vertex.glsl.js +24 -23
- package/src/mesh-layer/mesh-layer.js +5 -4
- package/src/mvt-layer/coordinate-transform.js +1 -1
- package/src/mvt-layer/mvt-layer.js +17 -1
- package/src/s2-layer/s2-utils.js +7 -1
- package/src/terrain-layer/terrain-layer.js +10 -9
- package/src/tile-3d-layer/tile-3d-layer.js +12 -9
- package/src/tile-layer/tile-2d-traversal.js +17 -3
- package/src/tile-layer/tile-layer.js +11 -12
- package/src/tile-layer/tileset-2d.js +103 -90
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.default = void 0;
|
|
9
11
|
|
|
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
|
+
|
|
10
24
|
var _core = require("@deck.gl/core");
|
|
11
25
|
|
|
12
26
|
var _layers = require("@deck.gl/layers");
|
|
@@ -15,12 +29,26 @@ var _tileset2d = _interopRequireWildcard(require("./tileset-2d"));
|
|
|
15
29
|
|
|
16
30
|
var _utils = require("./utils");
|
|
17
31
|
|
|
18
|
-
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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); }; }
|
|
41
|
+
|
|
42
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
|
|
44
|
+
var defaultProps = {
|
|
19
45
|
data: [],
|
|
20
46
|
dataComparator: _utils.urlType.equals,
|
|
21
47
|
renderSubLayers: {
|
|
22
48
|
type: 'function',
|
|
23
|
-
value:
|
|
49
|
+
value: function value(props) {
|
|
50
|
+
return new _layers.GeoJsonLayer(props);
|
|
51
|
+
},
|
|
24
52
|
compare: false
|
|
25
53
|
},
|
|
26
54
|
getTileData: {
|
|
@@ -37,17 +65,19 @@ const defaultProps = {
|
|
|
37
65
|
},
|
|
38
66
|
onTileLoad: {
|
|
39
67
|
type: 'function',
|
|
40
|
-
value: tile
|
|
68
|
+
value: function value(tile) {},
|
|
41
69
|
compare: false
|
|
42
70
|
},
|
|
43
71
|
onTileUnload: {
|
|
44
72
|
type: 'function',
|
|
45
|
-
value: tile
|
|
73
|
+
value: function value(tile) {},
|
|
46
74
|
compare: false
|
|
47
75
|
},
|
|
48
76
|
onTileError: {
|
|
49
77
|
type: 'function',
|
|
50
|
-
value:
|
|
78
|
+
value: function value(err) {
|
|
79
|
+
return console.error(err);
|
|
80
|
+
},
|
|
51
81
|
compare: false
|
|
52
82
|
},
|
|
53
83
|
extent: {
|
|
@@ -67,238 +97,249 @@ const defaultProps = {
|
|
|
67
97
|
zoomOffset: 0
|
|
68
98
|
};
|
|
69
99
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.state = {
|
|
73
|
-
tileset: null,
|
|
74
|
-
isLoaded: false
|
|
75
|
-
};
|
|
76
|
-
}
|
|
100
|
+
var TileLayer = function (_CompositeLayer) {
|
|
101
|
+
(0, _inherits2.default)(TileLayer, _CompositeLayer);
|
|
77
102
|
|
|
78
|
-
|
|
79
|
-
var _this$state$tileset;
|
|
103
|
+
var _super = _createSuper(TileLayer);
|
|
80
104
|
|
|
81
|
-
|
|
105
|
+
function TileLayer() {
|
|
106
|
+
(0, _classCallCheck2.default)(this, TileLayer);
|
|
107
|
+
return _super.apply(this, arguments);
|
|
82
108
|
}
|
|
83
109
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
110
|
+
(0, _createClass2.default)(TileLayer, [{
|
|
111
|
+
key: "initializeState",
|
|
112
|
+
value: function initializeState() {
|
|
113
|
+
this.state = {
|
|
114
|
+
tileset: null,
|
|
115
|
+
isLoaded: false
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "finalizeState",
|
|
120
|
+
value: function finalizeState() {
|
|
121
|
+
var _this$state$tileset;
|
|
96
122
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
tileset
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (!tileset) {
|
|
108
|
-
tileset = new _tileset2d.default(this._getTilesetOptions(props));
|
|
109
|
-
this.setState({
|
|
110
|
-
tileset
|
|
123
|
+
(_this$state$tileset = this.state.tileset) === null || _this$state$tileset === void 0 ? void 0 : _this$state$tileset.finalize();
|
|
124
|
+
}
|
|
125
|
+
}, {
|
|
126
|
+
key: "isLoaded",
|
|
127
|
+
get: function get() {
|
|
128
|
+
var tileset = this.state.tileset;
|
|
129
|
+
return tileset.selectedTiles.every(function (tile) {
|
|
130
|
+
return tile.isLoaded && tile.layers && tile.layers.every(function (layer) {
|
|
131
|
+
return layer.isLoaded;
|
|
132
|
+
});
|
|
111
133
|
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
134
|
+
}
|
|
135
|
+
}, {
|
|
136
|
+
key: "shouldUpdateState",
|
|
137
|
+
value: function shouldUpdateState(_ref) {
|
|
138
|
+
var changeFlags = _ref.changeFlags;
|
|
139
|
+
return changeFlags.somethingChanged;
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
key: "updateState",
|
|
143
|
+
value: function updateState(_ref2) {
|
|
144
|
+
var props = _ref2.props,
|
|
145
|
+
changeFlags = _ref2.changeFlags;
|
|
146
|
+
var tileset = this.state.tileset;
|
|
147
|
+
var propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
|
|
148
|
+
var dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
|
|
149
|
+
|
|
150
|
+
if (!tileset) {
|
|
151
|
+
tileset = new _tileset2d.default(this._getTilesetOptions(props));
|
|
152
|
+
this.setState({
|
|
153
|
+
tileset: tileset
|
|
120
154
|
});
|
|
155
|
+
} else if (propsChanged) {
|
|
156
|
+
tileset.setOptions(this._getTilesetOptions(props));
|
|
157
|
+
|
|
158
|
+
if (dataChanged) {
|
|
159
|
+
tileset.reloadAll();
|
|
160
|
+
} else {
|
|
161
|
+
this.state.tileset.tiles.forEach(function (tile) {
|
|
162
|
+
tile.layers = null;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
121
165
|
}
|
|
122
|
-
}
|
|
123
166
|
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
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
|
-
}
|
|
155
|
-
|
|
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();
|
|
167
|
+
this._updateTileset();
|
|
176
168
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
169
|
+
}, {
|
|
170
|
+
key: "_getTilesetOptions",
|
|
171
|
+
value: function _getTilesetOptions(props) {
|
|
172
|
+
var tileSize = props.tileSize,
|
|
173
|
+
maxCacheSize = props.maxCacheSize,
|
|
174
|
+
maxCacheByteSize = props.maxCacheByteSize,
|
|
175
|
+
refinementStrategy = props.refinementStrategy,
|
|
176
|
+
extent = props.extent,
|
|
177
|
+
maxZoom = props.maxZoom,
|
|
178
|
+
minZoom = props.minZoom,
|
|
179
|
+
maxRequests = props.maxRequests,
|
|
180
|
+
zoomOffset = props.zoomOffset;
|
|
181
|
+
return {
|
|
182
|
+
maxCacheSize: maxCacheSize,
|
|
183
|
+
maxCacheByteSize: maxCacheByteSize,
|
|
184
|
+
maxZoom: maxZoom,
|
|
185
|
+
minZoom: minZoom,
|
|
186
|
+
tileSize: tileSize,
|
|
187
|
+
refinementStrategy: refinementStrategy,
|
|
188
|
+
extent: extent,
|
|
189
|
+
maxRequests: maxRequests,
|
|
190
|
+
zoomOffset: zoomOffset,
|
|
191
|
+
getTileData: this.getTileData.bind(this),
|
|
192
|
+
onTileLoad: this._onTileLoad.bind(this),
|
|
193
|
+
onTileError: this._onTileError.bind(this),
|
|
194
|
+
onTileUnload: this._onTileUnload.bind(this)
|
|
195
|
+
};
|
|
182
196
|
}
|
|
197
|
+
}, {
|
|
198
|
+
key: "_updateTileset",
|
|
199
|
+
value: function _updateTileset() {
|
|
200
|
+
var tileset = this.state.tileset;
|
|
201
|
+
var _this$props = this.props,
|
|
202
|
+
zRange = _this$props.zRange,
|
|
203
|
+
modelMatrix = _this$props.modelMatrix;
|
|
204
|
+
var frameNumber = tileset.update(this.context.viewport, {
|
|
205
|
+
zRange: zRange,
|
|
206
|
+
modelMatrix: modelMatrix
|
|
207
|
+
});
|
|
208
|
+
var isLoaded = tileset.isLoaded;
|
|
209
|
+
var loadingStateChanged = this.state.isLoaded !== isLoaded;
|
|
210
|
+
var tilesetChanged = this.state.frameNumber !== frameNumber;
|
|
183
211
|
|
|
184
|
-
|
|
185
|
-
|
|
212
|
+
if (isLoaded && (loadingStateChanged || tilesetChanged)) {
|
|
213
|
+
this._onViewportLoad();
|
|
214
|
+
}
|
|
186
215
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
onViewportLoad
|
|
193
|
-
} = this.props;
|
|
216
|
+
if (tilesetChanged) {
|
|
217
|
+
this.setState({
|
|
218
|
+
frameNumber: frameNumber
|
|
219
|
+
});
|
|
220
|
+
}
|
|
194
221
|
|
|
195
|
-
|
|
196
|
-
onViewportLoad(tileset.selectedTiles);
|
|
222
|
+
this.state.isLoaded = isLoaded;
|
|
197
223
|
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
224
|
+
}, {
|
|
225
|
+
key: "_onViewportLoad",
|
|
226
|
+
value: function _onViewportLoad() {
|
|
227
|
+
var tileset = this.state.tileset;
|
|
228
|
+
var onViewportLoad = this.props.onViewportLoad;
|
|
229
|
+
|
|
230
|
+
if (onViewportLoad) {
|
|
231
|
+
onViewportLoad(tileset.selectedTiles);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}, {
|
|
235
|
+
key: "_onTileLoad",
|
|
236
|
+
value: function _onTileLoad(tile) {
|
|
237
|
+
this.props.onTileLoad(tile);
|
|
238
|
+
tile.layers = null;
|
|
205
239
|
this.setNeedsUpdate();
|
|
206
240
|
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (tile.isVisible) {
|
|
241
|
+
}, {
|
|
242
|
+
key: "_onTileError",
|
|
243
|
+
value: function _onTileError(error, tile) {
|
|
244
|
+
this.props.onTileError(error);
|
|
245
|
+
tile.layers = null;
|
|
214
246
|
this.setNeedsUpdate();
|
|
215
247
|
}
|
|
216
|
-
}
|
|
248
|
+
}, {
|
|
249
|
+
key: "_onTileUnload",
|
|
250
|
+
value: function _onTileUnload(tile) {
|
|
251
|
+
this.props.onTileUnload(tile);
|
|
252
|
+
}
|
|
253
|
+
}, {
|
|
254
|
+
key: "getTileData",
|
|
255
|
+
value: function getTileData(tile) {
|
|
256
|
+
var _this$props2 = this.props,
|
|
257
|
+
data = _this$props2.data,
|
|
258
|
+
getTileData = _this$props2.getTileData,
|
|
259
|
+
fetch = _this$props2.fetch;
|
|
260
|
+
var signal = tile.signal;
|
|
261
|
+
tile.url = (0, _utils.getURLFromTemplate)(data, tile);
|
|
262
|
+
|
|
263
|
+
if (getTileData) {
|
|
264
|
+
return getTileData(tile);
|
|
265
|
+
}
|
|
217
266
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
267
|
+
if (tile.url) {
|
|
268
|
+
return fetch(tile.url, {
|
|
269
|
+
propName: 'data',
|
|
270
|
+
layer: this,
|
|
271
|
+
signal: signal
|
|
272
|
+
});
|
|
273
|
+
}
|
|
221
274
|
|
|
222
|
-
|
|
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);
|
|
275
|
+
return null;
|
|
235
276
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
layer: this,
|
|
241
|
-
signal
|
|
242
|
-
});
|
|
277
|
+
}, {
|
|
278
|
+
key: "renderSubLayers",
|
|
279
|
+
value: function renderSubLayers(props) {
|
|
280
|
+
return this.props.renderSubLayers(props);
|
|
243
281
|
}
|
|
244
|
-
|
|
245
|
-
|
|
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);
|
|
282
|
+
}, {
|
|
283
|
+
key: "getSubLayerPropsByTile",
|
|
284
|
+
value: function getSubLayerPropsByTile(tile) {
|
|
285
|
+
return null;
|
|
267
286
|
}
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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
|
-
}));
|
|
287
|
+
}, {
|
|
288
|
+
key: "getPickingInfo",
|
|
289
|
+
value: function getPickingInfo(_ref3) {
|
|
290
|
+
var info = _ref3.info,
|
|
291
|
+
sourceLayer = _ref3.sourceLayer;
|
|
292
|
+
info.tile = sourceLayer.props.tile;
|
|
293
|
+
return info;
|
|
294
|
+
}
|
|
295
|
+
}, {
|
|
296
|
+
key: "_updateAutoHighlight",
|
|
297
|
+
value: function _updateAutoHighlight(info) {
|
|
298
|
+
if (info.sourceLayer) {
|
|
299
|
+
info.sourceLayer.updateAutoHighlight(info);
|
|
289
300
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
}
|
|
302
|
+
}, {
|
|
303
|
+
key: "renderLayers",
|
|
304
|
+
value: function renderLayers() {
|
|
305
|
+
var _this = this;
|
|
306
|
+
|
|
307
|
+
return this.state.tileset.tiles.map(function (tile) {
|
|
308
|
+
var subLayerProps = _this.getSubLayerPropsByTile(tile);
|
|
309
|
+
|
|
310
|
+
if (!tile.isLoaded && !tile.content) {} else if (!tile.layers) {
|
|
311
|
+
var layers = _this.renderSubLayers(_objectSpread(_objectSpread({}, _this.props), {}, {
|
|
312
|
+
id: "".concat(_this.id, "-").concat(tile.x, "-").concat(tile.y, "-").concat(tile.z),
|
|
313
|
+
data: tile.content,
|
|
314
|
+
_offset: 0,
|
|
315
|
+
tile: tile
|
|
316
|
+
}));
|
|
317
|
+
|
|
318
|
+
tile.layers = (0, _core._flatten)(layers, Boolean).map(function (layer) {
|
|
319
|
+
return layer.clone(_objectSpread({
|
|
320
|
+
tile: tile
|
|
321
|
+
}, subLayerProps));
|
|
322
|
+
});
|
|
323
|
+
} else if (subLayerProps && tile.layers[0] && Object.keys(subLayerProps).some(function (propName) {
|
|
324
|
+
return tile.layers[0].props[propName] !== subLayerProps[propName];
|
|
325
|
+
})) {
|
|
326
|
+
tile.layers = tile.layers.map(function (layer) {
|
|
327
|
+
return layer.clone(subLayerProps);
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return tile.layers;
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
}, {
|
|
335
|
+
key: "filterSubLayer",
|
|
336
|
+
value: function filterSubLayer(_ref4) {
|
|
337
|
+
var layer = _ref4.layer;
|
|
338
|
+
return layer.props.tile.isVisible;
|
|
339
|
+
}
|
|
340
|
+
}]);
|
|
341
|
+
return TileLayer;
|
|
342
|
+
}(_core.CompositeLayer);
|
|
302
343
|
|
|
303
344
|
exports.default = TileLayer;
|
|
304
345
|
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","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"}
|
|
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","selectedTiles","every","layers","layer","changeFlags","somethingChanged","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","setNeedsUpdate","fetch","signal","url","propName","info","sourceLayer","updateAutoHighlight","map","subLayerProps","getSubLayerPropsByTile","content","id","x","y","z","_offset","Boolean","clone","Object","keys","some","isVisible","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 this.setNeedsUpdate();\n }\n\n _onTileError(error, tile) {\n this.props.onTileError(error);\n tile.layers = null;\n\n this.setNeedsUpdate();\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 getSubLayerPropsByTile(tile) {\n return null;\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 subLayerProps = this.getSubLayerPropsByTile(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 ...subLayerProps\n })\n );\n } else if (\n subLayerProps &&\n tile.layers[0] &&\n Object.keys(subLayerProps).some(\n propName => tile.layers[0].props[propName] !== subLayerProps[propName]\n )\n ) {\n tile.layers = tile.layers.map(layer => layer.clone(subLayerProps));\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"}
|