diff --git a/app/projectwizard.cpp b/app/projectwizard.cpp index c14281708..cc892ce9b 100644 --- a/app/projectwizard.cpp +++ b/app/projectwizard.cpp @@ -12,7 +12,7 @@ #include "coreutils.h" #include "qgsproject.h" -#include "qgsrasterlayer.h" +#include "qgsvectortilelayer.h" #include "qgsvectorlayer.h" #include "qgsvectorfilewriter.h" #include "qgsdatetimefieldformatter.h" @@ -25,6 +25,8 @@ #include "inpututils.h" #include "coreutils.h" +const QString TILES_URL = QStringLiteral( "https://tiles.merginmaps.com" ); + ProjectWizard::ProjectWizard( const QString &dataDir, QObject *parent ) : QObject( parent ) , mDataDir( dataDir ) @@ -102,8 +104,18 @@ void ProjectWizard::createProject( QString const &projectName, FieldsModel *fiel QgsProject project; // add layers - QString urlWithParams( BG_MAPS_CONFIG ); - QgsRasterLayer *bgLayer = new QgsRasterLayer( BG_MAPS_CONFIG, QStringLiteral( "OpenStreetMap" ), QStringLiteral( "wms" ) ); + QgsDataSourceUri dsUri; + dsUri.setParam( QStringLiteral( "type" ), QStringLiteral( "xyz" ) ); + dsUri.setParam( QStringLiteral( "url" ), QStringLiteral( "%1/data/default/{z}/{x}/{y}.pbf" ).arg( TILES_URL ) ); + dsUri.setParam( QStringLiteral( "styleUrl" ), QStringLiteral( "%1/styles/default.json" ).arg( TILES_URL ) ); + dsUri.setParam( QStringLiteral( "zmin" ), QStringLiteral( "0" ) ); + dsUri.setParam( QStringLiteral( "zmax" ), QStringLiteral( "14" ) ); + QgsVectorTileLayer *bgLayer = new QgsVectorTileLayer( dsUri.encodedUri(), QStringLiteral( "OpenMapTiles (OSM)" ) ); + bool ok; + QString error = bgLayer->loadDefaultStyle( ok ); + QgsLayerMetadata metadata; + metadata.setRights( QStringList() << QStringLiteral( "© OpenMapTiles © OpenStreetMap contributors" ) ); + bgLayer->setMetadata( metadata ); QgsVectorLayer *layer = createGpkgLayer( projectDir, fieldsModel->fields() ); QList layers; layers << layer << bgLayer; diff --git a/app/projectwizard.h b/app/projectwizard.h index 1f9dedb77..6d3e62e49 100644 --- a/app/projectwizard.h +++ b/app/projectwizard.h @@ -58,7 +58,6 @@ class ProjectWizard : public QObject QString mDataDir; std::unique_ptr mSettings = nullptr; - const QString BG_MAPS_CONFIG = QStringLiteral( "tilePixelRatio=1&type=xyz&url=https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png&zmax=19&zmin=0" ); const QString PROJECT_CRS_ID = QStringLiteral( "EPSG:3857" ); const QString LAYER_CRS_ID = QStringLiteral( "EPSG:4326" ); };