@deck.gl/geo-layers 9.3.0-alpha.2 → 9.3.0-alpha.5
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 +2024 -368
- package/dist/index.cjs +40 -8
- package/dist/index.cjs.map +2 -2
- package/dist/mesh-layer/mesh-layer-uniforms.d.ts +2 -2
- package/dist/mesh-layer/mesh-layer-uniforms.js +1 -1
- package/dist/mvt-layer/mvt-layer.d.ts.map +1 -1
- package/dist/mvt-layer/mvt-layer.js +6 -3
- package/dist/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/tile-3d-layer/tile-3d-layer.d.ts +3 -2
- package/dist/tile-3d-layer/tile-3d-layer.d.ts.map +1 -1
- package/dist/tile-3d-layer/tile-3d-layer.js +26 -2
- package/dist/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/tile-layer/tile-layer.d.ts.map +1 -1
- package/dist/tile-layer/tile-layer.js +6 -1
- package/dist/tile-layer/tile-layer.js.map +1 -1
- package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -1
- package/dist/tileset-2d/tile-2d-header.js +5 -1
- package/dist/tileset-2d/tile-2d-header.js.map +1 -1
- package/dist/trips-layer/trips-layer-uniforms.d.ts +2 -2
- package/dist/trips-layer/trips-layer-uniforms.js +1 -1
- package/dist.min.js +1333 -217
- package/package.json +10 -10
- package/src/mesh-layer/mesh-layer-uniforms.ts +1 -1
- package/src/mvt-layer/mvt-layer.ts +6 -3
- package/src/tile-3d-layer/tile-3d-layer.ts +31 -3
- package/src/tile-layer/tile-layer.ts +6 -1
- package/src/tileset-2d/tile-2d-header.ts +5 -1
- package/src/trips-layer/trips-layer-uniforms.ts +1 -1
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "deck.gl layers supporting geospatial use cases and GIS formats",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "9.3.0-alpha.
|
|
6
|
+
"version": "9.3.0-alpha.5",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@loaders.gl/terrain": "^4.4.0-alpha.18",
|
|
47
47
|
"@loaders.gl/tiles": "^4.4.0-alpha.18",
|
|
48
48
|
"@loaders.gl/wms": "^4.4.0-alpha.18",
|
|
49
|
-
"@luma.gl/gltf": "^9.3.0-alpha.
|
|
50
|
-
"@luma.gl/shadertools": "^9.3.0-alpha.
|
|
49
|
+
"@luma.gl/gltf": "^9.3.0-alpha.10",
|
|
50
|
+
"@luma.gl/shadertools": "^9.3.0-alpha.10",
|
|
51
51
|
"@math.gl/core": "^4.1.0",
|
|
52
52
|
"@math.gl/culling": "^4.1.0",
|
|
53
53
|
"@math.gl/web-mercator": "^4.1.0",
|
|
@@ -57,13 +57,13 @@
|
|
|
57
57
|
"long": "^3.2.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@deck.gl/core": "~9.
|
|
61
|
-
"@deck.gl/extensions": "~9.
|
|
62
|
-
"@deck.gl/layers": "~9.
|
|
63
|
-
"@deck.gl/mesh-layers": "~9.
|
|
60
|
+
"@deck.gl/core": "~9.3.0-alpha.1",
|
|
61
|
+
"@deck.gl/extensions": "~9.3.0-alpha.1",
|
|
62
|
+
"@deck.gl/layers": "~9.3.0-alpha.1",
|
|
63
|
+
"@deck.gl/mesh-layers": "~9.3.0-alpha.1",
|
|
64
64
|
"@loaders.gl/core": "^4.4.0-alpha.18",
|
|
65
|
-
"@luma.gl/core": "~9.3.0-alpha.
|
|
66
|
-
"@luma.gl/engine": "~9.3.0-alpha.
|
|
65
|
+
"@luma.gl/core": "~9.3.0-alpha.10",
|
|
66
|
+
"@luma.gl/engine": "~9.3.0-alpha.10"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "c3ad1cee357af674cc31df37979d61325baf9d7a"
|
|
69
69
|
}
|
|
@@ -226,17 +226,20 @@ export default class MVTLayer<
|
|
|
226
226
|
const {fetch} = this.props;
|
|
227
227
|
loadOptions = {
|
|
228
228
|
...loadOptions,
|
|
229
|
-
|
|
229
|
+
core: {
|
|
230
|
+
...loadOptions?.core,
|
|
231
|
+
mimeType: 'application/x-protobuf'
|
|
232
|
+
},
|
|
230
233
|
mvt: {
|
|
231
234
|
...loadOptions?.mvt,
|
|
235
|
+
shape: binary ? 'binary' : 'geojson',
|
|
232
236
|
coordinates: this.context.viewport.resolution ? 'wgs84' : 'local',
|
|
233
237
|
tileIndex: index
|
|
234
238
|
// Local worker debug
|
|
235
239
|
// workerUrl: `modules/mvt/dist/mvt-loader.worker.js`
|
|
236
240
|
// Set worker to null to skip web workers
|
|
237
241
|
// workerUrl: null
|
|
238
|
-
}
|
|
239
|
-
gis: binary ? {format: 'binary'} : {}
|
|
242
|
+
}
|
|
240
243
|
};
|
|
241
244
|
return fetch(url, {propName: 'data', layer: this, loadOptions, signal});
|
|
242
245
|
}
|
|
@@ -18,7 +18,8 @@ import {
|
|
|
18
18
|
PickingInfo,
|
|
19
19
|
UpdateParameters,
|
|
20
20
|
Viewport,
|
|
21
|
-
DefaultProps
|
|
21
|
+
DefaultProps,
|
|
22
|
+
LayerContext
|
|
22
23
|
} from '@deck.gl/core';
|
|
23
24
|
import {PointCloudLayer} from '@deck.gl/layers';
|
|
24
25
|
import {ScenegraphLayer} from '@deck.gl/mesh-layers';
|
|
@@ -138,6 +139,15 @@ export default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> exten
|
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
|
|
142
|
+
finalizeState(context: LayerContext): void {
|
|
143
|
+
this.state.tileset3d?.destroy();
|
|
144
|
+
this.state.tileset3d = null;
|
|
145
|
+
this.state.layerMap = {};
|
|
146
|
+
this.state.activeViewports = {};
|
|
147
|
+
this.state.lastUpdatedViewports = null;
|
|
148
|
+
super.finalizeState(context);
|
|
149
|
+
}
|
|
150
|
+
|
|
141
151
|
activateViewport(viewport: Viewport): void {
|
|
142
152
|
const {activeViewports, lastUpdatedViewports} = this.state;
|
|
143
153
|
this.internalState!.viewport = viewport;
|
|
@@ -160,11 +170,29 @@ export default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> exten
|
|
|
160
170
|
return info;
|
|
161
171
|
}
|
|
162
172
|
|
|
163
|
-
filterSubLayer({layer, viewport}: FilterContext): boolean {
|
|
173
|
+
filterSubLayer({layer, viewport, cullRect, isPicking}: FilterContext): boolean {
|
|
164
174
|
// All sublayers will have a tile prop
|
|
165
175
|
const {tile} = layer.props as unknown as {tile: Tile3D};
|
|
166
176
|
const {id: viewportId} = viewport;
|
|
167
|
-
|
|
177
|
+
if (!tile.selected || !tile.viewportIds.includes(viewportId)) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// When picking, skip tiles whose content center is far from the
|
|
182
|
+
// pick point on screen. Avoids unnecessary draw calls.
|
|
183
|
+
if (isPicking && cullRect && tile.content?.cartographicOrigin) {
|
|
184
|
+
const [sx, sy] = viewport.project(tile.content.cartographicOrigin);
|
|
185
|
+
const cx = cullRect.x + cullRect.width / 2;
|
|
186
|
+
const cy = cullRect.y + cullRect.height / 2;
|
|
187
|
+
const threshold = Math.max(viewport.width, viewport.height) / 4;
|
|
188
|
+
const dx = sx - cx;
|
|
189
|
+
const dy = sy - cy;
|
|
190
|
+
if (dx * dx + dy * dy > threshold * threshold) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return true;
|
|
168
196
|
}
|
|
169
197
|
|
|
170
198
|
protected _updateAutoHighlight(info: PickingInfo): void {
|
|
@@ -194,7 +194,12 @@ export default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends
|
|
|
194
194
|
get isLoaded(): boolean {
|
|
195
195
|
return Boolean(
|
|
196
196
|
this.state?.tileset?.selectedTiles?.every(
|
|
197
|
-
tile =>
|
|
197
|
+
tile =>
|
|
198
|
+
// Error / empty tiles resolve to `content === null`. Once Tile2DHeader marks those
|
|
199
|
+
// requests as loaded, do not wait for generated sublayers because there is nothing to
|
|
200
|
+
// render for that tile and `tile.layers` will remain null.
|
|
201
|
+
tile.isLoaded &&
|
|
202
|
+
(!tile.content || !tile.layers || tile.layers.every(layer => layer.isLoaded))
|
|
198
203
|
)
|
|
199
204
|
);
|
|
200
205
|
}
|
|
@@ -148,7 +148,8 @@ export class Tile2DHeader<DataT = any> {
|
|
|
148
148
|
// Clear the `isLoading` flag
|
|
149
149
|
this._loader = undefined;
|
|
150
150
|
// Rewrite tile content with the result of getTileData if successful, or `null` in case of
|
|
151
|
-
// error or cancellation
|
|
151
|
+
// error or cancellation. A `null` tile is still a terminal result for the request: the tile
|
|
152
|
+
// should stop blocking viewport loading even if the source returned 404 / empty content.
|
|
152
153
|
this.content = tileData;
|
|
153
154
|
// If cancelled, do not invoke the callbacks
|
|
154
155
|
// Consider it loaded if we tried to cancel but `getTileData` still returned data
|
|
@@ -156,6 +157,9 @@ export class Tile2DHeader<DataT = any> {
|
|
|
156
157
|
this._isLoaded = false;
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
160
|
+
// Errors are reported via onError below, but the request itself has completed. Mark the tile
|
|
161
|
+
// as loaded so higher-level layers can treat expected missing tiles as settled instead of
|
|
162
|
+
// waiting forever for content or sublayers that will never exist.
|
|
159
163
|
this._isLoaded = true;
|
|
160
164
|
this._isCancelled = false;
|
|
161
165
|
|