This introduces live preview when rendering WMTS layers - as soon as individual tiles are loaded, they are shown in map canvas... no need to wait with a blank map until all tiles are fully downloaded. Additionally, if there are already locally cached tiles of other zoom levels, they may be used in the preview while the tiles with best matching zoom level are being downloaded. This greatly improves the user experience when working with WMTS layers.
Additionally, I have added native support for XYZ tile layers into WMS provider (based on existing implementation of WMTS tiling). This allows loading of various new raster tile sources (e.g. OpenStreetMap tiles) that were before available only with QuickMapServices or OpenLayers plugins. To use XYZ tile layers, open the browser dock in QGIS and look for "Tile Servers (XYZ)" root entry. Right-clicking will open a menu to add connections. For example for OpenStreetMap the URL would be http://c.tile.openstreetmap.org/{z}/{x}/{y}.png
The work on WMTS live preview has been funded by Land Information New Zealand.
The work on XYZ tile layers has been funded by Lutra Consulting.
Max. 100 tiles is just too low. The max request area is currently 2000x2000 pixels
which boils down to approx 8x8 tiles of size 256x256, therefore max 64 tiles.
However this is the ideal case if the view scale matches the scale of tiles.
If the map view scale is approx in between two levels, we may need 12x12 tiles
to serve the request, so bumping the maximum to 256 should be enough.
more items in rightmost columns instead of leftmost columns
Eg a 2 column legend with 3 items would put 1 item in
the first column and 2 in the second. This was ugly, and now
it places 2 in the first column and 1 in the second.
The legend column assigner was incorrectly adding padding above
the first item in a column during column size calculation
(padding which is not present when actually rendering the column)
This adds a new configuration option to conditionally show or hide
tabs and groupboxes in drag and drop designer forms.
Configuration is done via a double click in the designer tree in the
fields configuration interface.
An expression can be entered to control the visibility. The expression
will be re-evaluated everytime values in the form change and the tab or
groupbox shown/hidden accordingly.
This makes it easier to get at least basic preview without having to wait
until new tiles are downloaded. The strategy is to use tiles up to two levels
lower resolution tiles and one level higher resolution tiles.
Fixes issues with the current approach:
- poor appearance on certain environments (esp OSX)
- large area on spin boxes' right which "swallows" clicks
and blocks interactivity
Fix#12920