From 59c0ac3f52bc8822341d5887a919a2b3d2403cf8 Mon Sep 17 00:00:00 2001 From: Matteo Ghetta Date: Mon, 15 Jan 2024 10:35:05 +0100 Subject: [PATCH 1/2] remove NoGeometry flag --- lizmap_server/get_feature_info.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lizmap_server/get_feature_info.py b/lizmap_server/get_feature_info.py index 90015942..1a61f8de 100755 --- a/lizmap_server/get_feature_info.py +++ b/lizmap_server/get_feature_info.py @@ -211,7 +211,6 @@ def responseComplete(self): expression = server_feature_id_expression(result.feature_id, result.layer.dataProvider()) if expression: expression_request = QgsFeatureRequest(QgsExpression(expression)) - expression_request.setFlags(QgsFeatureRequest.NoGeometry) feature = QgsFeature() result.layer.getFeatures(expression_request).nextFeature(feature) else: From dac5ca3c2b4ba3a9d67343f937553f9684353e73 Mon Sep 17 00:00:00 2001 From: Matteo Ghetta Date: Mon, 15 Jan 2024 16:20:48 +0100 Subject: [PATCH 2/2] retrieve getFeatureInfo from project server properties --- lizmap_server/get_feature_info.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lizmap_server/get_feature_info.py b/lizmap_server/get_feature_info.py index 1a61f8de..feac85ff 100755 --- a/lizmap_server/get_feature_info.py +++ b/lizmap_server/get_feature_info.py @@ -20,7 +20,7 @@ QgsFeatureRequest, QgsProject, ) -from qgis.server import QgsServerFilter +from qgis.server import QgsServerFilter, QgsServerProjectUtils from lizmap_server.core import find_vector_layer, server_feature_id_expression from lizmap_server.logger import Logger, exception_handler @@ -200,6 +200,9 @@ def responseComplete(self): exp_context.appendScope(QgsExpressionContextUtils.globalScope()) exp_context.appendScope(QgsExpressionContextUtils.projectScope(project)) + # retrieve geometry from getFeatureInfo project server properties + geometry_result = QgsServerProjectUtils.wmsFeatureInfoAddWktGeometry(project) + # noinspection PyBroadException try: for result in features: @@ -211,6 +214,8 @@ def responseComplete(self): expression = server_feature_id_expression(result.feature_id, result.layer.dataProvider()) if expression: expression_request = QgsFeatureRequest(QgsExpression(expression)) + if not geometry_result: + expression_request.setFlags(QgsFeatureRequest.NoGeometry) feature = QgsFeature() result.layer.getFeatures(expression_request).nextFeature(feature) else: