From 58949e013617bbdf35e081abcc25b5f9daaef4be Mon Sep 17 00:00:00 2001 From: Andre Kjellstrup Date: Tue, 11 Feb 2025 23:14:29 +0100 Subject: [PATCH] Map-added Svalbard-Maps --- .../Providers/GenericMapProvider.cpp | 5 +++++ .../Providers/GenericMapProvider.h | 18 ++++++++++++++++++ src/QtLocationPlugin/QGCMapUrlEngine.cpp | 1 + 3 files changed, 24 insertions(+) diff --git a/src/QtLocationPlugin/Providers/GenericMapProvider.cpp b/src/QtLocationPlugin/Providers/GenericMapProvider.cpp index 3b9b97f5ba8..3a7226c7dc2 100644 --- a/src/QtLocationPlugin/Providers/GenericMapProvider.cpp +++ b/src/QtLocationPlugin/Providers/GenericMapProvider.cpp @@ -41,6 +41,11 @@ QString EniroMapProvider::_getURL(int x, int y, int zoom) const return _mapUrl.arg(zoom).arg(x).arg((1 << zoom) - 1 - y).arg(_imageFormat); } +QString SvalbardMapProvider::_getURL(int x, int y, int zoom) const +{ + return _mapUrl.arg(zoom).arg(y).arg(x); +} + QString MapQuestMapProvider::_getURL(int x, int y, int zoom) const { return _mapUrl.arg(_getServerNum(x, y, 4)).arg(_mapName).arg(zoom).arg(x).arg(y).arg(_imageFormat); diff --git a/src/QtLocationPlugin/Providers/GenericMapProvider.h b/src/QtLocationPlugin/Providers/GenericMapProvider.h index 649128bf075..c196b1e296e 100644 --- a/src/QtLocationPlugin/Providers/GenericMapProvider.h +++ b/src/QtLocationPlugin/Providers/GenericMapProvider.h @@ -148,6 +148,24 @@ class StatkartBaseMapProvider : public StatkartMapProvider QStringLiteral("norgeskart_bakgrunn")) {} }; +class SvalbardMapProvider : public MapProvider +{ +public: + SvalbardMapProvider() + : MapProvider( + QStringLiteral("Svalbard Topo"), + QStringLiteral("https://www.npolar.no/"), + QStringLiteral("png"), + AVERAGE_TILE_SIZE, + QGeoMapType::StreetMap) {} + +private: + QString _getURL(int x, int y, int zoom) const final; + + const QString _mapUrl = QStringLiteral("https://geodata.npolar.no/arcgis/rest/services/Basisdata/NP_Basiskart_Svalbard_WMTS_3857/MapServer/WMTS/tile/1.0.0/Basisdata_NP_Basiskart_Svalbard_WMTS_3857/default/default028mm/%1/%2/%3"); +}; + + class EniroMapProvider : public MapProvider { public: diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.cpp b/src/QtLocationPlugin/QGCMapUrlEngine.cpp index 5e14d969838..bfceb00133e 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.cpp +++ b/src/QtLocationPlugin/QGCMapUrlEngine.cpp @@ -39,6 +39,7 @@ const QList UrlFactory::_providers = { std::make_shared(), std::make_shared(), + std::make_shared(), std::make_shared(),