Skip to content

tiles: skip layers without data when combining vector tiles - #596

Open
cportele wants to merge 2 commits into
masterfrom
tiles-combine-skip-empty-layers
Open

tiles: skip layers without data when combining vector tiles#596
cportele wants to merge 2 commits into
masterfrom
tiles-combine-skip-empty-layers

Conversation

@cportele

@cportele cportele commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Part of addressing ldproxy/ldproxy#1722

A tileset that has no data in the area of a tile cannot contribute a layer to a combined tile, so its tile is now neither looked up in the cache nor generated. Before, a tile that was not in the cache was generated on the fly for every source tileset, which made combining a tile as expensive as generating all of its layers.

  • TileEncoderMvt: transform the tile bounds once per combined tile and skip a layer when the bounds of its tileset do not intersect them; an unknown extent is treated as "may have data"
  • TileEncoders: hand the tileset bounds and the CRS transformer factory to the encoders, which are instances now instead of a static map
  • TileProviderFeatures: expose the bounds of a tileset from its metadata
  • TileSeedingJobCreator: a job set whose tilesets are not covered by any seeded cache produces no jobs, so its total stayed unknown; the job set was neither finished nor removed from the queue: it was reported at 0% indefinitely and it suppressed every following seeding run of the tile provider; such a job set now has a total of zero and completes through the regular cleanup

A tileset that has no data in the area of a tile cannot contribute a layer
to a combined tile, so its tile is now neither looked up in the cache nor
generated. Before, a tile that was not in the cache was generated on the
fly for every source tileset, which made combining a tile as expensive as
generating all of its layers.

- TileEncoderMvt: transform the tile bounds once per combined tile and skip
  a layer when the bounds of its tileset do not intersect them; an unknown
  extent is treated as "may have data"
- TileEncoders: hand the tileset bounds and the CRS transformer factory to
  the encoders, which are instances now instead of a static map
- TileProviderFeatures: expose the bounds of a tileset from its metadata
A job set whose tilesets are not covered by any seeded cache produces no jobs,
so its total stayed unknown. That is never 100%, so the job set was neither
finished nor removed from the queue: it was reported at 0% indefinitely and it
suppressed every following seeding run of the tile provider. Such a job set now
has a total of zero and completes through the regular cleanup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant