@deck.gl/geo-layers 8.10.0-alpha.4 → 8.10.0-alpha.6
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 +23 -666
- package/dist/es5/geo-cell-layer/GeoCellLayer.js +66 -69
- package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/es5/geohash-layer/geohash-layer.js +18 -22
- package/dist/es5/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js +2 -4
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +85 -91
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +222 -234
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +126 -136
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +338 -350
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/quadkey-layer/quadkey-layer.js +23 -27
- package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +18 -22
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +225 -234
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +338 -354
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +219 -234
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tileset-2d/tile-2d-header.js +160 -164
- package/dist/es5/tileset-2d/tile-2d-header.js.map +1 -1
- package/dist/es5/tileset-2d/tile-2d-traversal.js +118 -122
- package/dist/es5/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tileset-2d/tileset-2d.js +397 -411
- package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +48 -52
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/es5/wms-layer/wms-layer.js +263 -274
- package/dist/es5/wms-layer/wms-layer.js.map +1 -1
- package/dist/esm/geo-cell-layer/GeoCellLayer.js +2 -5
- package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/esm/geohash-layer/geohash-layer.js +2 -5
- package/dist/esm/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/esm/great-circle-layer/great-circle-layer.js +2 -5
- package/dist/esm/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-cluster-layer.js +2 -5
- package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +4 -8
- 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-fragment.glsl.js +55 -1
- package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +80 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.js +2 -5
- package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/esm/mvt-layer/mvt-layer.js +2 -5
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/quadkey-layer/quadkey-layer.js +2 -5
- package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/esm/s2-layer/s2-geometry.js +1 -1
- package/dist/esm/s2-layer/s2-geometry.js.map +1 -1
- package/dist/esm/s2-layer/s2-layer.js +2 -5
- package/dist/esm/s2-layer/s2-layer.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js +3 -7
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +7 -11
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/esm/tile-layer/tile-layer.js +2 -5
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tileset-2d/tile-2d-header.js +19 -39
- package/dist/esm/tileset-2d/tile-2d-header.js.map +1 -1
- package/dist/esm/tileset-2d/tile-2d-traversal.js +6 -13
- package/dist/esm/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/esm/tileset-2d/tileset-2d.js +17 -34
- package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/esm/tileset-2d/utils.js +1 -1
- package/dist/esm/tileset-2d/utils.js.map +1 -1
- package/dist/esm/trips-layer/trips-layer.js +27 -10
- package/dist/esm/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/wms-layer/wms-layer.js +3 -7
- package/dist/esm/wms-layer/wms-layer.js.map +1 -1
- package/dist.min.js +111 -56
- package/package.json +2 -2
- package/src/index.ts +1 -0
- package/typed/index.d.ts +1 -0
- package/typed/index.d.ts.map +1 -1
|
@@ -87,414 +87,402 @@ var MVTLayer = function (_TileLayer) {
|
|
|
87
87
|
return _super.apply(this, arguments);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
90
|
+
var _proto = MVTLayer.prototype;
|
|
91
|
+
|
|
92
|
+
_proto.initializeState = function initializeState() {
|
|
93
|
+
(0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "initializeState", this).call(this);
|
|
94
|
+
var binary = this.context.viewport.resolution !== undefined ? false : this.props.binary;
|
|
95
|
+
this.setState({
|
|
96
|
+
binary: binary,
|
|
97
|
+
data: null,
|
|
98
|
+
tileJSON: null
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
_proto.updateState = function updateState(_ref) {
|
|
103
|
+
var _this$state;
|
|
104
|
+
|
|
105
|
+
var props = _ref.props,
|
|
106
|
+
oldProps = _ref.oldProps,
|
|
107
|
+
context = _ref.context,
|
|
108
|
+
changeFlags = _ref.changeFlags;
|
|
109
|
+
|
|
110
|
+
if (changeFlags.dataChanged) {
|
|
111
|
+
this._updateTileData();
|
|
105
112
|
}
|
|
106
|
-
}, {
|
|
107
|
-
key: "updateState",
|
|
108
|
-
value: function updateState(_ref) {
|
|
109
|
-
var _this$state;
|
|
110
|
-
|
|
111
|
-
var props = _ref.props,
|
|
112
|
-
oldProps = _ref.oldProps,
|
|
113
|
-
context = _ref.context,
|
|
114
|
-
changeFlags = _ref.changeFlags;
|
|
115
|
-
|
|
116
|
-
if (changeFlags.dataChanged) {
|
|
117
|
-
this._updateTileData();
|
|
118
|
-
}
|
|
119
113
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
114
|
+
if ((_this$state = this.state) !== null && _this$state !== void 0 && _this$state.data) {
|
|
115
|
+
(0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "updateState", this).call(this, {
|
|
116
|
+
props: props,
|
|
117
|
+
oldProps: oldProps,
|
|
118
|
+
context: context,
|
|
119
|
+
changeFlags: changeFlags
|
|
120
|
+
});
|
|
127
121
|
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
this._setWGS84PropertyForTiles();
|
|
123
|
+
}
|
|
130
124
|
|
|
131
|
-
|
|
125
|
+
var highlightColor = props.highlightColor;
|
|
132
126
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
127
|
+
if (highlightColor !== oldProps.highlightColor && Array.isArray(highlightColor)) {
|
|
128
|
+
this.setState({
|
|
129
|
+
highlightColor: highlightColor
|
|
130
|
+
});
|
|
138
131
|
}
|
|
139
|
-
}
|
|
140
|
-
key: "_updateTileData",
|
|
141
|
-
value: function () {
|
|
142
|
-
var _updateTileData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
143
|
-
var data, tileJSON, _this$props, onDataLoad, fetch;
|
|
144
|
-
|
|
145
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
146
|
-
while (1) {
|
|
147
|
-
switch (_context.prev = _context.next) {
|
|
148
|
-
case 0:
|
|
149
|
-
data = this.props.data;
|
|
150
|
-
tileJSON = null;
|
|
151
|
-
|
|
152
|
-
if (!(typeof data === 'string' && !(0, _tileset2d.isURLTemplate)(data))) {
|
|
153
|
-
_context.next = 18;
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
_this$props = this.props, onDataLoad = _this$props.onDataLoad, fetch = _this$props.fetch;
|
|
158
|
-
this.setState({
|
|
159
|
-
data: null,
|
|
160
|
-
tileJSON: null
|
|
161
|
-
});
|
|
162
|
-
_context.prev = 5;
|
|
163
|
-
_context.next = 8;
|
|
164
|
-
return fetch(data, {
|
|
165
|
-
propName: 'data',
|
|
166
|
-
layer: this,
|
|
167
|
-
loaders: []
|
|
168
|
-
});
|
|
132
|
+
};
|
|
169
133
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
break;
|
|
134
|
+
_proto._updateTileData = function () {
|
|
135
|
+
var _updateTileData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
136
|
+
var data, tileJSON, _this$props, onDataLoad, fetch;
|
|
174
137
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
case 15:
|
|
182
|
-
if (onDataLoad) {
|
|
183
|
-
onDataLoad(tileJSON, {
|
|
184
|
-
propName: 'data',
|
|
185
|
-
layer: this
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
_context.next = 19;
|
|
190
|
-
break;
|
|
138
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
139
|
+
while (1) {
|
|
140
|
+
switch (_context.prev = _context.next) {
|
|
141
|
+
case 0:
|
|
142
|
+
data = this.props.data;
|
|
143
|
+
tileJSON = null;
|
|
191
144
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
case 19:
|
|
198
|
-
if (tileJSON) {
|
|
199
|
-
data = tileJSON.tiles;
|
|
200
|
-
}
|
|
145
|
+
if (!(typeof data === 'string' && !(0, _tileset2d.isURLTemplate)(data))) {
|
|
146
|
+
_context.next = 18;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
201
149
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
150
|
+
_this$props = this.props, onDataLoad = _this$props.onDataLoad, fetch = _this$props.fetch;
|
|
151
|
+
this.setState({
|
|
152
|
+
data: null,
|
|
153
|
+
tileJSON: null
|
|
154
|
+
});
|
|
155
|
+
_context.prev = 5;
|
|
156
|
+
_context.next = 8;
|
|
157
|
+
return fetch(data, {
|
|
158
|
+
propName: 'data',
|
|
159
|
+
layer: this,
|
|
160
|
+
loaders: []
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
case 8:
|
|
164
|
+
tileJSON = _context.sent;
|
|
165
|
+
_context.next = 15;
|
|
166
|
+
break;
|
|
167
|
+
|
|
168
|
+
case 11:
|
|
169
|
+
_context.prev = 11;
|
|
170
|
+
_context.t0 = _context["catch"](5);
|
|
171
|
+
this.raiseError(_context.t0, 'loading TileJSON');
|
|
172
|
+
data = null;
|
|
173
|
+
|
|
174
|
+
case 15:
|
|
175
|
+
if (onDataLoad) {
|
|
176
|
+
onDataLoad(tileJSON, {
|
|
177
|
+
propName: 'data',
|
|
178
|
+
layer: this
|
|
205
179
|
});
|
|
180
|
+
}
|
|
206
181
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
return _context.stop();
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}, _callee, this, [[5, 11]]);
|
|
213
|
-
}));
|
|
182
|
+
_context.next = 19;
|
|
183
|
+
break;
|
|
214
184
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
185
|
+
case 18:
|
|
186
|
+
if (data.tilejson) {
|
|
187
|
+
tileJSON = data;
|
|
188
|
+
}
|
|
218
189
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
value: function _getTilesetOptions() {
|
|
224
|
-
var opts = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "_getTilesetOptions", this).call(this);
|
|
225
|
-
var tileJSON = this.state.tileJSON;
|
|
226
|
-
var _this$props2 = this.props,
|
|
227
|
-
minZoom = _this$props2.minZoom,
|
|
228
|
-
maxZoom = _this$props2.maxZoom;
|
|
229
|
-
|
|
230
|
-
if (tileJSON) {
|
|
231
|
-
if (Number.isFinite(tileJSON.minzoom) && tileJSON.minzoom > minZoom) {
|
|
232
|
-
opts.minZoom = tileJSON.minzoom;
|
|
233
|
-
}
|
|
190
|
+
case 19:
|
|
191
|
+
if (tileJSON) {
|
|
192
|
+
data = tileJSON.tiles;
|
|
193
|
+
}
|
|
234
194
|
|
|
235
|
-
|
|
236
|
-
|
|
195
|
+
this.setState({
|
|
196
|
+
data: data,
|
|
197
|
+
tileJSON: tileJSON
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
case 21:
|
|
201
|
+
case "end":
|
|
202
|
+
return _context.stop();
|
|
203
|
+
}
|
|
237
204
|
}
|
|
238
|
-
}
|
|
205
|
+
}, _callee, this, [[5, 11]]);
|
|
206
|
+
}));
|
|
239
207
|
|
|
240
|
-
|
|
208
|
+
function _updateTileData() {
|
|
209
|
+
return _updateTileData2.apply(this, arguments);
|
|
241
210
|
}
|
|
242
|
-
}, {
|
|
243
|
-
key: "renderLayers",
|
|
244
|
-
value: function renderLayers() {
|
|
245
|
-
var _this$state2;
|
|
246
211
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
var url = (0, _tileset2d.getURLFromTemplate)(data, loadProps);
|
|
261
|
-
|
|
262
|
-
if (!url) {
|
|
263
|
-
return Promise.reject('Invalid URL');
|
|
212
|
+
return _updateTileData;
|
|
213
|
+
}();
|
|
214
|
+
|
|
215
|
+
_proto._getTilesetOptions = function _getTilesetOptions() {
|
|
216
|
+
var opts = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "_getTilesetOptions", this).call(this);
|
|
217
|
+
var tileJSON = this.state.tileJSON;
|
|
218
|
+
var _this$props2 = this.props,
|
|
219
|
+
minZoom = _this$props2.minZoom,
|
|
220
|
+
maxZoom = _this$props2.maxZoom;
|
|
221
|
+
|
|
222
|
+
if (tileJSON) {
|
|
223
|
+
if (Number.isFinite(tileJSON.minzoom) && tileJSON.minzoom > minZoom) {
|
|
224
|
+
opts.minZoom = tileJSON.minzoom;
|
|
264
225
|
}
|
|
265
226
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
loadOptions = _objectSpread(_objectSpread({}, loadOptions), {}, {
|
|
269
|
-
mimeType: 'application/x-protobuf',
|
|
270
|
-
mvt: _objectSpread(_objectSpread({}, (_loadOptions = loadOptions) === null || _loadOptions === void 0 ? void 0 : _loadOptions.mvt), {}, {
|
|
271
|
-
coordinates: this.context.viewport.resolution ? 'wgs84' : 'local',
|
|
272
|
-
tileIndex: index
|
|
273
|
-
}),
|
|
274
|
-
gis: binary ? {
|
|
275
|
-
format: 'binary'
|
|
276
|
-
} : {}
|
|
277
|
-
});
|
|
278
|
-
return fetch(url, {
|
|
279
|
-
propName: 'data',
|
|
280
|
-
layer: this,
|
|
281
|
-
loadOptions: loadOptions,
|
|
282
|
-
signal: signal
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
}, {
|
|
286
|
-
key: "renderSubLayers",
|
|
287
|
-
value: function renderSubLayers(props) {
|
|
288
|
-
var _props$tile$index = props.tile.index,
|
|
289
|
-
x = _props$tile$index.x,
|
|
290
|
-
y = _props$tile$index.y,
|
|
291
|
-
z = _props$tile$index.z;
|
|
292
|
-
var worldScale = Math.pow(2, z);
|
|
293
|
-
var xScale = WORLD_SIZE / worldScale;
|
|
294
|
-
var yScale = -xScale;
|
|
295
|
-
var xOffset = WORLD_SIZE * x / worldScale;
|
|
296
|
-
var yOffset = WORLD_SIZE * (1 - y / worldScale);
|
|
297
|
-
var modelMatrix = new _core2.Matrix4().scale([xScale, yScale, 1]);
|
|
298
|
-
props.autoHighlight = false;
|
|
299
|
-
|
|
300
|
-
if (!this.context.viewport.resolution) {
|
|
301
|
-
props.modelMatrix = modelMatrix;
|
|
302
|
-
props.coordinateOrigin = [xOffset, yOffset, 0];
|
|
303
|
-
props.coordinateSystem = _core.COORDINATE_SYSTEM.CARTESIAN;
|
|
304
|
-
props.extensions = [].concat((0, _toConsumableArray2.default)(props.extensions || []), [new _extensions.ClipExtension()]);
|
|
227
|
+
if (Number.isFinite(tileJSON.maxzoom) && (!Number.isFinite(maxZoom) || tileJSON.maxzoom < maxZoom)) {
|
|
228
|
+
opts.maxZoom = tileJSON.maxzoom;
|
|
305
229
|
}
|
|
230
|
+
}
|
|
306
231
|
|
|
307
|
-
|
|
232
|
+
return opts;
|
|
233
|
+
};
|
|
308
234
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
235
|
+
_proto.renderLayers = function renderLayers() {
|
|
236
|
+
var _this$state2;
|
|
312
237
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}
|
|
316
|
-
key: "_updateAutoHighlight",
|
|
317
|
-
value: function _updateAutoHighlight(info) {
|
|
318
|
-
var uniqueIdProperty = this.props.uniqueIdProperty;
|
|
319
|
-
var _this$state4 = this.state,
|
|
320
|
-
hoveredFeatureId = _this$state4.hoveredFeatureId,
|
|
321
|
-
hoveredFeatureLayerName = _this$state4.hoveredFeatureLayerName;
|
|
322
|
-
var hoveredFeature = info.object;
|
|
323
|
-
var newHoveredFeatureId;
|
|
324
|
-
var newHoveredFeatureLayerName;
|
|
325
|
-
|
|
326
|
-
if (hoveredFeature) {
|
|
327
|
-
newHoveredFeatureId = getFeatureUniqueId(hoveredFeature, uniqueIdProperty);
|
|
328
|
-
newHoveredFeatureLayerName = getFeatureLayerName(hoveredFeature);
|
|
329
|
-
}
|
|
238
|
+
if (!((_this$state2 = this.state) !== null && _this$state2 !== void 0 && _this$state2.data)) return null;
|
|
239
|
+
return (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "renderLayers", this).call(this);
|
|
240
|
+
};
|
|
330
241
|
|
|
331
|
-
|
|
242
|
+
_proto.getTileData = function getTileData(loadProps) {
|
|
243
|
+
var _loadOptions;
|
|
332
244
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
245
|
+
var _this$state3 = this.state,
|
|
246
|
+
data = _this$state3.data,
|
|
247
|
+
binary = _this$state3.binary;
|
|
248
|
+
var index = loadProps.index,
|
|
249
|
+
signal = loadProps.signal;
|
|
250
|
+
var url = (0, _tileset2d.getURLFromTemplate)(data, loadProps);
|
|
336
251
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
highlightColor: highlightColor,
|
|
340
|
-
hoveredFeatureId: newHoveredFeatureId,
|
|
341
|
-
hoveredFeatureLayerName: newHoveredFeatureLayerName
|
|
342
|
-
});
|
|
343
|
-
}
|
|
252
|
+
if (!url) {
|
|
253
|
+
return Promise.reject('Invalid URL');
|
|
344
254
|
}
|
|
345
|
-
}, {
|
|
346
|
-
key: "getPickingInfo",
|
|
347
|
-
value: function getPickingInfo(params) {
|
|
348
|
-
var info = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "getPickingInfo", this).call(this, params);
|
|
349
|
-
var isWGS84 = Boolean(this.context.viewport.resolution);
|
|
350
|
-
|
|
351
|
-
if (this.state.binary && info.index !== -1) {
|
|
352
|
-
var data = params.sourceLayer.props.data;
|
|
353
|
-
info.object = (0, _gis.binaryToGeojson)(data, {
|
|
354
|
-
globalFeatureId: info.index
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
255
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
256
|
+
var loadOptions = this.getLoadOptions();
|
|
257
|
+
var fetch = this.props.fetch;
|
|
258
|
+
loadOptions = _objectSpread(_objectSpread({}, loadOptions), {}, {
|
|
259
|
+
mimeType: 'application/x-protobuf',
|
|
260
|
+
mvt: _objectSpread(_objectSpread({}, (_loadOptions = loadOptions) === null || _loadOptions === void 0 ? void 0 : _loadOptions.mvt), {}, {
|
|
261
|
+
coordinates: this.context.viewport.resolution ? 'wgs84' : 'local',
|
|
262
|
+
tileIndex: index
|
|
263
|
+
}),
|
|
264
|
+
gis: binary ? {
|
|
265
|
+
format: 'binary'
|
|
266
|
+
} : {}
|
|
267
|
+
});
|
|
268
|
+
return fetch(url, {
|
|
269
|
+
propName: 'data',
|
|
270
|
+
layer: this,
|
|
271
|
+
loadOptions: loadOptions,
|
|
272
|
+
signal: signal
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
_proto.renderSubLayers = function renderSubLayers(props) {
|
|
277
|
+
var _props$tile$index = props.tile.index,
|
|
278
|
+
x = _props$tile$index.x,
|
|
279
|
+
y = _props$tile$index.y,
|
|
280
|
+
z = _props$tile$index.z;
|
|
281
|
+
var worldScale = Math.pow(2, z);
|
|
282
|
+
var xScale = WORLD_SIZE / worldScale;
|
|
283
|
+
var yScale = -xScale;
|
|
284
|
+
var xOffset = WORLD_SIZE * x / worldScale;
|
|
285
|
+
var yOffset = WORLD_SIZE * (1 - y / worldScale);
|
|
286
|
+
var modelMatrix = new _core2.Matrix4().scale([xScale, yScale, 1]);
|
|
287
|
+
props.autoHighlight = false;
|
|
288
|
+
|
|
289
|
+
if (!this.context.viewport.resolution) {
|
|
290
|
+
props.modelMatrix = modelMatrix;
|
|
291
|
+
props.coordinateOrigin = [xOffset, yOffset, 0];
|
|
292
|
+
props.coordinateSystem = _core.COORDINATE_SYSTEM.CARTESIAN;
|
|
293
|
+
props.extensions = [].concat((0, _toConsumableArray2.default)(props.extensions || []), [new _extensions.ClipExtension()]);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
var subLayers = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "renderSubLayers", this).call(this, props);
|
|
361
297
|
|
|
362
|
-
|
|
298
|
+
if (this.state.binary && !(subLayers instanceof _layers.GeoJsonLayer)) {
|
|
299
|
+
_core.log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();
|
|
363
300
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
301
|
+
|
|
302
|
+
return subLayers;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
_proto._updateAutoHighlight = function _updateAutoHighlight(info) {
|
|
306
|
+
var uniqueIdProperty = this.props.uniqueIdProperty;
|
|
307
|
+
var _this$state4 = this.state,
|
|
308
|
+
hoveredFeatureId = _this$state4.hoveredFeatureId,
|
|
309
|
+
hoveredFeatureLayerName = _this$state4.hoveredFeatureLayerName;
|
|
310
|
+
var hoveredFeature = info.object;
|
|
311
|
+
var newHoveredFeatureId;
|
|
312
|
+
var newHoveredFeatureLayerName;
|
|
313
|
+
|
|
314
|
+
if (hoveredFeature) {
|
|
315
|
+
newHoveredFeatureId = getFeatureUniqueId(hoveredFeature, uniqueIdProperty);
|
|
316
|
+
newHoveredFeatureLayerName = getFeatureLayerName(hoveredFeature);
|
|
371
317
|
}
|
|
372
|
-
}, {
|
|
373
|
-
key: "getHighlightedObjectIndex",
|
|
374
|
-
value: function getHighlightedObjectIndex(tile) {
|
|
375
|
-
var _this$state5 = this.state,
|
|
376
|
-
hoveredFeatureId = _this$state5.hoveredFeatureId,
|
|
377
|
-
hoveredFeatureLayerName = _this$state5.hoveredFeatureLayerName,
|
|
378
|
-
binary = _this$state5.binary;
|
|
379
|
-
var _this$props3 = this.props,
|
|
380
|
-
uniqueIdProperty = _this$props3.uniqueIdProperty,
|
|
381
|
-
highlightedFeatureId = _this$props3.highlightedFeatureId;
|
|
382
|
-
var data = tile.content;
|
|
383
|
-
var isHighlighted = isFeatureIdDefined(highlightedFeatureId);
|
|
384
|
-
var isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId) || isHighlighted;
|
|
385
|
-
|
|
386
|
-
if (!isFeatureIdPresent) {
|
|
387
|
-
return -1;
|
|
388
|
-
}
|
|
389
318
|
|
|
390
|
-
|
|
319
|
+
var highlightColor = this.props.highlightColor;
|
|
391
320
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
var isMatchingLayer = isHighlighted || getFeatureLayerName(feature) === hoveredFeatureLayerName;
|
|
396
|
-
return isMatchingId && isMatchingLayer;
|
|
397
|
-
});
|
|
398
|
-
} else if (data && binary) {
|
|
399
|
-
return (0, _findIndexBinary.default)(data, uniqueIdProperty, featureIdToHighlight, isHighlighted ? '' : hoveredFeatureLayerName);
|
|
400
|
-
}
|
|
321
|
+
if (typeof highlightColor === 'function') {
|
|
322
|
+
highlightColor = highlightColor(info);
|
|
323
|
+
}
|
|
401
324
|
|
|
402
|
-
|
|
325
|
+
if (hoveredFeatureId !== newHoveredFeatureId || hoveredFeatureLayerName !== newHoveredFeatureLayerName) {
|
|
326
|
+
this.setState({
|
|
327
|
+
highlightColor: highlightColor,
|
|
328
|
+
hoveredFeatureId: newHoveredFeatureId,
|
|
329
|
+
hoveredFeatureLayerName: newHoveredFeatureLayerName
|
|
330
|
+
});
|
|
403
331
|
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
var
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
var layerIds = [this.id];
|
|
415
|
-
return deck.pickObjects({
|
|
416
|
-
x: x,
|
|
417
|
-
y: y,
|
|
418
|
-
width: width,
|
|
419
|
-
height: height,
|
|
420
|
-
layerIds: layerIds,
|
|
421
|
-
maxObjects: maxObjects
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
_proto.getPickingInfo = function getPickingInfo(params) {
|
|
335
|
+
var info = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "getPickingInfo", this).call(this, params);
|
|
336
|
+
var isWGS84 = Boolean(this.context.viewport.resolution);
|
|
337
|
+
|
|
338
|
+
if (this.state.binary && info.index !== -1) {
|
|
339
|
+
var data = params.sourceLayer.props.data;
|
|
340
|
+
info.object = (0, _gis.binaryToGeojson)(data, {
|
|
341
|
+
globalFeatureId: info.index
|
|
422
342
|
});
|
|
423
343
|
}
|
|
424
|
-
}, {
|
|
425
|
-
key: "getRenderedFeatures",
|
|
426
|
-
value: function getRenderedFeatures() {
|
|
427
|
-
var maxFeatures = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
428
344
|
|
|
429
|
-
|
|
345
|
+
if (info.object && !isWGS84) {
|
|
346
|
+
info.object = transformTileCoordsToWGS84(info.object, info.tile.bbox, this.context.viewport);
|
|
347
|
+
}
|
|
430
348
|
|
|
431
|
-
|
|
432
|
-
|
|
349
|
+
return info;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
_proto.getSubLayerPropsByTile = function getSubLayerPropsByTile(tile) {
|
|
353
|
+
return {
|
|
354
|
+
highlightedObjectIndex: this.getHighlightedObjectIndex(tile),
|
|
355
|
+
highlightColor: this.state.highlightColor
|
|
356
|
+
};
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
_proto.getHighlightedObjectIndex = function getHighlightedObjectIndex(tile) {
|
|
360
|
+
var _this$state5 = this.state,
|
|
361
|
+
hoveredFeatureId = _this$state5.hoveredFeatureId,
|
|
362
|
+
hoveredFeatureLayerName = _this$state5.hoveredFeatureLayerName,
|
|
363
|
+
binary = _this$state5.binary;
|
|
364
|
+
var _this$props3 = this.props,
|
|
365
|
+
uniqueIdProperty = _this$props3.uniqueIdProperty,
|
|
366
|
+
highlightedFeatureId = _this$props3.highlightedFeatureId;
|
|
367
|
+
var data = tile.content;
|
|
368
|
+
var isHighlighted = isFeatureIdDefined(highlightedFeatureId);
|
|
369
|
+
var isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId) || isHighlighted;
|
|
370
|
+
|
|
371
|
+
if (!isFeatureIdPresent) {
|
|
372
|
+
return -1;
|
|
373
|
+
}
|
|
433
374
|
|
|
434
|
-
|
|
435
|
-
_step;
|
|
375
|
+
var featureIdToHighlight = isHighlighted ? highlightedFeatureId : hoveredFeatureId;
|
|
436
376
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
377
|
+
if (Array.isArray(data)) {
|
|
378
|
+
return data.findIndex(function (feature) {
|
|
379
|
+
var isMatchingId = getFeatureUniqueId(feature, uniqueIdProperty) === featureIdToHighlight;
|
|
380
|
+
var isMatchingLayer = isHighlighted || getFeatureLayerName(feature) === hoveredFeatureLayerName;
|
|
381
|
+
return isMatchingId && isMatchingLayer;
|
|
382
|
+
});
|
|
383
|
+
} else if (data && binary) {
|
|
384
|
+
return (0, _findIndexBinary.default)(data, uniqueIdProperty, featureIdToHighlight, isHighlighted ? '' : hoveredFeatureLayerName);
|
|
385
|
+
}
|
|
441
386
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
387
|
+
return -1;
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
_proto._pickObjects = function _pickObjects(maxObjects) {
|
|
391
|
+
var _this$context = this.context,
|
|
392
|
+
deck = _this$context.deck,
|
|
393
|
+
viewport = _this$context.viewport;
|
|
394
|
+
var width = viewport.width;
|
|
395
|
+
var height = viewport.height;
|
|
396
|
+
var x = viewport.x;
|
|
397
|
+
var y = viewport.y;
|
|
398
|
+
var layerIds = [this.id];
|
|
399
|
+
return deck.pickObjects({
|
|
400
|
+
x: x,
|
|
401
|
+
y: y,
|
|
402
|
+
width: width,
|
|
403
|
+
height: height,
|
|
404
|
+
layerIds: layerIds,
|
|
405
|
+
maxObjects: maxObjects
|
|
406
|
+
});
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
_proto.getRenderedFeatures = function getRenderedFeatures() {
|
|
410
|
+
var maxFeatures = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
411
|
+
|
|
412
|
+
var features = this._pickObjects(maxFeatures);
|
|
413
|
+
|
|
414
|
+
var featureCache = new Set();
|
|
415
|
+
var renderedFeatures = [];
|
|
416
|
+
|
|
417
|
+
var _iterator = _createForOfIteratorHelper(features),
|
|
418
|
+
_step;
|
|
419
|
+
|
|
420
|
+
try {
|
|
421
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
422
|
+
var f = _step.value;
|
|
423
|
+
var featureId = getFeatureUniqueId(f.object, this.props.uniqueIdProperty);
|
|
424
|
+
|
|
425
|
+
if (featureId === undefined) {
|
|
426
|
+
renderedFeatures.push(f.object);
|
|
427
|
+
} else if (!featureCache.has(featureId)) {
|
|
428
|
+
featureCache.add(featureId);
|
|
429
|
+
renderedFeatures.push(f.object);
|
|
448
430
|
}
|
|
449
|
-
} catch (err) {
|
|
450
|
-
_iterator.e(err);
|
|
451
|
-
} finally {
|
|
452
|
-
_iterator.f();
|
|
453
431
|
}
|
|
454
|
-
|
|
455
|
-
|
|
432
|
+
} catch (err) {
|
|
433
|
+
_iterator.e(err);
|
|
434
|
+
} finally {
|
|
435
|
+
_iterator.f();
|
|
456
436
|
}
|
|
457
|
-
}, {
|
|
458
|
-
key: "_setWGS84PropertyForTiles",
|
|
459
|
-
value: function _setWGS84PropertyForTiles() {
|
|
460
|
-
var _this = this;
|
|
461
|
-
|
|
462
|
-
var propName = 'dataInWGS84';
|
|
463
|
-
var tileset = this.state.tileset;
|
|
464
|
-
tileset.selectedTiles.forEach(function (tile) {
|
|
465
|
-
if (!tile.hasOwnProperty(propName)) {
|
|
466
|
-
Object.defineProperty(tile, propName, {
|
|
467
|
-
get: function get() {
|
|
468
|
-
if (!tile.content) {
|
|
469
|
-
return null;
|
|
470
|
-
}
|
|
471
437
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
}
|
|
438
|
+
return renderedFeatures;
|
|
439
|
+
};
|
|
475
440
|
|
|
476
|
-
|
|
441
|
+
_proto._setWGS84PropertyForTiles = function _setWGS84PropertyForTiles() {
|
|
442
|
+
var _this = this;
|
|
477
443
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
444
|
+
var propName = 'dataInWGS84';
|
|
445
|
+
var tileset = this.state.tileset;
|
|
446
|
+
tileset.selectedTiles.forEach(function (tile) {
|
|
447
|
+
if (!tile.hasOwnProperty(propName)) {
|
|
448
|
+
Object.defineProperty(tile, propName, {
|
|
449
|
+
get: function get() {
|
|
450
|
+
if (!tile.content) {
|
|
451
|
+
return null;
|
|
452
|
+
}
|
|
484
453
|
|
|
485
|
-
|
|
454
|
+
if (_this.state.binary && Array.isArray(tile.content) && !tile.content.length) {
|
|
455
|
+
return [];
|
|
486
456
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
457
|
+
|
|
458
|
+
var bbox = tile.bbox;
|
|
459
|
+
|
|
460
|
+
if (tile._contentWGS84 === undefined && (0, _tileset2d.isGeoBoundingBox)(bbox)) {
|
|
461
|
+
var content = _this.state.binary ? (0, _gis.binaryToGeojson)(tile.content) : tile.content;
|
|
462
|
+
tile._contentWGS84 = content.map(function (feature) {
|
|
463
|
+
return transformTileCoordsToWGS84(feature, bbox, _this.context.viewport);
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
return tile._contentWGS84;
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
(0, _createClass2.default)(MVTLayer, [{
|
|
475
|
+
key: "isLoaded",
|
|
476
|
+
get: function get() {
|
|
477
|
+
return this.state && this.state.data && this.state.tileset && (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "isLoaded", this);
|
|
490
478
|
}
|
|
491
479
|
}]);
|
|
492
480
|
return MVTLayer;
|
|
493
481
|
}(_tileLayer.default);
|
|
494
482
|
|
|
495
483
|
exports.default = MVTLayer;
|
|
496
|
-
|
|
497
|
-
|
|
484
|
+
MVTLayer.layerName = 'MVTLayer';
|
|
485
|
+
MVTLayer.defaultProps = defaultProps;
|
|
498
486
|
|
|
499
487
|
function getFeatureUniqueId(feature, uniqueIdProperty) {
|
|
500
488
|
if (feature.properties && uniqueIdProperty) {
|