QGIS Server Plugin: Pass WMS Request Parameter to Data Provider (SQL)
Budget: $750 – $1,500 USD
We are looking for an experienced QGIS developer to implement a custom solution for QGIS Server.
The goal is to make a custom WMS request parameter available inside the QGIS data provider layer (e.g. PostGIS) so that it can be directly used in SQL queries.
Background:
We are using QGIS Server to serve WMS layers backed by a PostGIS database. We need to dynamically filter or modify data at the database level based on parameters passed in the WMS request.
Example:
Incoming WMS request:
...&SERVICE=WMS&REQUEST=GetMap&MY_PARAM=123
Required functionality:
Extract custom parameter (e.g. MY_PARAM) from the WMS request in QGIS Server
Make this parameter available within the QGIS execution context
Ensure the parameter can be used inside the data provider (PostgreSQL/PostGIS)
Pass the parameter into SQL queries (e.g. WHERE clauses or functions)
The solution must work reliably in QGIS Server (not only in QGIS Desktop)
Technical expectations:
Preferably implemented as a QGIS Server plugin (Python)
If necessary, propose and implement a C++/core-level solution
Clean and maintainable code
Compatible with current QGIS Server versions
Nice to have:
Experience with QGIS Server internals
Experience with QgsExpressionContext / custom variables
Experience with PostGIS query optimization
Deliverables:
Working plugin or extension
Example project demonstrating usage
Documentation (setup + usage)
Short explanation of limitations (if any)
To apply, please include:
Relevant QGIS / QGIS Server experience
Links to previous work (plugins, GitHub, etc.)
Brief explanation of how you would approach this problem
Estimated timeline and cost
Important note:
This requirement goes beyond standard expression variables — the parameter must be usable at the data provider / SQL level.
The goal is to make a custom WMS request parameter available inside the QGIS data provider layer (e.g. PostGIS) so that it can be directly used in SQL queries.
Background:
We are using QGIS Server to serve WMS layers backed by a PostGIS database. We need to dynamically filter or modify data at the database level based on parameters passed in the WMS request.
Example:
Incoming WMS request:
...&SERVICE=WMS&REQUEST=GetMap&MY_PARAM=123
Required functionality:
Extract custom parameter (e.g. MY_PARAM) from the WMS request in QGIS Server
Make this parameter available within the QGIS execution context
Ensure the parameter can be used inside the data provider (PostgreSQL/PostGIS)
Pass the parameter into SQL queries (e.g. WHERE clauses or functions)
The solution must work reliably in QGIS Server (not only in QGIS Desktop)
Technical expectations:
Preferably implemented as a QGIS Server plugin (Python)
If necessary, propose and implement a C++/core-level solution
Clean and maintainable code
Compatible with current QGIS Server versions
Nice to have:
Experience with QGIS Server internals
Experience with QgsExpressionContext / custom variables
Experience with PostGIS query optimization
Deliverables:
Working plugin or extension
Example project demonstrating usage
Documentation (setup + usage)
Short explanation of limitations (if any)
To apply, please include:
Relevant QGIS / QGIS Server experience
Links to previous work (plugins, GitHub, etc.)
Brief explanation of how you would approach this problem
Estimated timeline and cost
Important note:
This requirement goes beyond standard expression variables — the parameter must be usable at the data provider / SQL level.