and asMultiPolygon()
- raise ValueError when these methods are called with null geometries
- raise TypeError when these methods are called with incompatible
geometry types, instead of silently returning empty lists
This allows nice and simple, elegant construction of checks for
Python.
To use, Python based checks should use the decorator syntax:
from qgis.core import check
@check.register(type=QgsAbstractValidityCheck.TypeLayoutCheck)
def my_layout_check(context, feedback):
results = ...
return results
Or, a more complete example. This one throws a warning when attempting
to export a layout with a map item set to the Web Mercator projection:
@check.register(type=QgsAbstractValidityCheck.TypeLayoutCheck)
def layout_map_crs_choice_check(context, feedback):
layout = context.layout
results = []
for i in layout.items():
if isinstance(i, QgsLayoutItemMap) and i.crs().authid() == 'EPSG:3857':
res = QgsValidityCheckResult()
res.type = QgsValidityCheckResult.Warning
res.title='Map projection is misleading'
res.detailedDescription='The projection for the map item {} is set to <i>Web Mercator (EPSG:3857)</i> which misrepresents areas and shapes. Consider using an appropriate local projection instead.'.format(i.displayName())
results.append(res)
return results
This allows users to select multiple existing categories and
group them into a single category, which applies to any of the
values from the selection.
This allows simpler styling of layers with a large number of
categories, where it may be possible to group numerous distinct
categories into a smaller, more managable set of categories
which apply to multiple values.
The option is available from the right click context menu
in the categories list view, whenever multiple categories
are selected.
Sponsored by SMEC/SJ
* [server] Fix layer order rendering when layers are in groups
Fixes#20810
* Update test images
* [server] Fix order of layers in subgroups
basically: layers in WMS is specified in a comma separated
list where leftmost layer is drawn first (it's at the bottom)
and QGIS layer order is exactly the opposite: first layer
in the TOP (topmost) is drawn last (it is at the top).
For this reason the server reverses the list before passing
it to the renderer.
* Fix order of layers in test
* Update src/server/services/wms/qgswmsrenderer.cpp