
Closed
Posted
Paid on delivery
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.
Project ID: 40362054
140 proposals
Remote project
Active 23 secs ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
140 freelancers are bidding on average $1,140 USD for this job

Hello, As a part of Live Experts, I am excited to offer my expertise in Geographical Information Systems (GIS), Software Development, SQL, and Python for your project. With a vast array of skills and a drive for perfection, I believe that we are the perfect fit for implementing your custom solution for QGIS Server. Our previous work demonstrates not only our adeptness but also our innovative problem-solving approaches. We recognize that the essence of your requirement lies in making WMS request parameters directly available and usable within the QGIS server context, especially at the database level. This aligns seamlessly with our combined knowledge in handling Python-based plugins and core-level solutions, ensuring clean, maintainable code compatible with current QGIS server versions. Moreover, our experience isn't limited to just the implementation aspect; we have had significant engagements with PostGIS query optimizations, which ideally complements this project's needs. We understand that effective project management is as crucial as technical proficiency, and we can assure you a detailed timeline of deliverables along with thorough documentation to facilitate easy setup and usage Thanks!
$1,500 USD in 6 days
7.9
7.9

With over a decade of experience in QGIS and high-complexity systems, I understand your goal of implementing a custom solution for QGIS Server to pass WMS request parameters to the data provider (SQL). My background in serving over 1 million users in high-security systems and FinTech directly applies to the complexity of dynamically filtering and modifying data at the database level based on WMS request parameters. A strategic insight for ensuring scalability and security is to implement the solution as a QGIS Server plugin in Python, with the option to propose and implement a C++ solution if needed. Drawing from my experience, including building and scaling Telegram Mini Apps for a user base of over 1 million, I am confident in handling the technical expectations of this project. I encourage you to contact me to discuss the roadmap for this project further. I look forward to the opportunity to collaborate on delivering a reliable and efficient solution for your QGIS Server plugin.
$1,200 USD in 20 days
6.7
6.7

Hello, I am an experienced QGIS developer with a strong background in Python, SQL, and PostgreSQL. I can implement a custom QGIS Server plugin to extract the WMS request parameter (e.g., MY_PARAM) and make it available for use in SQL queries within the PostGIS data provider. My approach will ensure clean, maintainable code compatible with the latest QGIS Server versions. I will deliver a working plugin, example project, and comprehensive documentation. My previous work includes similar projects, and I can provide links upon request. Estimated timeline is 3-4 weeks at a budget of $1,200. If this aligns with your needs, I’d be glad to discuss details and start right away. Best regards, Sujeewa, GISPromo IT Solutions
$850 USD in 5 days
6.9
6.9

Hi, This is Elias from Miami. I understand this is not a standard QGIS styling task. You need a QGIS Server-side solution that captures a custom WMS parameter, pushes it into the server execution flow, and makes it usable at the PostGIS/data-provider SQL level inside GetMap requests. The key part is making it work reliably in QGIS Server, not just as a desktop expression trick. My approach would be to first validate the cleanest injection point in QGIS Server, then implement it as a server plugin if the provider context allows it cleanly. If the parameter cannot be propagated deeply enough through Python hooks alone, I’d propose a small core-level extension path and keep the implementation well documented and maintainable. The goal would be a working demo project, plugin/extension code, and a clear explanation of any limits around provider caching or query execution flow. A few quick questions: 1. Which QGIS Server version are you running in production? 2. Does the parameter need to affect all WMS layers, or only selected PostGIS-backed layers? 3. Are you open to a core/C++ patch if Python plugin hooks stop short of provider-level SQL access? Once I confirm version and constraints, I can define the fastest reliable implementation path.
$1,125 USD in 7 days
7.0
7.0

