Skip to content

Commit

Permalink
Rename QgsMBTilesReader to QgsMbTiles (now both reader+writer)
Browse files Browse the repository at this point in the history
  • Loading branch information
wonder-sk committed Apr 25, 2020
1 parent ccaf379 commit 9481ce7
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 44 deletions.
4 changes: 2 additions & 2 deletions src/app/qgisapp.cpp
Expand Up @@ -261,7 +261,7 @@ Q_GUI_EXPORT extern int qt_defaultDpiX();
#include "qgsmapoverviewcanvas.h"
#include "qgsmapsettings.h"
#include "qgsmaptip.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgsmenuheader.h"
#include "qgsmergeattributesdialog.h"
#include "qgsmessageviewer.h"
Expand Down Expand Up @@ -7325,7 +7325,7 @@ bool QgisApp::openLayer( const QString &fileName, bool allowInteractive )

if ( fileName.endsWith( QStringLiteral( ".mbtiles" ), Qt::CaseInsensitive ) )
{
QgsMBTilesReader reader( fileName );
QgsMbTiles reader( fileName );
if ( reader.open() )
{
if ( reader.metadataValue( "format" ) == QStringLiteral( "pbf" ) )
Expand Down
5 changes: 2 additions & 3 deletions src/core/CMakeLists.txt
Expand Up @@ -316,7 +316,7 @@ SET(QGIS_CORE_SRCS
qgsmapunitscale.cpp
qgsmargins.cpp
qgsmaskidprovider.cpp
qgsmbtilesreader.cpp
qgsmbtiles.cpp
qgsmessagelog.cpp
qgsmessageoutput.cpp
qgsmimedatautils.cpp
Expand Down Expand Up @@ -865,7 +865,7 @@ SET(QGIS_CORE_HDRS
qgsmapunitscale.h
qgsmargins.h
qgsmaskidprovider.h
qgsmbtilesreader.h
qgsmbtiles.h
qgsmessagelog.h
qgsmessageoutput.h
qgsmimedatautils.h
Expand Down Expand Up @@ -1493,7 +1493,6 @@ INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/external/poly2tri
${CMAKE_SOURCE_DIR}/external/rtree/include
${CMAKE_SOURCE_DIR}/external/meshOptimizer
${CMAKE_SOURCE_DIR}/external/mapbox-vector-tile
)

INCLUDE_DIRECTORIES(SYSTEM
Expand Down
4 changes: 2 additions & 2 deletions src/core/providers/gdal/qgsgdaldataitems.cpp
Expand Up @@ -18,7 +18,7 @@
///@cond PRIVATE
#include "qgsgdalprovider.h"
#include "qgslogger.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgssettings.h"
#include "qgsogrutils.h"
#include "qgsproject.h"
Expand Down Expand Up @@ -265,7 +265,7 @@ QgsDataItem *QgsGdalDataItemProvider::createDataItem( const QString &pathIn, Qgs

if ( suffix == QStringLiteral( "mbtiles" ) )
{
QgsMBTilesReader reader( path );
QgsMbTiles reader( path );
if ( reader.open() )
{
if ( reader.metadataValue( "format" ) == QStringLiteral( "pbf" ) )
Expand Down
28 changes: 14 additions & 14 deletions src/core/qgsmbtilesreader.cpp → src/core/qgsmbtiles.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
qgsmbtilesreader.cpp
qgsmbtiles.cpp
--------------------------------------
Date : January 2020
Copyright : (C) 2020 by Martin Dobias
Expand All @@ -13,7 +13,7 @@
* *
***************************************************************************/

#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"

#include "qgslogger.h"
#include "qgsrectangle.h"
Expand All @@ -24,12 +24,12 @@
#include <zlib.h>


QgsMBTilesReader::QgsMBTilesReader( const QString &filename )
QgsMbTiles::QgsMbTiles( const QString &filename )
: mFilename( filename )
{
}

bool QgsMBTilesReader::open()
bool QgsMbTiles::open()
{
if ( mDatabase )
return true; // already opened
Expand All @@ -44,12 +44,12 @@ bool QgsMBTilesReader::open()
return true;
}

bool QgsMBTilesReader::isOpen() const
bool QgsMbTiles::isOpen() const
{
return bool( mDatabase );
}

bool QgsMBTilesReader::create()
bool QgsMbTiles::create()
{
if ( mDatabase )
return false;
Expand Down Expand Up @@ -80,7 +80,7 @@ bool QgsMBTilesReader::create()
return true;
}

QString QgsMBTilesReader::metadataValue( const QString &key )
QString QgsMbTiles::metadataValue( const QString &key )
{
if ( !mDatabase )
{
Expand All @@ -106,7 +106,7 @@ QString QgsMBTilesReader::metadataValue( const QString &key )
return preparedStatement.columnAsText( 0 );
}

void QgsMBTilesReader::setMetadataValue( const QString &key, const QString &value )
void QgsMbTiles::setMetadataValue( const QString &key, const QString &value )
{
if ( !mDatabase )
{
Expand All @@ -130,7 +130,7 @@ void QgsMBTilesReader::setMetadataValue( const QString &key, const QString &valu
}
}

QgsRectangle QgsMBTilesReader::extent()
QgsRectangle QgsMbTiles::extent()
{
QString boundsStr = metadataValue( "bounds" );
if ( boundsStr.isEmpty() )
Expand All @@ -143,7 +143,7 @@ QgsRectangle QgsMBTilesReader::extent()
boundsArray[2].toDouble(), boundsArray[3].toDouble() );
}

QByteArray QgsMBTilesReader::tileData( int z, int x, int y )
QByteArray QgsMbTiles::tileData( int z, int x, int y )
{
if ( !mDatabase )
{
Expand All @@ -169,7 +169,7 @@ QByteArray QgsMBTilesReader::tileData( int z, int x, int y )
return preparedStatement.columnAsBlob( 0 );
}

QImage QgsMBTilesReader::tileDataAsImage( int z, int x, int y )
QImage QgsMbTiles::tileDataAsImage( int z, int x, int y )
{
QImage tileImage;
QByteArray tileBlob = tileData( z, x, y );
Expand All @@ -181,7 +181,7 @@ QImage QgsMBTilesReader::tileDataAsImage( int z, int x, int y )
return tileImage;
}

void QgsMBTilesReader::setTileData( int z, int x, int y, const QByteArray &data )
void QgsMbTiles::setTileData( int z, int x, int y, const QByteArray &data )
{
if ( !mDatabase )
{
Expand All @@ -207,7 +207,7 @@ void QgsMBTilesReader::setTileData( int z, int x, int y, const QByteArray &data
}
}

bool QgsMBTilesReader::decodeGzip( const QByteArray &bytesIn, QByteArray &bytesOut )
bool QgsMbTiles::decodeGzip( const QByteArray &bytesIn, QByteArray &bytesOut )
{
unsigned char *bytesInPtr = reinterpret_cast<unsigned char *>( const_cast<char *>( bytesIn.constData() ) );
uint bytesInLeft = static_cast<uint>( bytesIn.count() );
Expand Down Expand Up @@ -263,7 +263,7 @@ bool QgsMBTilesReader::decodeGzip( const QByteArray &bytesIn, QByteArray &bytesO
}


bool QgsMBTilesReader::encodeGzip( const QByteArray &bytesIn, QByteArray &bytesOut )
bool QgsMbTiles::encodeGzip( const QByteArray &bytesIn, QByteArray &bytesOut )
{
unsigned char *bytesInPtr = reinterpret_cast<unsigned char *>( const_cast<char *>( bytesIn.constData() ) );
uint bytesInLeft = static_cast<uint>( bytesIn.count() );
Expand Down
17 changes: 10 additions & 7 deletions src/core/qgsmbtilesreader.h → src/core/qgsmbtiles.h
@@ -1,5 +1,5 @@
/***************************************************************************
qgsmbtilesreader.h
qgsmbtiles.h
--------------------------------------
Date : January 2020
Copyright : (C) 2020 by Martin Dobias
Expand All @@ -13,8 +13,8 @@
* *
***************************************************************************/

#ifndef QGSMBTILESREADER_H
#define QGSMBTILESREADER_H
#ifndef QGSMBTILES_H
#define QGSMBTILES_H

#include "qgis_core.h"

Expand All @@ -28,15 +28,18 @@ class QgsRectangle;

/**
* \ingroup core
* Utility class for reading MBTiles files (which are SQLite3 databases).
* Utility class for reading and writing MBTiles files (which are SQLite3 databases).
*
* See the specification for more details:
* https://github.com/mapbox/mbtiles-spec/blob/master/1.3/spec.md
*
* \since QGIS 3.14
*/
class CORE_EXPORT QgsMBTilesReader
class CORE_EXPORT QgsMbTiles
{
public:
//! Constructs MBTiles reader (but it does not open the file yet)
explicit QgsMBTilesReader( const QString &filename );
explicit QgsMbTiles( const QString &filename );

//! Tries to open the file, returns true on success
bool open();
Expand Down Expand Up @@ -86,4 +89,4 @@ class CORE_EXPORT QgsMBTilesReader
};


#endif // QGSMBTILESREADER_H
#endif // QGSMBTILES_H
4 changes: 2 additions & 2 deletions src/core/vectortile/qgsvectortilelayer.cpp
Expand Up @@ -17,7 +17,7 @@

#include "qgslogger.h"
#include "qgsvectortilelayerrenderer.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgsvectortilebasiclabeling.h"
#include "qgsvectortilebasicrenderer.h"
#include "qgsvectortilelabeling.h"
Expand Down Expand Up @@ -61,7 +61,7 @@ bool QgsVectorTileLayer::loadDataSource()
}
else if ( mSourceType == QStringLiteral( "mbtiles" ) )
{
QgsMBTilesReader reader( mSourcePath );
QgsMbTiles reader( mSourcePath );
if ( !reader.open() )
{
QgsDebugMsg( QStringLiteral( "failed to open MBTiles file: " ) + mSourcePath );
Expand Down
8 changes: 4 additions & 4 deletions src/core/vectortile/qgsvectortileloader.cpp
Expand Up @@ -19,7 +19,7 @@

#include "qgsblockingnetworkrequest.h"
#include "qgslogger.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgsnetworkaccessmanager.h"
#include "qgsvectortileutils.h"

Expand Down Expand Up @@ -147,7 +147,7 @@ QList<QgsVectorTileRawData> QgsVectorTileLoader::blockingFetchTileRawData( const
{
QList<QgsVectorTileRawData> rawTiles;

QgsMBTilesReader mbReader( sourcePath );
QgsMbTiles mbReader( sourcePath );
bool isUrl = ( sourceType == QStringLiteral( "xyz" ) );
if ( !isUrl )
{
Expand Down Expand Up @@ -187,7 +187,7 @@ QByteArray QgsVectorTileLoader::loadFromNetwork( const QgsTileXYZ &id, const QSt
}


QByteArray QgsVectorTileLoader::loadFromMBTiles( const QgsTileXYZ &id, QgsMBTilesReader &mbTileReader )
QByteArray QgsVectorTileLoader::loadFromMBTiles( const QgsTileXYZ &id, QgsMbTiles &mbTileReader )
{
// MBTiles uses TMS specs with Y starting at the bottom while XYZ uses Y starting at the top
int rowTMS = pow( 2, id.zoomLevel() ) - id.row() - 1;
Expand All @@ -199,7 +199,7 @@ QByteArray QgsVectorTileLoader::loadFromMBTiles( const QgsTileXYZ &id, QgsMBTile
}

QByteArray data;
if ( !QgsMBTilesReader::decodeGzip( gzippedTileData, data ) )
if ( !QgsMbTiles::decodeGzip( gzippedTileData, data ) )
{
QgsDebugMsg( QStringLiteral( "Failed to decompress tile " ) + id.toString() );
return QByteArray();
Expand Down
4 changes: 2 additions & 2 deletions src/core/vectortile/qgsvectortileloader.h
Expand Up @@ -45,7 +45,7 @@ class QgsVectorTileRawData
class QNetworkReply;
class QEventLoop;

class QgsMBTilesReader;
class QgsMbTiles;

/**
* \ingroup core
Expand All @@ -64,7 +64,7 @@ class QgsVectorTileLoader : public QObject
//! Returns raw tile data for a single tile, doing a HTTP request. Block the caller until tile data are downloaded.
static QByteArray loadFromNetwork( const QgsTileXYZ &id, const QString &requestUrl );
//! Returns raw tile data for a single tile loaded from MBTiles file
static QByteArray loadFromMBTiles( const QgsTileXYZ &id, QgsMBTilesReader &mbTileReader );
static QByteArray loadFromMBTiles( const QgsTileXYZ &id, QgsMbTiles &mbTileReader );

//
// non-static stuff
Expand Down
8 changes: 4 additions & 4 deletions src/core/vectortile/qgsvectortilewriter.cpp
Expand Up @@ -18,7 +18,7 @@
#include "qgsdatasourceuri.h"
#include "qgsfeedback.h"
#include "qgsjsonutils.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgstiles.h"
#include "qgsvectorlayer.h"
#include "qgsvectortilemvtencoder.h"
Expand Down Expand Up @@ -51,7 +51,7 @@ bool QgsVectorTileWriter::writeTiles( QgsFeedback *feedback )
return false;
}

std::unique_ptr<QgsMBTilesReader> mbtiles;
std::unique_ptr<QgsMbTiles> mbtiles;

QgsDataSourceUri dsUri;
dsUri.setEncodedUri( mDestinationUri );
Expand All @@ -65,7 +65,7 @@ bool QgsVectorTileWriter::writeTiles( QgsFeedback *feedback )
}
else if ( sourceType == QStringLiteral( "mbtiles" ) )
{
mbtiles.reset( new QgsMBTilesReader( sourcePath ) );
mbtiles.reset( new QgsMbTiles( sourcePath ) );
}
else
{
Expand Down Expand Up @@ -158,7 +158,7 @@ bool QgsVectorTileWriter::writeTiles( QgsFeedback *feedback )
else // mbtiles
{
QByteArray gzipTileData;
QgsMBTilesReader::encodeGzip( tileData, gzipTileData );
QgsMbTiles::encodeGzip( tileData, gzipTileData );
int rowTMS = pow( 2, tileID.zoomLevel() ) - tileID.row() - 1;
mbtiles->setTileData( tileID.zoomLevel(), tileID.column(), rowTMS, gzipTileData );
}
Expand Down
8 changes: 4 additions & 4 deletions src/providers/wms/qgswmsprovider.cpp
Expand Up @@ -37,7 +37,7 @@
#include "qgsrectangle.h"
#include "qgscoordinatereferencesystem.h"
#include "qgsmapsettings.h"
#include "qgsmbtilesreader.h"
#include "qgsmbtiles.h"
#include "qgsmessageoutput.h"
#include "qgsmessagelog.h"
#include "qgsnetworkaccessmanager.h"
Expand Down Expand Up @@ -821,10 +821,10 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, in
QList<TileImage> tileImages; // in the correct resolution
QList<QRectF> missing; // rectangles (in map coords) of missing tiles for this view

std::unique_ptr<QgsMBTilesReader> mbtilesReader;
std::unique_ptr<QgsMbTiles> mbtilesReader;
if ( mSettings.mIsMBTiles )
{
mbtilesReader.reset( new QgsMBTilesReader( QUrl( mSettings.mBaseUrl ).path() ) );
mbtilesReader.reset( new QgsMbTiles( QUrl( mSettings.mBaseUrl ).path() ) );
mbtilesReader->open();
}

Expand Down Expand Up @@ -1460,7 +1460,7 @@ void QgsWmsProvider::setupXyzCapabilities( const QString &uri, const QgsRectangl
bool QgsWmsProvider::setupMBTilesCapabilities( const QString &uri )
{
// if it is MBTiles source, let's prepare the reader to get some metadata
QgsMBTilesReader mbtilesReader( QUrl( mSettings.mBaseUrl ).path() );
QgsMbTiles mbtilesReader( QUrl( mSettings.mBaseUrl ).path() );
if ( !mbtilesReader.open() )
return false;

Expand Down

0 comments on commit 9481ce7

Please sign in to comment.