File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -3827,7 +3827,13 @@ QList<QgsProviderSublayerDetails> QgsGdalProviderMetadata::querySublayers( const
3827
3827
3828
3828
QString name;
3829
3829
const QVariantMap parts = decodeUri ( uri );
3830
- if ( !parts.value ( QStringLiteral ( " vsiSuffix" ) ).toString ().isEmpty () )
3830
+
3831
+ const QString identifier = GDALGetMetadataItem ( dataset.get (), " IDENTIFIER" , " " );
3832
+ if ( !identifier.isEmpty () )
3833
+ {
3834
+ name = identifier;
3835
+ }
3836
+ else if ( !parts.value ( QStringLiteral ( " vsiSuffix" ) ).toString ().isEmpty () )
3831
3837
{
3832
3838
name = parts.value ( QStringLiteral ( " vsiSuffix" ) ).toString ();
3833
3839
if ( name.startsWith ( ' /' ) )
Original file line number Diff line number Diff line change @@ -489,6 +489,16 @@ void TestQgsGdalProvider::testGdalProviderQuerySublayers()
489
489
QCOMPARE ( res.at ( 1 ).driverName (), QStringLiteral ( " GPKG" ) );
490
490
rl.reset ( qgis::down_cast< QgsRasterLayer * >( res.at ( 1 ).toLayer ( options ) ) );
491
491
QVERIFY ( rl->isValid () );
492
+ // geopackage with one raster layer with an identifier
493
+ res = mGdalMetadata ->querySublayers ( QStringLiteral ( TEST_DATA_DIR ) + " /qgis_server/test_project_wms_grouped_layers.gpkg" );
494
+ QCOMPARE ( res.count (), 1 );
495
+ QCOMPARE ( res.at ( 0 ).layerNumber (), 1 );
496
+ QCOMPARE ( res.at ( 0 ).name (), QStringLiteral ( " osm" ) );
497
+ QCOMPARE ( res.at ( 0 ).description (), QString () );
498
+ QCOMPARE ( res.at ( 0 ).uri (), QStringLiteral ( " %1/qgis_server/test_project_wms_grouped_layers.gpkg" ).arg ( QStringLiteral ( TEST_DATA_DIR ) ) );
499
+ QCOMPARE ( res.at ( 0 ).providerKey (), QStringLiteral ( " gdal" ) );
500
+ QCOMPARE ( res.at ( 0 ).type (), QgsMapLayerType::RasterLayer );
501
+ QCOMPARE ( res.at ( 0 ).driverName (), QStringLiteral ( " GPKG" ) );
492
502
493
503
// aigrid file
494
504
res = gdalMetadata->querySublayers ( QStringLiteral ( TEST_DATA_DIR ) + " /aigrid" );
You can’t perform that action at this time.
0 commit comments