I'm Iosif Peterfi, 15+ years of delivering secure, scalable systems across Europe, and I bring a calm, outcome-focused approach to QGIS Server projects. This is my speciality: turning map server requests into database-aware decisions by extending the execution context so WMS parameters can influence SQL queries in PostGIS, with reliability and maintainability at the core. You're looking to extract a custom WMS parameter from requests, expose it in the QGIS execution context, and feed it into PostGIS SQL so filters happen at the database level, reliably on QGIS Server. Deliver a Python-based QGIS Server plugin that reads the parameter from each GetMap request, registers it in the context, and ensures it can be used inside SQL generation for the data provider. The result is parameter-driven filtering that improves data relevance, reduces data transfer, and preserves server stability. Milestones: design alignment, plugin implementation, integration with a sample PostGIS layer, end-to-end validation, and documentation with a demo project. Risk mitigations: compatibility with current QGIS Server versions and maintainable, clear APIs. Last quarter I helped a municipal GIS team enable a custom request parameter for a PostGIS-backed WMS layer, delivering reliable parameter-driven filtering and a measurable drop in data transfer during peak loads. The project underscored strong governance and maintainability under real-world traffic. 1-2 weeks. Happy to discuss scope alignment.
$2,250 USD in 14 days
6.2
6.2

Hi, I have strong experience with Python, PostgreSQL, PostGIS, and QGIS-based backend workflows, including server-side request handling, custom variables, and database-driven filtering logic. I have real hands-on experience working with GIS data pipelines and provider-level query behavior, and for this I would implement a clean QGIS Server plugin that captures the custom WMS parameter, injects it into the execution context, and makes it available for safe use inside PostGIS SQL queries in QGIS Server, not just Desktop. You can expect clear communication, fast turnaround, and a high-quality result that fits seamlessly into your existing workflow. Best regards, Juan
$750 USD in 1 day
5.8
5.8

As a seasoned Software Engineer with solid Python skills, I have successfully tackled complex projects similar to yours. I've spent significant time and energy in developing QGIS plugins, ensuring clean and maintainable codes that are compatible across various versions. My expertise extends to the core level, so if necessary, I can deftly implement a C++ solution for robustness. To address your specific requirement of passing WMS request parameter to the QGIS data provider and using it in SQL queries, my technical background with QgsExpressionContext and PostGIS query optimization gives me an edge. With this experience, I'm confident in extracting the necessary details from the WMS requests and seamlessly integrating them into the PostgreSQL/PostGIS data provider layer. Finally, my exposure to network security and cybersecurity echoes your need for high reliability and efficiency. I adhere to strict coding best practices and emphasize on providing comprehensive yet concise documentation. With my skillset combined with efficient time management, I can confidently deliver a working plugin or extension along with a well-documented example project within the agreed timeline. Let's bring your vision to life together!
$1,433.33 USD in 3 days
5.8
5.8

I'm HAMZA, an experienced developer with a broad range of skills that I believe are well-suited to your QGIS project. My focus is on delivering complete and efficient solutions which is why I'm confident I can tackle the complexities of your task. For instance, my solid background in Python and SQL - the technologies central to your project - ensure the highest standard of clean, maintainable code. My expertise isn't restricted to just Python and SQL; I also have a deep understanding of tools like ESP32, STM32, Raspberry Pi, among others. This proficiency allows me to make informed decisions when it comes to integrating different systems
$750 USD in 3 days
5.3
5.3

Your WMS parameter injection requirement exposes a critical architectural gap - QGIS Server's request context doesn't propagate down to the PostGIS provider layer by default. If you implement this incorrectly, you'll either break connection pooling or create SQL injection vulnerabilities when parameters hit raw queries. Before architecting the solution, I need clarity on two things: Are you expecting concurrent WMS requests with different MY_PARAM values to hit the same PostGIS connection pool? This determines whether we use session variables or connection-level parameters. What's your current QGIS Server version and PostGIS setup - are you running multiple worker processes behind nginx, or single-threaded? This affects whether we hook into QgsServerFilter or need a custom provider wrapper. Here's the architectural approach: - QGIS SERVER PLUGIN: Implement a QgsServerFilter subclass that intercepts requestReady() to extract MY_PARAM and inject it into QgsExpressionContextScope as a provider-accessible variable. - POSTGIS INTEGRATION: Use PostgreSQL's SET LOCAL to pass the parameter as a session variable (SET LOCAL app.my_param = '123'), then reference it in your layer's SQL definition using current_setting('app.my_param'). - SQL INJECTION PREVENTION: Sanitize MY_PARAM using psycopg2's parameter binding before passing to SET LOCAL - never concatenate user input directly into SQL strings. - CONNECTION POOLING FIX: Ensure SET LOCAL executes within the same transaction as your GetMap query by hooking into the provider's connection acquisition logic, otherwise parameters will leak between requests. I've built 3 custom QGIS Server plugins for clients handling dynamic spatial filters at the database level, including one that passed JWT claims into PostGIS RLS policies. The tricky part isn't extracting the parameter - it's ensuring thread safety when multiple requests hit the same connection pool. Let's schedule a 15-minute call to walk through your current layer configuration and confirm whether your PostGIS queries use views or direct table access. I don't take on QGIS Server work without understanding the deployment architecture first.
$1,020 USD in 30 days
5.7
5.7

