mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
wmts: use QObject property to make tile resolutions available to tilescalewidget
This commit is contained in:
parent
dfb8fcb971
commit
e7af002b53
@ -18,7 +18,6 @@
|
||||
#include "qgstilescalewidget.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgsrasterlayer.h"
|
||||
#include "qgswmsprovider.h"
|
||||
#include "qgsmessagelog.h"
|
||||
#include "qgslogger.h"
|
||||
|
||||
@ -46,28 +45,24 @@ QgsTileScaleWidget::~QgsTileScaleWidget()
|
||||
|
||||
void QgsTileScaleWidget::layerChanged( QgsMapLayer *layer )
|
||||
{
|
||||
QgsRasterLayer *rl = qobject_cast<QgsRasterLayer *>( layer );
|
||||
if ( !rl )
|
||||
return;
|
||||
|
||||
QgsWmsProvider *wms = qobject_cast<QgsWmsProvider *>( rl->dataProvider() );
|
||||
if ( !wms )
|
||||
return;
|
||||
|
||||
QgsWmtsTileMatrixSet *tileMatrixSet = wms->tileMatrixSet();
|
||||
if ( !tileMatrixSet )
|
||||
return;
|
||||
|
||||
mSlider->setDisabled( true );
|
||||
|
||||
mResolutions = tileMatrixSet->tileMatrices.keys();
|
||||
qSort( mResolutions );
|
||||
QgsRasterLayer *rl = qobject_cast<QgsRasterLayer *>( layer );
|
||||
if ( !rl || rl->providerType() != "wms" || !rl->dataProvider() )
|
||||
return;
|
||||
|
||||
for ( int i = 0; i < mResolutions.size(); i++ )
|
||||
QVariant res = rl->dataProvider()->property( "resolutions" );
|
||||
|
||||
mResolutions.clear();
|
||||
foreach( QVariant r, res.toList() )
|
||||
{
|
||||
QgsDebugMsg( QString( "found resolution %1: %2" ).arg( i ).arg( mResolutions[i] ) );
|
||||
QgsDebugMsg( QString( "found resolution: %1" ).arg( r.toDouble() ) );
|
||||
mResolutions << r.toDouble();
|
||||
}
|
||||
|
||||
if ( mResolutions.size() == 0 )
|
||||
return;
|
||||
|
||||
mSlider->setRange( 0, mResolutions.size() - 1 );
|
||||
mSlider->setTickInterval( 1 );
|
||||
mSlider->setInvertedAppearance( true );
|
||||
|
@ -410,15 +410,24 @@ void QgsWmsProvider::addLayers( QStringList const &layers,
|
||||
}
|
||||
}
|
||||
|
||||
QList<QVariant> resolutions;
|
||||
if ( mTileMatrixSets.contains( mTileMatrixSetId ) )
|
||||
{
|
||||
mTileMatrixSet = &mTileMatrixSets[ mTileMatrixSetId ];
|
||||
QList<double> keys = mTileMatrixSet->tileMatrices.keys();
|
||||
qSort( keys );
|
||||
foreach( double key, keys )
|
||||
{
|
||||
resolutions << key;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mTileMatrixSet = 0;
|
||||
}
|
||||
|
||||
setProperty( "resolutions", resolutions );
|
||||
|
||||
mValid = mTileLayer != 0 && mTileMatrixSet != 0;
|
||||
}
|
||||
|
||||
|
@ -742,16 +742,6 @@ class QgsWmsProvider : public QgsRasterDataProvider
|
||||
|
||||
static QVector<QgsWmsSupportedFormat> supportedFormats();
|
||||
|
||||
/**
|
||||
returns the current tile layer (if any)
|
||||
*/
|
||||
QgsWmtsTileLayer *tileLayer() { return mTileLayer; }
|
||||
|
||||
/**
|
||||
returns the current tile matrix set (if any)
|
||||
*/
|
||||
QgsWmtsTileMatrixSet *tileMatrixSet() { return mTileMatrixSet; }
|
||||
|
||||
signals:
|
||||
|
||||
/** \brief emit a signal to notify of a progress event */
|
||||
|
Loading…
x
Reference in New Issue
Block a user