From 69c69396eddedc7a6edab5f27125e85d74b75f21 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Wed, 24 May 2023 16:22:54 +0300 Subject: [PATCH 1/4] use Lutra's vector tile layer for background map instead of OSM when creating a new project --- app/projectwizard.cpp | 16 +++++++++++++--- app/projectwizard.h | 1 - 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/projectwizard.cpp b/app/projectwizard.cpp index c14281708..1d3534eed 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" @@ -102,8 +102,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( "https://vtiles.dev.merginmaps.com/data/v3/{z}/{x}/{y}.pbf" ) ); + dsUri.setParam( QStringLiteral( "styleUrl" ), QStringLiteral( "https://vtiles.dev.merginmaps.com/styles/basic-preview-global/style.json" ) ); + 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" ); }; From 75caa97c27ac378bad72d0d04e30a58ba5d7e160 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Mon, 29 May 2023 09:48:30 +0300 Subject: [PATCH 2/4] use new url --- app/projectwizard.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/projectwizard.cpp b/app/projectwizard.cpp index 1d3534eed..2db1b2b2d 100644 --- a/app/projectwizard.cpp +++ b/app/projectwizard.cpp @@ -25,6 +25,8 @@ #include "inpututils.h" #include "coreutils.h" +const QString TILES_URL = QStringLiteral( "https://vtiles.merginmaps.com" ); + ProjectWizard::ProjectWizard( const QString &dataDir, QObject *parent ) : QObject( parent ) , mDataDir( dataDir ) @@ -104,8 +106,8 @@ void ProjectWizard::createProject( QString const &projectName, FieldsModel *fiel // add layers QgsDataSourceUri dsUri; dsUri.setParam( QStringLiteral( "type" ), QStringLiteral( "xyz" ) ); - dsUri.setParam( QStringLiteral( "url" ), QStringLiteral( "https://vtiles.dev.merginmaps.com/data/v3/{z}/{x}/{y}.pbf" ) ); - dsUri.setParam( QStringLiteral( "styleUrl" ), QStringLiteral( "https://vtiles.dev.merginmaps.com/styles/basic-preview-global/style.json" ) ); + dsUri.setParam( QStringLiteral( "url" ), QStringLiteral( "%1/data/v3/{z}/{x}/{y}.pbf" ).arg( TILES_URL ) ); + dsUri.setParam( QStringLiteral( "styleUrl" ), QStringLiteral( "%1/styles/basic-preview-global/style.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)" ) ); From 81648c79dab5a007698afbda600216bc56e29a89 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Wed, 5 Jul 2023 10:34:48 +0300 Subject: [PATCH 3/4] use production URL for tiles server --- app/projectwizard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/projectwizard.cpp b/app/projectwizard.cpp index 2db1b2b2d..3f14bbba7 100644 --- a/app/projectwizard.cpp +++ b/app/projectwizard.cpp @@ -25,7 +25,7 @@ #include "inpututils.h" #include "coreutils.h" -const QString TILES_URL = QStringLiteral( "https://vtiles.merginmaps.com" ); +const QString TILES_URL = QStringLiteral( "https://tiles.merginmaps.com" ); ProjectWizard::ProjectWizard( const QString &dataDir, QObject *parent ) : QObject( parent ) From 5859ecce2a57657c355540a1a2ab0b88244b1e7d Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Thu, 6 Jul 2023 10:27:22 +0300 Subject: [PATCH 4/4] update tiles and style URLs --- app/projectwizard.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/projectwizard.cpp b/app/projectwizard.cpp index 3f14bbba7..cc892ce9b 100644 --- a/app/projectwizard.cpp +++ b/app/projectwizard.cpp @@ -106,11 +106,11 @@ void ProjectWizard::createProject( QString const &projectName, FieldsModel *fiel // add layers QgsDataSourceUri dsUri; dsUri.setParam( QStringLiteral( "type" ), QStringLiteral( "xyz" ) ); - dsUri.setParam( QStringLiteral( "url" ), QStringLiteral( "%1/data/v3/{z}/{x}/{y}.pbf" ).arg( TILES_URL ) ); - dsUri.setParam( QStringLiteral( "styleUrl" ), QStringLiteral( "%1/styles/basic-preview-global/style.json" ).arg( TILES_URL ) ); + 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)" ) ); + QgsVectorTileLayer *bgLayer = new QgsVectorTileLayer( dsUri.encodedUri(), QStringLiteral( "OpenMapTiles (OSM)" ) ); bool ok; QString error = bgLayer->loadDefaultStyle( ok ); QgsLayerMetadata metadata;