This commit adds a virtual method to QgsMapLayer to enable the creation of custom
elevation profiles for any type of layer.
The methods returns a pointer to a helper class of type
QgsAbstractProfileSource which is a factory for profile generators
(cf. documentation for QgsAbstractProfileSource).
Existing layers that derive from QgsAbstractProfileSource just override
this method returning a *this* pointer.
As the method is *sipified* it can be used in python to declare custom
profile source for classes derived from PluginLayer (ownership of the
QgsAbstractProfileSource must then be managed on the python side).
Deprecate old methods and make methods always take QgsSldExportContext.
Add capacity to QgsSldExportContext to collect export errors and
warnings.
The old API had no way to reliably report errors/warnings during
export to users.
Fixes#61476 / #61493
The analysis of DescribeFeatureType response with the GMLAS driver makes
appear fields that are not supported by the
addFeatures()/changeAttributeValues() method. So if transaction support
is detected and featureMode=default, use QGIS built-in analyser to get
SimpleFeatures only. Otherwise try the GMLAS method.
This allows to define a custom tolerance. If this tolerance is
enabled, then this tolerance is used instead of the one defined in the
elevation profile widget.
This custom tolerance is enabled and set to 0 by default for Lines and
Polygons. Indeed, most of the time, only want to use the tolerance for
points.
The typedef is only present in the .sip file, but without this
annotation SIP assumes it also exists in QGIS headers. This didn't
completely break the build, since we concatenate multiple SIP headers
into larger files, so the typedefs from one part "fixed" another. Run
sip-build without --concatenate to see the issue clearly.
This fix is currently sadly not fully effective due to a SIP bug:
https://github.com/Python-SIP/sip/issues/66
Allows easy retrieval of the geometry column name from the data
provider, if applicable.
(This was NOT possible to retrieve in a consistent, provider
independant way before)