diff --git a/lizmap_server/get_feature_info.py b/lizmap_server/get_feature_info.py index 90015942..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,7 +214,8 @@ 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) + if not geometry_result: + expression_request.setFlags(QgsFeatureRequest.NoGeometry) feature = QgsFeature() result.layer.getFeatures(expression_request).nextFeature(feature) else: