dev-docs/roadmaps/tile-layer-roadmap.md
This roadmap outlines directions for the deck.gl TileLayer from v8.1 onwards. A roadmap rather an RFC was deemed appropriate to provide guidance given the number of major requests/PRs in play.
As of deck.gl v8.0 release, the TileLayer has been a highly appreciated addition to deck.gl. It has been available for a couple of releases and has stabilized through a series of bug fix and improvement PRs and is already quite usable.
However light usage of the layer quickly discovers that a number of things are lacking.
Tile3DLayer but are missing in the similar but simpler 2D TileLayer.TileLayer in new directions show how important this layer is to deck.gl users. Without a clear roadmap it is hard to provide guidance on and accept these PRs in a timely way.To be able to provide fair and consistent feedback on the ambitious PRs and feature requests being opened on the TileLayer, it is important to define what the layer is supposed to be and not to be.
Goals
Non-goals
TileLayer is NOT indended to be a full replacement for a base map (e.g. a mapbox base map) as that involves a long tail of features to achieve the required level of polish).At the time of writing, the following PRs were open. This roadmap tries to understand what these PRs want to achieve, then proposes a number of improvements to the TileLayer, then contains recommendations for these PRs in light of the proposals:
MVTTileLayer - Highlights: Mapbox vector tile support - Worker loading of mapbox vector tiles - Better/Customized Tile Cache - Composite Geometry...TileLayer - Provide the necessary hooks in to control coordinate mapping to tiles tileSize, tile2boundingBox, getTileIndices,TileLayer used to display terrain. Something we want to make easy (at least easier) for users.TileLayer tile handling into Tileset2D class.Tileset3D in loaders.gl, making it easier for a maintainer to work on both layers.Tileset2D to loaders.gl (easier maintenance)?Tileset2D and Tileset3D, e.g. for setting viewStatesTileset2D class.Tileset classdata based like other layers and makes it hard to e.g. switch tileset.@loaders.gl/loader-utils?RequestScheduler support to Tileset2D@loaders.gl/mvt modules for Mapbox Vector tilesAlso see 3DTileLayer with potree examples - Often non-geospatial.
To help providing feedback in the PRs themselves, it may help discuss how they fit into the TileLayer roadmap.
MVTTileLayerProposed feedback:
@loaders.gl/mvt (or @loaders.gl/mapbox-vector-tile) module.Tileset3D in loaders.gl)TileLayer offers necessary hooks that app needs.TileLayerProposed feedback:
TileLayer (or Tileset2D class) to control coordinate mapping to tiles
tileSize,tile2boundingBox,getTileIndices,This PR is just an example of how the existing TileLayer can be used to do new things, so no direct concerns need to be addressed.