Hello, I understand the need for a custom solution in QGIS Server to pass WMS request parameters to the data provider for direct use in SQL queries. The goal is to dynamically filter or modify data at the database level based on incoming WMS request parameters, enhancing the functionality of QGIS Server. To address this, I propose implementing a QGIS Server plugin in Python that extracts custom parameters from WMS requests and makes them available within the QGIS execution context. By ensuring these parameters can be utilized in SQL queries within the data provider layer, we can achieve the desired outcome of enhancing data filtering and modification capabilities seamlessly. With a strong background in QGIS development and experience with QGIS Server internals, I am well-equipped to tackle this project efficiently. I am ready to start immediately and look forward to discussing the scope, timeline, and expectations further. Best regards, Justin
$1,200 USD in 7 days
4.9
4.9

Hi there, I’m a full‑stack developer with 5+ years of custom coding experience (PHP, Python, Node, APIs) and a strong focus on QGIS/GeoServer extensions. I’ve built several QGIS Server plugins that expose request variables to the rendering pipeline, so I understand the challenge of getting a custom WMS parameter like MY_PARAM into a PostGIS query. My plan would be to create a lightweight Python server plugin that hooks into the `QgsServerRequest` lifecycle, extracts the extra parameter, and injects it into the layer’s `QgsExpressionContext` as a variable. Then, using a custom data provider wrapper (or a `QgsProviderConnection` subclass) I would rewrite the layer’s source SQL, appending a WHERE clause that references the variable via `@my_param`. For cases where the Python hook isn’t enough, I’m ready to add a small C++ extension to ensure the variable is passed down before the provider builds its query, guaranteeing it works both on desktop and server. I’ll deliver the plugin, a minimal project that shows a GetMap call with `MY_PARAM=123`, and clear docs on installing it on your current QGIS Server version. Could you let me know which QGIS Server release you’re running and whether you already have any custom provider code in place? Looking forward to bringing this into your workflow. Thanks.
$750 USD in 10 days
4.9
4.9

✋ Hi There!!! ✋ The Goal of the project:- Enable passing custom WMS request parameters into QGIS Server data provider for direct use in PostGIS SQL queries. I carefully reviewed your requirement to extract custom WMS parameters, inject them into QGIS Server execution context, and make them usable at the data provider level beyond standard expressions. I am a strong fit because I have deep experience handling server-side logic, GIS integrations, and database-driven filtering. * Develop QGIS Server plugin to capture and expose custom WMS parameters * Inject parameter into execution context and bind it with PostGIS queries * Ensure reliable SQL-level usage with optimized and maintainable approach I will also handle code structure, testing, documentation, and full source code delivery with example project setup. I bring 9+ years experience as a full stack developer and have worked on GIS-based systems, API integrations, and database-level dynamic filtering solutions. Looking forward to chat with you for make a deal Best Regards Elisha Mariam!
$751 USD in 7 days
4.9
4.9

With my encompassing 7-year background in software development, I've mastered a wide range of languages including Python which is proving to be highly valuable for this project. I understand the complexity involved in your requirements and I am confident that I can deliver a reliable solution. My experience spreads across various domains including web development and Artificial Intelligence projects, which gives me an edge on approaching complex problems like this. To ensure smooth execution while collaborating with clients across distances, I place high importance on communication and understanding expectations. Your requirement has efficiently been noted down and actions will be taken accordingly to create a plugin for QGIS Server (Python) which meets all your specifications. We will then deliver documentation along with its limitations, as well as an example project showcasing its usage. My cost estimate for this project would be $500 with a proposed timeframe of 3-4 weeks. Let's connect further to discuss how we can bring more value to your project together!
$750 USD in 7 days
6.3
6.3

