* add optional layer rendering to 3D terrain
* remove terrainLayers from Qgs3DMapSettings
* fix tests
* switch to layer terrain rendering when no 3d renderer is set
* fix mesh tests to handle terrain being disabled
"Extract within distance" algorithms
These algorithms allow users to select or extract features from one
layer which are within a certain distance of features from another
reference layer.
The distance checking is heavily optimised, using spatial indices
to restrict the number of features retrieved, and also automatically
handing the check off to the database server for postgis layers.
The distance parameter can also be data-defined.
Sponsored by QTIBIA Engineering
line 18 - added the German spatial data catalogue (GDI-DE Geodatenkatalog.de) of the Spatial Data Infrastructure Germany (GDI-DE) to the list of the default connections
within a certain distance of a reference geometry
E.g. this request will retrieve all features within 50 map units of the
provided linestring:
QgsFeatureRequest().setDistanceWithin(QgsGeometry.fromWkt('LineString(0 0, 10 0, 12 1)'), 50)
A new enum Qgis::SpatialFilterType has been added to reflect whether
a request uses no spatial filter, a BoundingBox filter (via
setFilterRect), or the new DistanceWithin filter.
Distance within filters are treated like bounding box filters, in
that they are independant of any attribute/id filters (such as
feature ids or expressions).
with preset choices in processing GUI
In some circumstances it is desirable to restrict the values available
when a user is asked to enter a string parameter to a list of predetermined
"valid" values, yet these values will vary installation by installation
(e.g. a "printer name" parameter, where you want users to pick from
printers installed on the system, but since the printer names will
vary install to install an enum parameter is not a valid choice)
This can now be done by setting the widget wrapper metadata
"value_hints" option, as demonstrated below. (While this provides a mechanism
for guiding users to select from valid string values when running a Processing
algorithm through the GUI, it does not place any limits on the string values
accepted via PyQGIS codes or when running the algorithm via other non-gui
means. Algorithms should gracefully handle other values accordingly.)
param = QgsProcessingParameterString( 'PRINTER_NAME', 'Printer name')
# show only printers which are available on the current system as options
# for the string input.
param.setMetadata( {'widget_wrapper':
{ 'value_hints': ['Inkjet printer', 'Laser printer'] }
})