deck.gl
deck.gl copied to clipboard
[Bug] Tile3DLayer with I3S loaders option doesn't work
Description
An error occurs using the Tile3DLayer with the loaders parameter but it works well with the deprecated loader parameter.
Uncaught (in promise) Error: 3DTileLoader: unknown type {"id
Flavors
- [ ] Script tag
- [x] React
- [ ] Python/Jupyter notebook
- [ ] MapboxOverlay
- [ ] GoogleMapsOverlay
- [ ] CARTO
- [x] ArcGIS
Expected Behavior
The I3S layer loading properly, without error and as it is with the loader parameter
Steps to Reproduce
To reproduce the error
import { Tile3DLayer } from '@deck.gl/geo-layers';
import { I3SLoader } from '@loaders.gl/i3s';
export const useI3SLayer = () => {
const layer = new Tile3DLayer({
id: 'tile-3d-layer',
data: 'any_url_to_test',
//loader: I3SLoader as any, //works
loaders: [I3SLoader], // BUG
});
return { layer }
}
I have tried with the latest versions of every tool, deckgl and loadergl but couldn't make it work with the loaders parameter.
Environment
- Framework version: React 19
- Browser: Chrome
- OS: Mac, Windows Packages :
"@loaders.gl/core": "4.3.4",
"@loaders.gl/i3s": "^4.3.4",
"@deck.gl-community/editable-layers": "^9.1.1",
"@deck.gl-community/layers": "^9.1.1",
"@deck.gl/core": "^9.1.14",
"@deck.gl/extensions": "^9.1.14",
"@deck.gl/geo-layers": "^9.1.14",
"@deck.gl/layers": "^9.1.14",
"@deck.gl/mapbox": "^9.1.14",
"@deck.gl/mesh-layers": "^9.1.14",
"react": "^19.1.0",
Logs
parse-3d-tile.js:30 Uncaught (in promise) Error: 3DTileLoader: unknown type {"id
at parse3DTile (parse-3d-tile.js:30:19)
at parseTile (tiles-3d-loader.js:75:11)
at Object.parse2 [as parse] (tiles-3d-loader.js:43:63)
at parseWithLoader (parse.js:80:39)
at async parse (parse.js:50:12)
at async load (load.js:41:11)
at async Tile3DLayer._loadTileset (tile-3d-layer.ts:202:25)
parse3DTile @ parse-3d-tile.js:30
parseTile @ tiles-3d-loader.js:75
parse2 @ tiles-3d-loader.js:43
parseWithLoader @ parse.js:80
await in parseWithLoader
parse @ parse.js:50
await in parse
load @ load.js:41
await in load
_loadTileset @ tile-3d-layer.ts:202
updateState @ tile-3d-layer.ts:121
_update @ layer.ts:990
_initialize @ layer.ts:932
_initializeLayer @ layer-manager.ts:362
_updateSublayersRecursively @ layer-manager.ts:326
_updateLayers @ layer-manager.ts:281
setLayers @ layer-manager.ts:202
updateLayers @ layer-manager.ts:214
_onRenderFrame @ deck.ts:1102
_renderFrame @ animation-loop.ts:362
redraw @ animation-loop.ts:236
_animationFrame @ animation-loop.ts:348
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
start @ animation-loop.ts:195
await in start
Deck @ deck.ts:403
_onAddInterleaved @ mapbox-overlay.ts:127
onAdd @ mapbox-overlay.ts:78
addControl @ map.ts:829
(anonymous) @ use-control.ts:44
react_stack_bottom_frame @ react-dom-client.development.js:23953