Hello I have experience working with QGIS Server, PostGIS, and custom data-driven GIS workflows, including extending request handling and query logic. Your requirement (injecting custom WMS parameters into the data provider/SQL layer) goes beyond standard expressions, so I would implement this via a QGIS Server plugin that intercepts the request early in the pipeline. Approach: I will create a Python server plugin using QgsServerFilter to extract MY_PARAM from the WMS request, then inject it into the request context and map it to a custom variable accessible at render time. To make it usable at SQL level, I will bind the parameter into the data source using dynamic SQL (e.g. parametrized views or layer datasource rewriting) so PostGIS queries can directly consume it (e.g. WHERE field = current_param). If needed for deeper integration, I can extend this with a provider-level hook or recommend a lightweight C++ patch, but in most cases the plugin + datasource override approach is sufficient and maintainable. I will also ensure thread safety and compatibility with QGIS Server (not just Desktop). Deliverables include working plugin, demo QGIS project, and clear setup documentation. I can share relevant GIS/backend work and adapt the solution to your exact PostGIS schema.
$800 USD in 12 days
4.9
4.9

Approaching the problem, I would develop a robust QGIS Server plugin in Python, leveraging QgsExpressionContext and custom variables such as the MY_PARAM you need. I will make sure that this parameter is accessible at both the QGIS execution context as well as within the data provider layer facilitating its usage in SQL queries (WHERE clauses or functions). Moreover, if required, I am also open to exploring any possible C++ solutions to effectively address your needs. In terms of timeline and cost estimates, I always strive for thoroughness and accuracy. Given the project complexity involved in passing WMS request parameters to the Data provider level, a timeline of 4-6 weeks seems appropriate. However, I am more than willing to discuss this further for better alignment with your expectations. Please note that such high-level technical projects require meticulousness – something that is second nature to me. Choose me and you can be assured of an effective QGIS Server plugin solution with clear documentation describing its setup and usage along with any potential limitations it may have.
$750 USD in 7 days
4.6
4.6

Hey, I will build the QGIS Server plugin that extracts your custom WMS parameter and pushes it through to the PostGIS data provider SQL, so MY_PARAM drives a real WHERE clause rather than only an expression variable. Approach: a Python server plugin using serverIface().registerFilter() to intercept GetMap, read MY_PARAM from QgsServerRequest, and dynamically set the layer subsetString, which PostGIS pushes into the generated SQL. If concurrency becomes a problem under load, the fallback is a PostgreSQL session variable via set_config() referenced in PostGIS views. Questions: 1) QGIS Server version, LTR or latest? 2) Single layer, or applied across multiple PostGIS layers? 3) Must the parameter also survive GetFeatureInfo and printing? Ready to start whenever you are. Best regards, Faizan
$1,000 USD in 7 days
4.7
4.7

Hi, I'm an adept Python developer with a keen interest in AI and automation specialization. This project caught my eye as it largely corresponds with my skill set. I've had experience in developing solutions for servers, and QGIS Server appears to be a challenge I can confidently take on. My approach typically involves clean, well-tested, and production-ready code. I would love to understand more details about the custom solution you're seeking for QGIS Server and discuss how we can achieve your desired outcomes. Looking forward to potentially collaborating with you.
$1,375 USD in 14 days
4.6
4.6

Hello, I have experience working with QGIS Server, PostGIS, and custom request handling. Approach: I would implement a QGIS Server Python plugin that intercepts the WMS request, extracts the custom parameter (e.g. MY_PARAM), and injects it into the request context. From there, I would expose it via QgsExpressionContext and ensure it can be passed down to the data provider layer, either through custom variables or by modifying the provider URI / SQL before execution. If needed, I can extend this with a lower-level approach to ensure the parameter is reliably available in PostGIS queries (e.g. via session variables or query rewriting). The goal is to make the parameter usable directly in SQL (WHERE clauses/functions) in a stable way on QGIS Server. Estimated timeline: about 1–2 weeks. I can provide a working plugin, example project, and documentation. Ready to discuss details. Best regards, Ian Brown
$1,100 USD in 7 days
4.6
4.6

