#13535·cesium

MVTDataProvider: Optimizing tileset traversal

Author: donmccurdyCreated May 29, 2026Updated Sep 14, 2026
Labelstype - enhancementcategory - vector data

Feature

For large, global MVT datasets, it appears that MVTDataProvider is doing certain allocations for every possible tile during initialization. For a tileset available from levels 0–20+, the number of possible tiles is very large, and these allocations are causing the application to OOM.

I haven't debugged too closely yet, but I believe the data provider is perhaps trying to build an explicit tileset.json containing all possible tiles. Ideally there should be some way to reuse existing implicit tiling schemes, or to define a new implicit tiling scheme, so that higher zoom levels don't cost anything at runtime until we zoom in enough to use them.

Example:

javascript
const mvt = await Cesium.MVTDataProvider.fromUrl(
  // Source: https://deck.gl/docs/api-reference/geo-layers/mvt-layer
  "https://tiles-a.basemaps.cartocdn.com/vectortiles/carto.streets/v1/{z}/{x}/{y}.mvt",
  { minZoom: 0, maxZoom: 14 },
);

viewer.scene.primitives.add(mvt);

AI acknowledgment

  • I used AI to generate this feature request.
  • (If the above is checked) I have reviewed the AI-generated content before submitting.