-
Notifications
You must be signed in to change notification settings - Fork 135
improve behavior of WMS Renderering for not displayed scales #259
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
Conversation
Signed-off-by: Nikolaos Pringouris <nprigour@gmail.com>
| } else { | ||
| request.addLayer(layer); | ||
| } | ||
| } else { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering why this else block is required. My read is, that no request is added for the layer if minScale & maxScale would not fit to the current scale. Something I missed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but @fgdrf the reason was clearly stated in my initial comment when creating this pull request
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I thought it is possible to define different scale levels for different WMS Layers of the same Ressource. If so I guess its relevant to process others. On the other hand the implementation merges different request from renderer and only requests once per WMS-Ressource I guess.
So it might be confusing having the option per layer but at the end every parameter (layer scale, etc) is considered for the request.
What happens if the first layer for a resource doesn't match the configure scale levels? Are all the others (of the same ressource) are not rendered anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @fgdrf
To be honest I haven't thought of the case you mentioned. Is it possible to have many WMS Layer using the same renderer? When I was testing, I observe that for every layer a separate rendererer was created. Do you have a use case where what you mention is possible?
Anyway I will recheck. May be using continue instead of return (and keeping a counter whether any layers were actually added to the request) would be more appropriate in the else statement, since we are inside a for loop.
terminating the process Signed-off-by: Nikolaos Pringouris <nprigour@gmail.com>
|
@nprigour Finally can you quantify this improvement in terms of faster time to process request before requested. Or even on Server side to reduce processing of unneccessary requests / unused responses? Where does the fix save more processing costs, server or client and is it considerable? Thanks again for the fix! |
|
Hi @fgdrf, Moreover the following exception occured at the geoserver side which may explain the reason:
|

Improve behavior of WMS renderer (BasicWMSRenderer2 class) by avoiding full execution of render method in scales ranges where rendering has been disabled.
Prior to this improvement the render method seemed to stuck (progress monitor did not finish) when reaching at line 309.
BufferedImage image = readImage(wms, request, monitor);Signed-off-by: Nikolaos Pringouris nprigour@gmail.com