Based on the stated requirements, the objective of this project is to design and implement a mechanism within QGIS Server that is capable of extracting custom parameters sent through WMS requests (such as MY_PARAM) and passing them in a controlled manner to a PostgreSQL/PostGIS-based data provider. This will enable the direct use of these parameters at the SQL level. The main focus of this approach is to develop a robust and production-ready solution that is compatible with current versions of QGIS Server and can systematically handle the limitations associated with directly forwarding request parameters into database queries. In the implementation phase, a plugin will first be developed at the QGIS Server level. This plugin will be responsible for handling incoming WMS requests (such as GetMap), extracting custom parameters, and injecting them into the QGIS execution context in a controlled and secure manner. At the database level, due to existing limitations, PostgreSQL/PostGIS functions or parameterized views will be designed, and where necessary, session variables will be used to transfer parameter values into SQL queries, enabling their use in conditions and database-side logic. The entire system will then be tested under real-world WMS scenarios and evaluated in terms of performance and stability. If required, PostGIS queries will be further optimized to ensure readiness for production use. From an experience perspective, this project will be carried out by a developer with 3 years of freelance experience in the GIS domain and 2 years of professional experience in operational GIS projects. The developer has hands-on experience in developing QGIS plugins using PyQGIS, implementing advanced algorithms such as PSO and A*, working with QGIS Server, PyWPS, and deploying spatial web services. In addition, strong expertise in PostgreSQL/PostGIS optimization and familiarity with OGC standards (WMS/WFS/WPS) will be applied throughout the project. The final deliverables will include a fully functional QGIS Server plugin, a sample project demonstrating usage, implementation of required PostgreSQL/PostGIS functions or views, comprehensive installation and deployment documentation, as well as a description of limitations and technical considerations. The total estimated execution time for the project is approximately 32 hours, including analysis and design, plugin development, PostGIS implementation, testing and validation, and final documentation. The entire process is expected to be completed within a timeframe of 4 to 5 working days.
$800 USD in 7 days
4.7
4.7

Applying for the QGIS Server plugin project, I bring to the table more than a decade's worth of expertise in software development and engineering. My finely honed skills in Python and PostgreSQL aligns perfectly with the requirements of this job, which can benefit from a customized QGIS Server plugin. I have an extensive portfolio of creating clean and maintainable coding solutions that have been successfully deployed across diverse domains. Although my career hasn't focused on QGIS Server exclusively, my background in software engineering and database management makes me uniquely positioned to provide innovative solutions to complex problems. My proficiency in writing highly optimized SQL queries is expected to be a significant advantage while extracting and utilizing conditional parameters at the data provider level, ensuring enhanced performance without sacrificing reliability. Notably, I have experience with PostGIS query optimization, a valuable skill for this job. In regard to how I would handle this project, I would first methodically identify the key areas of integration within the current QGIS Server structure. Then, using my strong grasp on QgsExpressionContext and custom variables, I will design a QGIS Server plugin that efficiently extracts and passes WMS query parameters into SQL queries.
$750 USD in 14 days
4.5
4.5

Zürich, Switzerland
Payment method verified
Member since Nov 26, 2015
€250-750 EUR
$30-250 USD
€250-750 EUR
€250-750 EUR
₹12500-37500 INR
€18-36 EUR / hour
$30-250 USD
$2-8 USD / hour
₹12500-37500 INR
$3000-5000 USD
₹1500-12500 INR
$3000-5000 AUD
€18-36 EUR / hour
$15-25 USD / hour
$25-50 USD / hour
₹600-1500 INR
$8-15 USD / hour
$30-250 USD
$250-750 USD
₹750-1250 INR / hour
₹75000-150000 INR
$100-300 USD
₹1500-12500 INR
₹12500-37500 INR