[mapserver-dev] WMS and vendor-specific sortBy parameter

Rahkonen Jukka (MML) jukka.rahkonen at maanmittauslaitos.fi
Wed Feb 19 12:31:24 PST 2020


Hi,

Third alternative that I would perhaps use is to duplicate the mapfile, edit as required, and use separate URLs for WMS and WFS. For us that is easy but Geoserver publishes the layers automatically as WMS and WFS (or WMS and WCS) and therefore it must have loads of internal logic for making the layers work for both services.

I am not sure how to make Geoserver to request data from db with ORDER BY for other type of layers than image mosaics. Probably it is possible with SQL View system that replicates our DATA in mapfile.

By reading the PR https://github.com/geoserver/geoserver/pull/2462/files I am not sure if Geoserver is trying to send ORDER BY to the database or if is just sorts itself the data that it gets from the data store as usual. Obviously that is the only possibility with a source like shapefile.

-Jukka Rahkonen-


-----Alkuperäinen viesti-----
Lähettäjä: mapserver-dev <mapserver-dev-bounces at lists.osgeo.org> Puolesta Seth G
Lähetetty: keskiviikko 19. helmikuuta 2020 21.01
Vastaanottaja: mapserver-dev at lists.osgeo.org
Aihe: [mapserver-dev] WMS and vendor-specific sortBy parameter

Hi devs,

I'm wondering if anyone else sees a need for a sortBy parameter for a MapServer WMS request as a vendor-specific parameter similar to the WMS filter in RFC 118 [1]?

The use-case for me is as follows:

- a layer is used for both WMS and WFS. 
- WFS 2.0 allows user-defined sorting with the SORTBY parameter
- setting an ORDER BY in the LAYER DATA clause effectively overrides any user sorting
- without an ORDER BY any WMS requests can return a different image with each request, hence the requirement for a WMS sortBy parameter. Often data needs to be overlain in a specific order e.g. linear surveys by date. 

The only current alternatives I can think of are:

- duplicate layer details and use one for WMS with a hard-coded ORDER BY, and one for WFS without
- if a sortBy parameter is passed in to a layer (via WFS) then override any existing ORDER BY, and use the default if not 

I'm unsure how each of the various database drivers implement sorting logic. In MSSQL sortBy adds an additional ORDER BY clause to the SQL leading to a SQL syntax error (fix on its way). 
Any implementation details from other drivers appreciated. 

This was implemented in GeoServer - see mailing list post [3], check-in [4], and docs [5] Does anyone know of any complications that could arise from implementing this?

Regards,

Seth

[1] https://mapserver.org/development/rfc/ms-rfc-118.html
[2] https://mapserver.org/ogc/wfs_server.html#support-for-sorting
[3] http://osgeo-org.1560.x6.nabble.com/New-vendor-parameter-for-WMS-WCS-sortBy-td5327210.html
[4] https://github.com/geoserver/geoserver/pull/2462/files
[5] https://docs.geoserver.org/stable/en/user/services/wms/vendor.html

--
web:http://geographika.co.uk
twitter: @geographika
_______________________________________________
mapserver-dev mailing list
mapserver-dev at lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev


More information about the mapserver-dev mailing list