-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[Fix][Server] WMS Dimension identifying range #43417
Conversation
Hi @nyalldawson, @m-kuhn, @elpaso, @pblottiere, I'd like to see this fix in next release-3_16 without the mounth of quarantine. Can I set the label backport release-3_16 ? |
No tests? |
Hello @rldhont, +1 to add some tests. I suppose that some unit tests in |
@rldhont if you don't have time I can add some unit tests if you want. Let me know if I can help to move forward. |
@pblottiere helps are welcome |
I had a look at it before but was unsure about what problem it solves (only the how, not the what was in the pr message). If that's clear to others, good for me. Otherwise a short issue report would be great. |
The QGIS project highly values your contribution and would love to see this work merged! Unfortunately this PR has not had any activity in the last 14 days and is being automatically marked as "stale". If you think this pull request should be merged, please check
|
a54b275
to
23b683f
Compare
I have added new tests around time, date and dimension with |
Thanks for the update. |
See also https://www.mapserver.org/ogc/wms_dimension.html
|
@m-kuhn in the OGC WMS 1.1.0 specification
In QGIS server, dimension values are firstly splitted by |
Is there no such thing as escaping or encoding? I.e. specify |
@m-kuhn I have found a way to escape So, we have:
|
91e03e4
to
2cae223
Compare
If the GetCapabilities and the URL look different, it seems that QGIS Server is already html decoding the string. This leads me to think that this is something that should be fixed on client side rather than server side. I.e. if you use a default QGIS 3.16 server and send a number (or otherwise) encoded url ... does it possibly just work? |
If you URL encode a value, QGIS Server is decoded it so if you put |
Decoding happens inside QGIS server in qgsserverparameters.cpp as far as I can see. https://github.com/qgis/QGIS/blob/master/src/server/qgsserverparameters.cpp#L570 If the encoded values are also kept available here, this should allow for a very clean solution (i.e. no double-encoding as in the current proposal in this PR. No changes to the GetCapabilities request, keep |
2cae223
to
cd18ba5
Compare
I would suggest to store the query as |
The QGIS project highly values your contribution and would love to see this work merged! Unfortunately this PR has not had any activity in the last 14 days and is being automatically marked as "stale". If you think this pull request should be merged, please check
|
cd18ba5
to
d0e311b
Compare
Range value is separated by `/` for example `0/1`, but values can also contain `/`. Multiple values are separated by `,`. The code was identifying a range if the provided values contain `/`, the fix identifying a range if the provided values contain only 1 `/`.
…values" This reverts commit d0cd8af7b81df7e7ff19836fbd7368cdde12a6e7.
2402517
to
55f0cd6
Compare
While we hate to see this happen, this PR has been automatically closed because it has not had any activity in the last 21 days. If this pull request should be reconsidered, please follow the guidelines in the previous comment and reopen this pull request. Or, if you have any further questions, just ask! We love to help, and if there's anything the QGIS project can do to help push this PR forward please let us know how we can assist. |
Description
For WMS Dimension, range values are separated by
/
in request for example0/1
, but values can also contain/
like a french date. An other character is reserved by WMS Dimension, the,
is used to separate multiple values in request.The QGIS Server WMS code was identifying a range if the request dimension provided values contain
/
, the fix identifying a range if the dimension provided values contain only 1/
.Funded by Ifremer