This could have several performance improvements:
- Deal with single web worker. Instead of loading/parsing the MVT in one worker, returning the data, and then passing to this package in another web worker, loading, parsing, and styling happens in the same worker.
- Use
TypedArrays. In the current MVTLoader, everything is parsed as regular JS objects and arrays. If you parse the MVT at the same time as you're creating binary objects to return to Deck.gl, maybe you'd be able to always use TypedArrays
- Load directly to
dict/Map. Currently, loaders.gl parses to a flat array, which I then need to loop over again when searching for features pertaining to a particular source layer. Could theoretically always work directly with the pbf, but would it take time to parse features every time you iterate over the pbf? Could be better to parse the mvt once for the layers you know you'll be looking at later.
This could have several performance improvements:
TypedArrays. In the currentMVTLoader, everything is parsed as regular JS objects and arrays. If you parse the MVT at the same time as you're creating binary objects to return to Deck.gl, maybe you'd be able to always useTypedArraysdict/Map. Currently,loaders.glparses to a flat array, which I then need to loop over again when searching for features pertaining to a particular source layer. Could theoretically always work directly with the pbf, but would it take time to parse features every time you iterate over the pbf? Could be better to parse the mvt once for the layers you know you'll be looking at later.