mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
[FEATURE][SERVER] GetFeature with an other Geometry
This commit completes 'GetFeature without geometry' e3a832c29e4a98ed70b8085563aa0c8a92d44669 The GeometryName parameter can be used to get the extent or the centroid as the geometry. This Feature can be used to have a lighter gml document. The extra parameter GeometryName can be: * None * Extent * Centroid
This commit is contained in:
parent
df7e07bcf7
commit
2c5c866277
@ -1696,7 +1696,12 @@ QString QgsWFSServer::createFeatureGeoJSON( QgsFeature* feat, int prec, QgsCoord
|
||||
fStr += " \"bbox\": [ " + qgsDoubleToString( box.xMinimum(), prec ) + ", " + qgsDoubleToString( box.yMinimum(), prec ) + ", " + qgsDoubleToString( box.xMaximum(), prec ) + ", " + qgsDoubleToString( box.yMaximum(), prec ) + "],\n";
|
||||
|
||||
fStr += " \"geometry\": ";
|
||||
fStr += geom->exportToGeoJSON( prec );
|
||||
if ( mGeometryName == "EXTENT" )
|
||||
fStr += QgsGeometry::fromRect( box )->exportToGeoJSON( prec );
|
||||
else if ( mGeometryName == "CENTROID" )
|
||||
fStr += geom->centroid()->exportToGeoJSON( prec );
|
||||
else
|
||||
fStr += geom->exportToGeoJSON( prec );
|
||||
fStr += ",\n";
|
||||
}
|
||||
|
||||
@ -1759,7 +1764,13 @@ QDomElement QgsWFSServer::createFeatureGML2( QgsFeature* feat, QDomDocument& doc
|
||||
QgsGeometry* geom = feat->geometry();
|
||||
|
||||
QDomElement geomElem = doc.createElement( "qgs:geometry" );
|
||||
QDomElement gmlElem = QgsOgcUtils::geometryToGML( geom, doc, prec );
|
||||
QDomElement gmlElem;
|
||||
if ( mGeometryName == "EXTENT" )
|
||||
gmlElem = QgsOgcUtils::geometryToGML( QgsGeometry::fromRect( geom->boundingBox() ), doc, prec );
|
||||
else if ( mGeometryName == "CENTROID" )
|
||||
gmlElem = QgsOgcUtils::geometryToGML( geom->centroid(), doc, prec );
|
||||
else
|
||||
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, prec );
|
||||
if ( !gmlElem.isNull() )
|
||||
{
|
||||
QgsRectangle box = geom->boundingBox();
|
||||
@ -1818,7 +1829,13 @@ QDomElement QgsWFSServer::createFeatureGML3( QgsFeature* feat, QDomDocument& doc
|
||||
QgsGeometry* geom = feat->geometry();
|
||||
|
||||
QDomElement geomElem = doc.createElement( "qgs:geometry" );
|
||||
QDomElement gmlElem = QgsOgcUtils::geometryToGML( geom, doc, "GML3", prec );
|
||||
QDomElement gmlElem;
|
||||
if ( mGeometryName == "EXTENT" )
|
||||
gmlElem = QgsOgcUtils::geometryToGML( QgsGeometry::fromRect( geom->boundingBox() ), doc, "GML3", prec );
|
||||
else if ( mGeometryName == "CENTROID" )
|
||||
gmlElem = QgsOgcUtils::geometryToGML( geom->centroid(), doc, "GML3", prec );
|
||||
else
|
||||
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, "GML3", prec );
|
||||
if ( !gmlElem.isNull() )
|
||||
{
|
||||
QgsRectangle box = geom->boundingBox();
|
||||
|
Loading…
x
Reference in New Issue
Block a user