visgl / loaders.gl

Loaders for big data visualization. Website:
https://loaders.gl
Other
715 stars 195 forks source link

running tile-converter from 3D Tiles to I3s? #2333

Closed bertt closed 1 year ago

bertt commented 1 year ago

Hi,

I'm trying to run tool tile-converter to convert a 3D Tile tileset to I3s, but only get errors :-(

$  npx tile-converter --input-type 3DTILES --tileset tileset.json --name test

Like : Error: unknown scheme, TypeError: fetch failed. I've run command --install-dependencies. Also with the Docker image no luck.

Questions: Is there a sample dataset where this tool is working on? What 3D Tiles features are supported (1.0/1.1, b3dm/pnts/cmpt/i3dm?)

belom88 commented 1 year ago

v1.0 b3dm conversion is supported + some extensions of vNext. For instance, Cesium ION b3dm datasets can be converted. pnts, cmpt and i3dm is not supported by the tile-converter. To help you we need details, eg which OS do you use, NodeJS version? Having the example of the tileset you use would be good as well.

bertt commented 1 year ago

Hi for example on Mac (Node v18.10.0) I did (for https://bertt.github.io/utrecht3d):

$ git clone https://github.com/bertt/utrecht3d.git
$ cd utrecht3d/tiles
$ npx tile-converter --install-dependencies
Installing "EGM2008-5" model...
(node:22749) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
/utrecht3d/tiles/deps/egm2008-5.pgm saved.
All dependencies were installed succesfully.
$ npx tile-converter --input-type 3DTILES --tileset tileset.json --name test
 tileset.json --name test
Input tileset value: tileset.json
Modified tileset value: tileset.json
------------------------------------------------
Starting conversion of 3DTILES
------------------------------------------------
Loading egm file...
(node:22822) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
TypeError: Failed to parse URL from /utrecht3d/tiles/deps/egm2008-5.pgm
    at new Request (node:internal/deps/undici/undici:5573:19)
    at Agent.fetch2 (node:internal/deps/undici/undici:6371:25)
    ... 4 lines matching cause stack trace ...
    at Av.convert (/Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:415689)
    at /Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:439553
    at /Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:439852
    at Module.<anonymous> (/Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:439857) {
  [cause]: TypeError [ERR_INVALID_URL]: Invalid URL
      at new NodeError (node:internal/errors:393:5)
      at URL.onParseError (node:internal/url:565:9)
      at new URL (node:internal/url:645:5)
      at new Request (node:internal/deps/undici/undici:5571:25)
      at Agent.fetch2 (node:internal/deps/undici/undici:6371:25)
      at Object.fetch (node:internal/deps/undici/undici:7200:20)
      at fetch (node:internal/process/pre_execution:216:25)
      at ia (/Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:102168)
      at $o (/Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:130552)
      at Av.convert (/Users/bert/node_modules/@loaders.gl/tile-converter/dist/converter.min.js:292:415689) {
    input: '/utrecht3d/tiles/deps/egm2008-5.pgm',
    code: 'ERR_INVALID_URL'
  }
}
ibgreen commented 1 year ago

One note is that loaders.gl does not yet support Node.js v18. I can't say for sure that the problems are related to that from the above log, but we have just started looking at Node.js v18 and there are a number of issues to be solved, some involving the tile-converter.

Any chance you can try on Node v16? (We use nvm to quickly switch between versions).

bertt commented 1 year ago

ah yes got it now working using Node 16.19! Thanks