diff --git a/src/QtLocationPlugin/QGCMapEngine.cpp b/src/QtLocationPlugin/QGCMapEngine.cpp index 571ce69..2b694f5 100644 --- a/src/QtLocationPlugin/QGCMapEngine.cpp +++ b/src/QtLocationPlugin/QGCMapEngine.cpp @@ -55,6 +55,7 @@ stQGeoTileCacheQGCMapTypes kMapTypes[] = { {"Bing Satellite Map", UrlFactory::BingSatellite}, {"Bing Hybrid Map", UrlFactory::BingHybrid}, {"Statkart Terrain Map", UrlFactory::StatkartTopo}, + {"ENIRO Terrain Map", UrlFactory::EniroTopo} /* {"MapQuest Street Map", UrlFactory::MapQuestMap}, {"MapQuest Satellite Map", UrlFactory::MapQuestSat} @@ -466,6 +467,7 @@ QGCMapEngine::concurrentDownloads(UrlFactory::MapType type) case UrlFactory::BingSatellite: case UrlFactory::BingHybrid: case UrlFactory::StatkartTopo: + case UrlFactory::EniroTopo: case UrlFactory::EsriWorldStreet: case UrlFactory::EsriWorldSatellite: case UrlFactory::EsriTerrain: diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.cpp b/src/QtLocationPlugin/QGCMapUrlEngine.cpp index b429cd5..89ee5cb 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.cpp +++ b/src/QtLocationPlugin/QGCMapUrlEngine.cpp @@ -95,6 +95,9 @@ UrlFactory::getImageFormat(MapType type, const QByteArray& image) case StatkartTopo: format = "png"; break; + case EniroTopo: + format = "png"; + break; /* case MapQuestMap: case MapQuestSat: @@ -157,6 +160,9 @@ UrlFactory::getTileURL(MapType type, int x, int y, int zoom, QNetworkAccessManag case StatkartTopo: request.setRawHeader("Referrer", "https://www.norgeskart.no/"); break; + case EniroTopo: + request.setRawHeader("Referrer", "https://www.eniro.se/"); + break; /* case OpenStreetMapSurfer: case OpenStreetMapSurferTerrain: @@ -259,6 +265,11 @@ UrlFactory::_getURL(MapType type, int x, int y, int zoom, QNetworkAccessManager* return QString("http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=topo2&zoom=%1&x=%2&y=%3").arg(zoom).arg(x).arg(y); } break; + case EniroTopo: + { + return QString("http://map.eniro.com/geowebcache/service/tms1.0.0/map/%1/%2/%3.png").arg(zoom).arg(x).arg((1<<zoom)-1-y); + } + break; /* case OpenStreetMap: { diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.h b/src/QtLocationPlugin/QGCMapUrlEngine.h index b9791ff..193e63e 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.h +++ b/src/QtLocationPlugin/QGCMapUrlEngine.h @@ -45,6 +45,7 @@ public: OpenStreetMapSurferTerrain=35, StatkartTopo = 100, + EniroTopo = 110, BingMap = 444, BingSatellite = 555, diff --git a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp index f856dec..3a74c28 100644 --- a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp +++ b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp @@ -121,6 +121,8 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian // Statkart mapTypes << QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Statkart Terrain Map", "Statkart Terrain Map", false, false, UrlFactory::StatkartTopo); + // Eniro + mapTypes << QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Eniro Terrain Map", "Eniro Terrain Map", false, false, UrlFactory::EniroTopo); // Esri mapTypes << QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Esri Street Map", "ArcGIS Online World Street Map", true, false, UrlFactory::EsriWorldStreet); diff --git a/src/Settings/FlightMap.SettingsGroup.json b/src/Settings/FlightMap.SettingsGroup.json index c3e30e5..eac57b3 100644 --- a/src/Settings/FlightMap.SettingsGroup.json +++ b/src/Settings/FlightMap.SettingsGroup.json @@ -3,8 +3,8 @@ "name": "MapProvider", "shortDescription": "Currently selected map provider for flight maps", "type": "uint32", - "enumStrings": "Bing,Google,Statkart,Mapbox,Esri", - "enumValues": "0,1,2,3,4", + "enumStrings": "Bing,Google,Statkart,Eniro,Mapbox,Esri", + "enumValues": "0,1,2,3,4,5", "defaultValue": 0 }, { diff --git a/src/Settings/FlightMapSettings.cc b/src/Settings/FlightMapSettings.cc index c814f85..7f50161 100644 --- a/src/Settings/FlightMapSettings.cc +++ b/src/Settings/FlightMapSettings.cc @@ -110,6 +110,11 @@ void FlightMapSettings::_newMapProvider(QVariant value) _removeEnumValue(mapTypeSatellite, enumStrings, enumValues); _removeEnumValue(mapTypeHybrid, enumStrings, enumValues); break; + case mapProviderEniro: + _removeEnumValue(mapTypeStreet, enumStrings, enumValues); + _removeEnumValue(mapTypeSatellite, enumStrings, enumValues); + _removeEnumValue(mapTypeHybrid, enumStrings, enumValues); + break; case mapProviderEsri: _removeEnumValue(mapTypeHybrid, enumStrings, enumValues); break; diff --git a/src/Settings/FlightMapSettings.h b/src/Settings/FlightMapSettings.h index e849bfe..6b85fd1 100644 --- a/src/Settings/FlightMapSettings.h +++ b/src/Settings/FlightMapSettings.h @@ -24,6 +24,7 @@ public: mapProviderBing, mapProviderGoogle, mapProviderStarkart, + mapProviderEniro, mapProviderMapbox, mapProviderEsri } MapProvider_t;