diff --git a/src/FlightMap/FlightMapSettings.cc b/src/FlightMap/FlightMapSettings.cc index 455c86d50320bddd9a171a2bd81d55a54cc01d72..462a48fef3fc1c69ec170359f4825118a9906a99 100644 --- a/src/FlightMap/FlightMapSettings.cc +++ b/src/FlightMap/FlightMapSettings.cc @@ -32,6 +32,7 @@ void FlightMapSettings::setToolbox(QGCToolbox *toolbox) #ifndef QGC_NO_GOOGLE_MAPS _supportedMapProviders << "Google"; #endif + _supportedMapProviders << "Statkart"; _loadSettings(); } @@ -82,6 +83,8 @@ void FlightMapSettings::_setMapTypesForCurrentProvider(void) _mapTypes << "Street Map" << "Satellite Map" << "Hybrid Map"; } else if (_mapProvider == "Google") { _mapTypes << "Street Map" << "Satellite Map" << "Terrain Map"; + } else if (_mapProvider == "Statkart") { + _mapTypes << "Topo2"; } #endif emit mapTypesChanged(_mapTypes); diff --git a/src/QtLocationPlugin/QGCMapEngine.cpp b/src/QtLocationPlugin/QGCMapEngine.cpp index f36d0e6ec36b7d80501fd8bf9d0bba18628aa800..38edfdc74c68af36c5a1580258ad4077fefaac4b 100644 --- a/src/QtLocationPlugin/QGCMapEngine.cpp +++ b/src/QtLocationPlugin/QGCMapEngine.cpp @@ -51,6 +51,7 @@ stQGeoTileCacheQGCMapTypes kMapTypes[] = { {"Bing Street Map", UrlFactory::BingMap}, {"Bing Satellite Map", UrlFactory::BingSatellite}, {"Bing Hybrid Map", UrlFactory::BingHybrid}, + {"Statkart Topo2", UrlFactory::StatkartTopo}, {"MapQuest Street Map", UrlFactory::MapQuestMap}, {"MapQuest Satellite Map", UrlFactory::MapQuestSat} /* @@ -463,6 +464,7 @@ QGCMapEngine::concurrentDownloads(UrlFactory::MapType type) case UrlFactory::BingMap: case UrlFactory::BingSatellite: case UrlFactory::BingHybrid: + case UrlFactory::StatkartTopo: return 12; case UrlFactory::MapQuestMap: case UrlFactory::MapQuestSat: diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.cpp b/src/QtLocationPlugin/QGCMapUrlEngine.cpp index 549fa19e5c67018cd3a02f27581f39bb87bba186..9d1adec9ebf9725c653e87a21c1555f74bd3dd3a 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.cpp +++ b/src/QtLocationPlugin/QGCMapUrlEngine.cpp @@ -84,6 +84,7 @@ UrlFactory::getImageFormat(MapType type, const QByteArray& image) case GoogleHybrid: case BingMap: case OpenStreetMap: + case StatkartTopo: format = "png"; break; case MapQuestMap: @@ -143,6 +144,9 @@ UrlFactory::getTileURL(MapType type, int x, int y, int zoom, QNetworkAccessManag case BingSatellite: request.setRawHeader("Referrer", "https://www.bing.com/maps/"); break; + case StatkartTopo: + request.setRawHeader("Referrer", "https://www.norgeskart.no/"); + break; /* case OpenStreetMapSurfer: case OpenStreetMapSurferTerrain: @@ -229,6 +233,11 @@ UrlFactory::_getURL(MapType type, int x, int y, int zoom, QNetworkAccessManager* } break; #endif + case StatkartTopo: + { + 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 OpenStreetMap: { diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.h b/src/QtLocationPlugin/QGCMapUrlEngine.h index 9da7ae8b992df305a2fc4effd746a381ea9c1c90..68634a8dae42afa5179ecd7251830aa86ab3f4e3 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.h +++ b/src/QtLocationPlugin/QGCMapUrlEngine.h @@ -44,6 +44,8 @@ public: OpenStreetMapSurfer = 34, OpenStreetMapSurferTerrain=35, + StatkartTopo = 100, + BingMap = 444, BingSatellite = 555, BingHybrid = 666, diff --git a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp index bf881266cad984a88e89c502e3a019db89706bf3..c7032bb40ccbd4e6993fec087e7b5c2c63554840 100644 --- a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp +++ b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp @@ -114,6 +114,9 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, "Bing Satellite Map", "Bing satellite map", false, false, UrlFactory::BingSatellite); mapTypes << QGeoMapType(QGeoMapType::HybridMap, "Bing Hybrid Map", "Bing hybrid map", false, false, UrlFactory::BingHybrid); + // Statkart + mapTypes << QGeoMapType(QGeoMapType::TerrainMap, "Statkart Topo2", "Statkart Topo2", false, false, UrlFactory::StatkartTopo); + /* See: https://wiki.openstreetmap.org/wiki/Tile_usage_policy mapTypes << QGeoMapType(QGeoMapType::StreetMap, "Open Street Map", "Open Street map", false, false, UrlFactory::OpenStreetMap); */