Hi list,
Following on from a discussion on implementing a SORTBY parameter for WMS
requests on the dev lists [1], I have a workaround that may be useful to some.
This resolves WMS image requests producing different results if a consistent
feature order isn't applied. A sort order can be hardcoded into a LAYER DATA
clause, but this then means sorting using a WFS SORTBY parameter to the same
layer is ignored.
My current solution is to add a new runtime-substitution parameter (with
validation to check for a single word) and then add this dynamically to an
ORDER BY clause. The trick is to add a ORDER BY (SELECT NULL) as the default
value for any requests to the layer not using the parameter. I'm not sure how
different database drivers implement this in the DATA clause so it may need
some tweaking. The example below works with the MSSQL driver.
DATA "GEOM FROM (
SELECT *
FROM myview
)
AS tbl USING UNIQUE fid USING SRID=3857 ORDER BY %ORDERBY%"
VALIDATION
"ORDERBY" "(^[A-Za-z]+$)"
"default_ORDERBY" "(SELECT NULL)"
END
A client WMS can then simply add ORDERBY=MyFieldName to ensure consistent
results.
Seth
[1] https://lists.osgeo.org/pipermail/mapserver-dev/2020-February/016071.html
--
web:http://geographika.co.uk
twitter: @geographika
_______________________________________________
mapserver-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-users