mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-09 00:04:30 -05:00
Adjust point cloud URI parsing
This commit is contained in:
parent
10e170ebde
commit
0647ce220c
@ -128,7 +128,7 @@ QgsCopcProvider *QgsCopcProviderMetadata::createProvider( const QString &uri, co
|
|||||||
QList<QgsProviderSublayerDetails> QgsCopcProviderMetadata::querySublayers( const QString &uri, Qgis::SublayerQueryFlags, QgsFeedback * ) const
|
QList<QgsProviderSublayerDetails> QgsCopcProviderMetadata::querySublayers( const QString &uri, Qgis::SublayerQueryFlags, QgsFeedback * ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
if ( parts.value( QStringLiteral( "path" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
||||||
{
|
{
|
||||||
QgsProviderSublayerDetails details;
|
QgsProviderSublayerDetails details;
|
||||||
details.setUri( uri );
|
details.setUri( uri );
|
||||||
@ -146,7 +146,7 @@ QList<QgsProviderSublayerDetails> QgsCopcProviderMetadata::querySublayers( const
|
|||||||
int QgsCopcProviderMetadata::priorityForUri( const QString &uri ) const
|
int QgsCopcProviderMetadata::priorityForUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
if ( parts.value( QStringLiteral( "path" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
||||||
return 100;
|
return 100;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -155,7 +155,7 @@ int QgsCopcProviderMetadata::priorityForUri( const QString &uri ) const
|
|||||||
QList<QgsMapLayerType> QgsCopcProviderMetadata::validLayerTypesForUri( const QString &uri ) const
|
QList<QgsMapLayerType> QgsCopcProviderMetadata::validLayerTypesForUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
if ( parts.value( QStringLiteral( "path" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().endsWith( ".copc.laz", Qt::CaseSensitivity::CaseInsensitive ) )
|
||||||
return QList< QgsMapLayerType>() << QgsMapLayerType::PointCloudLayer;
|
return QList< QgsMapLayerType>() << QgsMapLayerType::PointCloudLayer;
|
||||||
|
|
||||||
return QList< QgsMapLayerType>();
|
return QList< QgsMapLayerType>();
|
||||||
@ -163,9 +163,10 @@ QList<QgsMapLayerType> QgsCopcProviderMetadata::validLayerTypesForUri( const QSt
|
|||||||
|
|
||||||
QVariantMap QgsCopcProviderMetadata::decodeUri( const QString &uri ) const
|
QVariantMap QgsCopcProviderMetadata::decodeUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QString path = uri;
|
|
||||||
QVariantMap uriComponents;
|
QVariantMap uriComponents;
|
||||||
uriComponents.insert( QStringLiteral( "path" ), path );
|
QUrl url = QUrl::fromUserInput( uri );
|
||||||
|
uriComponents.insert( QStringLiteral( "file-name" ), url.fileName() );
|
||||||
|
uriComponents.insert( QStringLiteral( "path" ), uri );
|
||||||
return uriComponents;
|
return uriComponents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -124,8 +124,7 @@ QgsEptProvider *QgsEptProviderMetadata::createProvider( const QString &uri, cons
|
|||||||
QList<QgsProviderSublayerDetails> QgsEptProviderMetadata::querySublayers( const QString &uri, Qgis::SublayerQueryFlags, QgsFeedback * ) const
|
QList<QgsProviderSublayerDetails> QgsEptProviderMetadata::querySublayers( const QString &uri, Qgis::SublayerQueryFlags, QgsFeedback * ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
const QFileInfo fi( parts.value( QStringLiteral( "path" ) ).toString() );
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
||||||
if ( fi.fileName().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
|
||||||
{
|
{
|
||||||
QgsProviderSublayerDetails details;
|
QgsProviderSublayerDetails details;
|
||||||
details.setUri( uri );
|
details.setUri( uri );
|
||||||
@ -143,8 +142,7 @@ QList<QgsProviderSublayerDetails> QgsEptProviderMetadata::querySublayers( const
|
|||||||
int QgsEptProviderMetadata::priorityForUri( const QString &uri ) const
|
int QgsEptProviderMetadata::priorityForUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
const QFileInfo fi( parts.value( QStringLiteral( "path" ) ).toString() );
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
||||||
if ( fi.fileName().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
|
||||||
return 100;
|
return 100;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -153,8 +151,7 @@ int QgsEptProviderMetadata::priorityForUri( const QString &uri ) const
|
|||||||
QList<QgsMapLayerType> QgsEptProviderMetadata::validLayerTypesForUri( const QString &uri ) const
|
QList<QgsMapLayerType> QgsEptProviderMetadata::validLayerTypesForUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QVariantMap parts = decodeUri( uri );
|
const QVariantMap parts = decodeUri( uri );
|
||||||
const QFileInfo fi( parts.value( QStringLiteral( "path" ) ).toString() );
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
||||||
if ( fi.fileName().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
|
||||||
return QList< QgsMapLayerType>() << QgsMapLayerType::PointCloudLayer;
|
return QList< QgsMapLayerType>() << QgsMapLayerType::PointCloudLayer;
|
||||||
|
|
||||||
return QList< QgsMapLayerType>();
|
return QList< QgsMapLayerType>();
|
||||||
@ -166,10 +163,8 @@ bool QgsEptProviderMetadata::uriIsBlocklisted( const QString &uri ) const
|
|||||||
if ( !parts.contains( QStringLiteral( "path" ) ) )
|
if ( !parts.contains( QStringLiteral( "path" ) ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const QFileInfo fi( parts.value( QStringLiteral( "path" ) ).toString() );
|
|
||||||
|
|
||||||
// internal details only
|
// internal details only
|
||||||
if ( fi.fileName().compare( QLatin1String( "ept-build.json" ), Qt::CaseInsensitive ) == 0 )
|
if ( parts.value( QStringLiteral( "file-name" ) ).toString().compare( QLatin1String( "ept.json" ), Qt::CaseInsensitive ) == 0 )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -177,9 +172,10 @@ bool QgsEptProviderMetadata::uriIsBlocklisted( const QString &uri ) const
|
|||||||
|
|
||||||
QVariantMap QgsEptProviderMetadata::decodeUri( const QString &uri ) const
|
QVariantMap QgsEptProviderMetadata::decodeUri( const QString &uri ) const
|
||||||
{
|
{
|
||||||
const QString path = uri;
|
|
||||||
QVariantMap uriComponents;
|
QVariantMap uriComponents;
|
||||||
uriComponents.insert( QStringLiteral( "path" ), path );
|
QUrl url = QUrl::fromUserInput( uri );
|
||||||
|
uriComponents.insert( QStringLiteral( "file-name" ), url.fileName() );
|
||||||
|
uriComponents.insert( QStringLiteral( "path" ), uri );
|
||||||
return uriComponents;
|
return uriComponents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -86,7 +86,7 @@ static QString _outCopcFile( const QString &filename )
|
|||||||
{
|
{
|
||||||
const QFileInfo fi( filename );
|
const QFileInfo fi( filename );
|
||||||
const QDir directory = fi.absoluteDir();
|
const QDir directory = fi.absoluteDir();
|
||||||
const QString outputFile = QStringLiteral( "%1/copc_%2.copc.laz" ).arg( directory.absolutePath() ).arg( fi.baseName() );
|
const QString outputFile = QStringLiteral( "%1/%2.copc.laz" ).arg( directory.absolutePath() ).arg( fi.baseName() );
|
||||||
return outputFile;
|
return outputFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user