@@ -76,6 +76,7 @@ class TestQgsGML : public QObject
7676 void testThroughOGRGeometry ();
7777 void testThroughOGRGeometry_urn_EPSG_4326 ();
7878 void testAccents ();
79+ void testSameTypeameAsGeomName ();
7980};
8081
8182const QString data1 ( " <myns:FeatureCollection "
@@ -1149,6 +1150,51 @@ void TestQgsGML::testAccents()
11491150 QCOMPARE ( multi[0 ][0 ].size (), 5 );
11501151 delete features[0 ].first ;
11511152}
1153+ void TestQgsGML::testSameTypeameAsGeomName ()
1154+ {
1155+ QgsFields fields;
1156+ QgsGmlStreamingParser gmlParser ( " foo" , " foo" , fields );
1157+ QCOMPARE ( gmlParser.processData ( QByteArray ( " <myns:FeatureCollection "
1158+ " xmlns:myns='http://myns' "
1159+ " xmlns:gml='http://www.opengis.net/gml'>"
1160+ " <gml:featureMember>"
1161+ " <myns:foo fid='foo.1'>"
1162+ " <myns:foo>"
1163+ " <gml:MultiSurface srsName='EPSG:27700'>"
1164+ " <gml:surfaceMember>"
1165+ " <gml:Polygon srsName='EPSG:27700'>"
1166+ " <gml:exterior>"
1167+ " <gml:LinearRing>"
1168+ " <gml:posList>0 0 0 10 10 10 10 0 0 0</gml:posList>"
1169+ " </gml:LinearRing>"
1170+ " </gml:exterior>"
1171+ " </gml:Polygon>"
1172+ " </gml:surfaceMember>"
1173+ " <gml:surfaceMember>"
1174+ " <gml:Polygon srsName='EPSG:27700'>"
1175+ " <gml:exterior>"
1176+ " <gml:LinearRing>"
1177+ " <gml:posList>0 0 0 10 10 10 10 0 0 0</gml:posList>"
1178+ " </gml:LinearRing>"
1179+ " </gml:exterior>"
1180+ " </gml:Polygon>"
1181+ " </gml:surfaceMember>"
1182+ " </gml:MultiSurface>"
1183+ " </myns:foo>"
1184+ " </myns:foo>"
1185+ " </gml:featureMember>"
1186+ " </myns:FeatureCollection>" ), true ), true );
1187+ QCOMPARE ( gmlParser.wkbType (), QGis::WKBMultiPolygon );
1188+ QVector<QgsGmlStreamingParser::QgsGmlFeaturePtrGmlIdPair> features = gmlParser.getAndStealReadyFeatures ();
1189+ QCOMPARE ( features.size (), 1 );
1190+ QVERIFY ( features[0 ].first ->constGeometry () != nullptr );
1191+ QCOMPARE ( features[0 ].first ->constGeometry ()->wkbType (), QGis::WKBMultiPolygon );
1192+ QgsMultiPolygon multi = features[0 ].first ->constGeometry ()->asMultiPolygon ();
1193+ QCOMPARE ( multi.size (), 2 );
1194+ QCOMPARE ( multi[0 ].size (), 1 );
1195+ QCOMPARE ( multi[0 ][0 ].size (), 5 );
1196+ delete features[0 ].first ;
1197+ }
11521198
11531199QTEST_MAIN ( TestQgsGML )
11541200#include " testqgsgml.moc"
0 commit comments