From 358f555cc2599fd0c8295b2e8e05539758199768 Mon Sep 17 00:00:00 2001 From: Pirmin Kalberer Date: Tue, 19 Dec 2023 14:06:29 +0100 Subject: [PATCH] Add legend_default_font_size setting --- README.md | 4 ++-- schemas/qwc-legend-service.json | 4 ++++ src/legend_service.py | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5ae31e1..0cbe9f8 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ QWC Legend Service ================== -Acts as a proxy between the client and the OGC service for GetLegendGraphic request, +Acts as a proxy between the client and QGIS server for GetLegendGraphic request, allowing to return custom legend graphics instead of the ones generated by the WMS server. **Note:** Requires a QGIS server running on `default_qgis_server_url`. @@ -202,4 +202,4 @@ Install requirements: Start local service: - CONFIG_PATH=/PATH/TO/CONFIGS/ python server.py + CONFIG_PATH=/PATH/TO/CONFIGS/ python src/server.py diff --git a/schemas/qwc-legend-service.json b/schemas/qwc-legend-service.json index 2c77310..c8ad978 100644 --- a/schemas/qwc-legend-service.json +++ b/schemas/qwc-legend-service.json @@ -24,6 +24,10 @@ "description": "Default base URL for forwarding WMS GetLegendGraphics requests", "type": "string" }, + "legend_default_font_size": { + "description": "Default font size for GetLegendGraphic request", + "type": "number" + }, "legend_images_path": { "description": "Path to legend images (required if using 'legend_image')", "type": "string" diff --git a/src/legend_service.py b/src/legend_service.py index b7e1d5a..4d41655 100644 --- a/src/legend_service.py +++ b/src/legend_service.py @@ -52,6 +52,7 @@ def __init__(self, tenant, logger): self.qgis_server_url = config.get( 'default_qgis_server_url', 'http://localhost:8001/ows/' ).rstrip('/') + '/' + self.legend_default_font_size = config.get("legend_default_font_size") # get path to legend images from config self.legend_images_path = config.get('legend_images_path', 'legends/') @@ -146,6 +147,13 @@ def get_legend(self, service_name, layer_param, format_param, params, type, "style": "" } req_params.update(params) + if self.legend_default_font_size: + if 'layerfontsize' not in req_params: + req_params['layerfontsize'] = \ + self.legend_default_font_size + if 'itemfontsize' not in req_params: + req_params['itemfontsize'] = \ + self.legend_default_font_size response = requests.get( self.qgis_server_url + service_name, params=req_params, timeout=30