zoom levels for the tile's data
It seems that every VTPK behaves a bit like an indexed VTPK
where higher zoom level tiles may be replaced with lower
zoom level tiles. This new special handling is required
for non-indexed VTPKs where the high zoom level tile data
is empty, but there's not explicit tilemap present to
advise of us this situation in advance.
Fixes#52872
due to presence of tilemap, ensure that we always use the actual
render zoom level to match styles for the tile instead of the
zoom level corresponding to the tile
Otherwise we'll be rendering different rules depending on the
actual tile source, when we should always use the actual
rules for the current map scale
This allows us to correctly handle "indexed" vector tile sets,
where higher zoom level tiles may be missing where a lower
zoom level tile is deemed to have sufficient detail for higher
zoom levels.
correct place
This fixes the rendering of vector tiles layers which are constructed
in any non web mercator CRS.
(Unfortunately the required information is not recorded in mbtiles
packages, so it's necessary to set the correct parameters via
API calls when trying to load non-3857 mbtiles.)
as "basemap" layers
This flag identifies if the layer is considered a 'basemap' layer, where
certain properties of the layer should be ignored when calculating
project-level properties. For instance, the extent of basemap layers
should be ignored when calculating the overall extent of a project,
as these layers are typically global and extend outside of a project's
area of interest.
The Mapbox Vector Tile specification provides these definition for projection and bounds.
A Vector Tile represents data based on a square extent within a projection. A Vector Tile SHOULD NOT contain information about its bounds and projection. The file format assumes that the decoder knows the bounds and projection of a Vector Tile before decoding it.
Web Mercator is the projection of reference, and the Google tile scheme is the tile extent convention of reference. Together, they provide a 1-to-1 relationship between a specific geographical area, at a specific level of detail, and a path such as https://example.com/17/65535/43602.mvt.
Vector Tiles MAY be used to represent data with any projection and tile extent scheme.
It is possible to encode and write vector tiles in different CRS than EPSG:3857.
The implementation used the CRS bounds to defined the tile 0 top left coordinates and the scale denominator for 0 zoom level.