[QGIS-Developer] Missing custom rendering properties in QGIS3 Server

Nyall Dawson nyall.dawson at gmail.com
Thu May 24 16:00:32 PDT 2018

On 23 May 2018 at 21:26, Sören Gebbert <soerengebbert at googlemail.com> wrote:
> Dear Nyall,
> what would be an officially supported and stable implementation?

Sorry - to give more info - basically this setting was added as a
hidden option because it was a couple of lines of code change which
works in certain circumstances. Basically you need to be using a map
canvas to render, and must have all the render caching options enabled
(which result in layers being rendered onto separate image surfaces
before compositing them together).

Unfortunately a proper implementation of this, which works across all
of QGIS (including server and print layouts) isn't trivial at all.
(I'd estimate something like 2-4 weeks of development effort). In the
end it comes down to funding - it's a highly desirable feature, and
the only reason it hasn't been done yet is due to the complexity of
the changes. So someone has to sponsor a developer to implement the
changes. Ways you could assist would be:

- approaching QGIS core developers and getting an estimate for the
funds required

- directly sponsor the change


- approach interested organisations and user groups and "co-fund" the changes
- organise a "crowd funding" effort to raise the funds

Hope that helps!

> Are there any plans to implement this functionality in a better way so
> it will work in desktop and server?
> Can i help to implement this kind of functionality?
> Best regards
> Sören
> 2018-05-23 12:33 GMT+02:00 Nyall Dawson <nyall.dawson at gmail.com>:
>> On 23 May 2018 at 18:56, Sören Gebbert <soerengebbert at googlemail.com> wrote:
>>> Dear developers,
>>> i am trying to use the undocumented custom vector layer property
>>> "rendering/renderAboveLabels" in QGIS3 server with no success.
>>> Storing this property in a QGIS project file enables the rendering of
>>> vector layers after the labeling is done. This works fine on QGIS3
>>> desktop, but not on QGIS3 server. I looked into the server code and
>>> realized that the QGS WMS server uses two renderers
>>> (QgsMapRendererParallelJob, QgsMapRendererCustomPainterJob) of which
>>> one (QgsMapRendererParallelJob) should support the custom property.
>>> However, i can not convince the server to apply the custom property
>>> when parallel rendering is enabled.
>>> What am i doing wrong? Are there differences between GQIS3 desktop and
>>> server in handling project files and layer properties?
>>> Why does QgsMapRendererCustomPainterJob not support the custom
>>> property  "rendering/renderAboveLabels"?
>> It's undocumented for a reason - it was added as a quick hack to
>> support this function in very limited circumstances, but isn't part of
>> the stable or public API as it's not officially supported.
>> In the long term we need a proper, officially supported and stable way
>> to handle this use case.
>> Nyall

More information about the QGIS-Developer mailing list