From 83c62dac671b0cd4917d0fceea456a7d2c54120b Mon Sep 17 00:00:00 2001 From: Marco Hugentobler Date: Fri, 10 Feb 2017 14:07:23 +0100 Subject: [PATCH] Take wfs gml directly from geometry --- src/server/services/wfs/qgswfsgetfeature.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/server/services/wfs/qgswfsgetfeature.cpp b/src/server/services/wfs/qgswfsgetfeature.cpp index 9d465d59c99..8a478d63a0c 100644 --- a/src/server/services/wfs/qgswfsgetfeature.cpp +++ b/src/server/services/wfs/qgswfsgetfeature.cpp @@ -1162,7 +1162,14 @@ namespace QgsWfs gmlElem = QgsOgcUtils::geometryToGML( ¢roid, doc, prec ); } else - gmlElem = QgsOgcUtils::geometryToGML( &geom, doc, prec ); + { + QgsAbstractGeometry* abstractGeom = geom.geometry(); + if ( abstractGeom ) + { + gmlElem = abstractGeom->asGML2( doc, prec, "http://www.opengis.net/gml" ); + } + } + if ( !gmlElem.isNull() ) { QgsRectangle box = geom.boundingBox(); @@ -1237,7 +1244,14 @@ namespace QgsWfs gmlElem = QgsOgcUtils::geometryToGML( ¢roid, doc, QStringLiteral( "GML3" ), prec ); } else - gmlElem = QgsOgcUtils::geometryToGML( &geom, doc, QStringLiteral( "GML3" ), prec ); + { + QgsAbstractGeometry* abstractGeom = geom.geometry(); + if ( abstractGeom ) + { + gmlElem = abstractGeom->asGML3( doc, prec, "http://www.opengis.net/gml" ); + } + } + if ( !gmlElem.isNull() ) { QgsRectangle box = geom.boundingBox();