@@ -78,6 +78,7 @@ class TestQgsGML : public QObject
78
78
void testThroughOGRGeometry ();
79
79
void testThroughOGRGeometry_urn_EPSG_4326 ();
80
80
void testAccents ();
81
+ void testSameTypeameAsGeomName ();
81
82
};
82
83
83
84
const QString data1 ( " <myns:FeatureCollection "
@@ -1153,5 +1154,51 @@ void TestQgsGML::testAccents()
1153
1154
delete features[0 ].first ;
1154
1155
}
1155
1156
1157
+ void TestQgsGML::testSameTypeameAsGeomName ()
1158
+ {
1159
+ QgsFields fields;
1160
+ QgsGmlStreamingParser gmlParser ( QStringLiteral ( " foo" ), QStringLiteral ( " foo" ), fields );
1161
+ QCOMPARE ( gmlParser.processData ( QByteArray ( " <myns:FeatureCollection "
1162
+ " xmlns:myns='http://myns' "
1163
+ " xmlns:gml='http://www.opengis.net/gml'>"
1164
+ " <gml:featureMember>"
1165
+ " <myns:foo fid='foo.1'>"
1166
+ " <myns:foo>"
1167
+ " <gml:MultiSurface srsName='EPSG:27700'>"
1168
+ " <gml:surfaceMember>"
1169
+ " <gml:Polygon srsName='EPSG:27700'>"
1170
+ " <gml:exterior>"
1171
+ " <gml:LinearRing>"
1172
+ " <gml:posList>0 0 0 10 10 10 10 0 0 0</gml:posList>"
1173
+ " </gml:LinearRing>"
1174
+ " </gml:exterior>"
1175
+ " </gml:Polygon>"
1176
+ " </gml:surfaceMember>"
1177
+ " <gml:surfaceMember>"
1178
+ " <gml:Polygon srsName='EPSG:27700'>"
1179
+ " <gml:exterior>"
1180
+ " <gml:LinearRing>"
1181
+ " <gml:posList>0 0 0 10 10 10 10 0 0 0</gml:posList>"
1182
+ " </gml:LinearRing>"
1183
+ " </gml:exterior>"
1184
+ " </gml:Polygon>"
1185
+ " </gml:surfaceMember>"
1186
+ " </gml:MultiSurface>"
1187
+ " </myns:foo>"
1188
+ " </myns:foo>"
1189
+ " </gml:featureMember>"
1190
+ " </myns:FeatureCollection>" ), true ), true );
1191
+ QCOMPARE ( gmlParser.wkbType (), QgsWkbTypes::MultiPolygon );
1192
+ QVector<QgsGmlStreamingParser::QgsGmlFeaturePtrGmlIdPair> features = gmlParser.getAndStealReadyFeatures ();
1193
+ QCOMPARE ( features.size (), 1 );
1194
+ QVERIFY ( features[0 ].first ->hasGeometry () );
1195
+ QCOMPARE ( features[0 ].first ->geometry ().wkbType (), QgsWkbTypes::MultiPolygon );
1196
+ QgsMultiPolygonXY multi = features[0 ].first ->geometry ().asMultiPolygon ();
1197
+ QCOMPARE ( multi.size (), 2 );
1198
+ QCOMPARE ( multi[0 ].size (), 1 );
1199
+ QCOMPARE ( multi[0 ][0 ].size (), 5 );
1200
+ delete features[0 ].first ;
1201
+ }
1202
+
1156
1203
QGSTEST_MAIN ( TestQgsGML )
1157
1204
#include " testqgsgml.moc"
0 commit comments