QGIS Server throw an exception if the project has bad layers, but the user can defined restricted layers which are unpublished layers.
So restricted layers can be bad layers server side, it is not necessary an error.
This code verified that the bad layers are not restricted. If the project contains unrestricted bad layers, the server throw an exception.
* [FEATURE] Mesh streamlines
fix#29534
The vector field data set in a mesh layer can currently be only rendered with arrows. This PR adds a new feature to render vector field in mesh layers with streamlines.
The streamlines are seeded from start points. The seeding points can start from the vertices of the mesh, from a used grid or randomly. Streamlines could be coloured or width can be selected.
Make sure Python exceptions are converted into
QgsServerException and catched by the main
service executor.
Without this patch, the server process is terminated
(aborted).
In OGC WMS standard, the empty string represents the default style.
QGIS Server when it parses the parameters, QGIS Server when it parses parameters it removes empty parts.
When all requested styles are default ones it's equal to an empty parameter STYLE, as defined in the standard.
When only one layer is requested, there is no issue with custom or default style.
When multiple layers are requested and some with custom styles, because QGIS Server does not retain empty strings, it loses the layer / style match.
To fix it, keeps empty parts for not empty styles parameters.
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)
Makes for nicer dox for both c++ and Python!
Followup https://github.com/qgis/QGIS/pull/8830 that fixed
a regression with rewritten urls in the server, unfortunately
my original solution introduced a side-effect on the POST
request, with the new approach I'm introducing a new method
to retrieve the URL as seen by the web server: by default
this is the same URL seen by QGIS server, but in case
a rewrite module made some changes, the original URL will
be used as a base URL if not overridden by a config setting.
This PR comes with an extended set of tests that should
cover both (rewritten and unrewritten) cases for GET and
POST and for WFS/WFS/WCS and WMTS.