Skip to content

Commit 341947e

Browse files
authoredAug 31, 2017
Merge pull request #5096 from boundlessgeo/server_ogr_multi_geom
[server] Rely on the provider to get the correct wkbType
2 parents 9fa12ac + 0346fb8 commit 341947e

File tree

1 file changed

+30
-39
lines changed

1 file changed

+30
-39
lines changed
 

‎src/server/services/wfs/qgswfsdescribefeaturetype.cpp

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -200,46 +200,37 @@ namespace QgsWfs
200200
{
201201
QDomElement geomElem = doc.createElement( QStringLiteral( "element" )/*xsd:element*/ );
202202
geomElem.setAttribute( QStringLiteral( "name" ), QStringLiteral( "geometry" ) );
203-
if ( provider->name() == QLatin1String( "ogr" ) )
204-
{
205-
// because some ogr drivers (e.g. ESRI ShapeFile, GML)
206-
// are not able to determine the geometry type of a layer.
207-
// we set to GeometryType
208-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:GeometryPropertyType" ) );
209-
}
210-
else
203+
204+
QgsWkbTypes::Type wkbType = layer->wkbType();
205+
switch ( wkbType )
211206
{
212-
QgsWkbTypes::Type wkbType = layer->wkbType();
213-
switch ( wkbType )
214-
{
215-
case QgsWkbTypes::Point25D:
216-
case QgsWkbTypes::Point:
217-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PointPropertyType" ) );
218-
break;
219-
case QgsWkbTypes::LineString25D:
220-
case QgsWkbTypes::LineString:
221-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:LineStringPropertyType" ) );
222-
break;
223-
case QgsWkbTypes::Polygon25D:
224-
case QgsWkbTypes::Polygon:
225-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PolygonPropertyType" ) );
226-
break;
227-
case QgsWkbTypes::MultiPoint25D:
228-
case QgsWkbTypes::MultiPoint:
229-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPointPropertyType" ) );
230-
break;
231-
case QgsWkbTypes::MultiLineString25D:
232-
case QgsWkbTypes::MultiLineString:
233-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiLineStringPropertyType" ) );
234-
break;
235-
case QgsWkbTypes::MultiPolygon25D:
236-
case QgsWkbTypes::MultiPolygon:
237-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPolygonPropertyType" ) );
238-
break;
239-
default:
240-
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:GeometryPropertyType" ) );
241-
break;
242-
}
207+
case QgsWkbTypes::Point25D:
208+
case QgsWkbTypes::Point:
209+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PointPropertyType" ) );
210+
break;
211+
case QgsWkbTypes::LineString25D:
212+
case QgsWkbTypes::LineString:
213+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:LineStringPropertyType" ) );
214+
break;
215+
case QgsWkbTypes::Polygon25D:
216+
case QgsWkbTypes::Polygon:
217+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PolygonPropertyType" ) );
218+
break;
219+
case QgsWkbTypes::MultiPoint25D:
220+
case QgsWkbTypes::MultiPoint:
221+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPointPropertyType" ) );
222+
break;
223+
case QgsWkbTypes::MultiLineString25D:
224+
case QgsWkbTypes::MultiLineString:
225+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiLineStringPropertyType" ) );
226+
break;
227+
case QgsWkbTypes::MultiPolygon25D:
228+
case QgsWkbTypes::MultiPolygon:
229+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPolygonPropertyType" ) );
230+
break;
231+
default:
232+
geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:GeometryPropertyType" ) );
233+
break;
243234
}
244235
geomElem.setAttribute( QStringLiteral( "minOccurs" ), QStringLiteral( "0" ) );
245236
geomElem.setAttribute( QStringLiteral( "maxOccurs" ), QStringLiteral( "1" ) );

0 commit comments

Comments
 (0)
Please sign in to comment.