-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option "Avoid artifacts when project is rendered as map tiles" doesn't work on server. #37679
Comments
@klipski did you mean "on Desktop side"? |
I mean server renders wrong symbology on adjacent tiles as you can see on the first picture. |
@klipski are you sure that this option applies also to QGIS Server? I just tested with QGIS (Desktop/Server) 2.18 and did two adjacent grtmap requests, and that option does not seems to achieve what you say: Also from this discussion https://lists.osgeo.org/pipermail/qgis-developer/2020-July/061805.html it seems that the option is about a different context in QGIS Desktop. Anyway I'm really not sure... |
I think that I found pull request with this feature #2666, and It seems it was created mainly for QGIS Server. |
I can confirm that this option was DEFINITELY designed with server in mind |
@nyalldawson right, but mu doubt remains, with this option selected two adjacent getmap requests should return always "matching" symbology? And also, shouldn't this option be (also) in the Server tab? |
Well, it should, but it's broken on server! Works still on desktop... |
@nyalldawson thanks. I'm also not sure is a regression, I tried it on a QGIS Desktop/Server 2.18 project and still I'm not getting the expected result, but may be I'm just doing it wrong. |
@klipski #41229 fixes this -- but note that since QGIS 3.16, you probably don't want to enable this setting anyway, as it's an extremely expensive option for the server to use and in QGIS 3.16 a very lightweight approach to avoiding map tiling artefacts was added and always applies, regardless of this setting. The only situation that I can see warrants the "avoid tile artefacts" option is for some advanced symbology effects like shapeburst fills -- but in this case I'd recommend controlling the behavior on a layer-by-layer basis through individual layer's symbology settings, via unchecking the "Advanced" - "Clip Features to Canvas Extent" option. This allows you to control per-layer the same result as the "avoid tile artefacts" does for an entire project, so you can selectively enable it only for layers which need it and aren't too taxing on your server. Hope that clarifies the situation! |
@nyalldawson maybe this setting should be documented to explain when it is useful. |
Yes - documentation would be quite important here, with examples where this (and the other per layer setting) would be useful (e.g. artifacts with patterns, label placement, gradients, outline issues, etc.) - basically when does it make sense to enable this setting and what "rough" cost it has on rendering speed. |
I'd honestly question whether we shouldn't just remove this option entirely, given that it's been broken since 3.0 and given that there's supported alternatives to achieve the same results without the huge performance cost. I can understand that it was useful prior to 3.16, but with the changes in 3.16 users are getting most of the same results now out of the box, without ANY added server load. Effectively all this option does now is disable the "clip features to map extent" option for ALL symbols across an entire project. Yes, disabling this option does prevent tiling artefacts if users are relying on shapeburst/gradient/centroid fills, or marker line patterns, but again it comes with a huge performance cost that is incurred by ALL symbols -- so even a simple solid color fill symbol will still render orders of magnitude slower for absolutely no difference. So, we could either:
Thoughts? |
@nyalldawson thank you for your help, I really appreciate it! I checked how the symbolization on the adjacent tiles behaves in QGIS 3.16 and it looks like that unchecking the "Advanced" - "Clip Features to Canvas Extent" option meets my expectations for now. |
Thanks for the feedback @klipski ! I'm keen to hear your thoughts regarding the options in #37679 (comment) about the future of this option... |
In my opinion this option seems to be the best one, but needs some explanation in the server documentation. |
settings, that's not a stable place to store things like this which are designed to apply in both desktop and server contexts! Refs qgis#37679
a project using WMS services Fixes qgis#37679
I've gone for option (3) here as it seems the best balance between user expectations and ease of use. |
settings, that's not a stable place to store things like this which are designed to apply in both desktop and server contexts! Refs #37679
a project using WMS services Fixes #37679
Describe the bug
In QGIS 2.18 and newer this option works fine on server side. In QGIS 3.x this option doesn't work, and symbology doesn't match on adjacent tiles.
How to Reproduce
QGIS and OS versions
QGIS: 3.X
OS: Ubuntu 18.04.3 Bionic Beaver
Additional context
QGIS 3.10
QGIS 2.18
The text was updated successfully, but these errors were encountered: