diff --git a/src/QtLocationPlugin/QGCMapEngine.cpp b/src/QtLocationPlugin/QGCMapEngine.cpp index 19d3129c7ac4c1fed34e2a0c00adade03450f81a..ae3858c1a21cdf9947b28690442f5b82d9b0ae57 100644 --- a/src/QtLocationPlugin/QGCMapEngine.cpp +++ b/src/QtLocationPlugin/QGCMapEngine.cpp @@ -50,6 +50,7 @@ static stQGeoTileCacheQGCMapTypes kMapTypes[] = { {"Google Street Map", UrlFactory::GoogleMap}, {"Google Satellite Map", UrlFactory::GoogleSatellite}, {"Google Terrain Map", UrlFactory::GoogleTerrain}, + {"Google Hybrid Map", UrlFactory::GoogleHybrid}, #endif {"Bing Street Map", UrlFactory::BingMap}, {"Bing Satellite Map", UrlFactory::BingSatellite}, diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.cpp b/src/QtLocationPlugin/QGCMapUrlEngine.cpp index 56e622b8ee4f16c2054621ee6b538573fd1b552a..2c26364a8232ed369a178ad45e9dac769b0b0229 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.cpp +++ b/src/QtLocationPlugin/QGCMapUrlEngine.cpp @@ -56,6 +56,7 @@ UrlFactory::UrlFactory() _versionGoogleSatellite = "692"; _versionGoogleLabels = "h@336"; _versionGoogleTerrain = "t@354,r@354000000"; + _versionGoogleHybrid = "y"; _secGoogleWord = "Galileo"; #endif // BingMaps @@ -273,6 +274,17 @@ UrlFactory::_getURL(MapType type, int x, int y, int zoom, QNetworkAccessManager* return QString("http://%1%2.google.com/%3/v=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10").arg(server).arg(_getServerNum(x, y, 4)).arg(request).arg(_versionGoogleTerrain).arg(_language).arg(x).arg(sec1).arg(y).arg(zoom).arg(sec2); } break; + case GoogleHybrid: + { + QString server = "mt"; + QString request = "vt"; + QString sec1 = ""; // after &x=... + QString sec2 = ""; // after &zoom=... + _getSecGoogleWords(x, y, sec1, sec2); + _tryCorrectGoogleVersions(networkManager); + return QString("http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10").arg(server).arg(_getServerNum(x, y, 4)).arg(request).arg(_versionGoogleHybrid).arg(_language).arg(x).arg(sec1).arg(y).arg(zoom).arg(sec2); + } + break; #endif case StatkartTopo: { diff --git a/src/QtLocationPlugin/QGCMapUrlEngine.h b/src/QtLocationPlugin/QGCMapUrlEngine.h index a4ba347c0dbbf6b9a72a116e2823d7a9b1f85c24..dc1de383f68e63a23799da4a47cbcb715a1738d9 100644 --- a/src/QtLocationPlugin/QGCMapUrlEngine.h +++ b/src/QtLocationPlugin/QGCMapUrlEngine.h @@ -120,6 +120,7 @@ private: QString _versionGoogleSatellite; QString _versionGoogleLabels; QString _versionGoogleTerrain; + QString _versionGoogleHybrid; QString _secGoogleWord; #endif diff --git a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp index 1b562748facad1362470fc544c37182c0d1bca71..ead19d5b4859cf00c88a6957897ce7495c388fac 100644 --- a/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp +++ b/src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp @@ -108,15 +108,9 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Google Street Map", "Google street map", false, false, UrlFactory::GoogleMap), QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "Google Satellite Map", "Google satellite map", false, false, UrlFactory::GoogleSatellite), QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Google Terrain Map", "Google terrain map", false, false, UrlFactory::GoogleTerrain), + QGCGEOMAPTYPE(QGeoMapType::HybridMap, "Google Hybrid Map", "Google hybrid map", false, false, UrlFactory::GoogleHybrid), #endif - /* TODO: - * Proper google hybrid maps requires collecting two separate bitmaps and overlaying them. - * - * mapTypes << QGCGEOMAPTYPE(QGeoMapType::HybridMap, "Google Hybrid Map", "Google hybrid map", false, false, UrlFactory::GoogleHybrid), - * - */ - // Bing QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Bing Street Map", "Bing street map", false, false, UrlFactory::BingMap), QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "Bing Satellite Map", "Bing satellite map", false, false, UrlFactory::BingSatellite), diff --git a/src/Settings/FlightMapSettings.cc b/src/Settings/FlightMapSettings.cc index d18f840fb7f9582c05700a7aa9093dc587ada713..f6293b8784a15641d3fe349d825cf1953ee41d3b 100644 --- a/src/Settings/FlightMapSettings.cc +++ b/src/Settings/FlightMapSettings.cc @@ -86,7 +86,6 @@ void FlightMapSettings::_newMapProvider(QVariant value) _removeEnumValue(mapTypeTerrain, enumStrings, enumValues); break; case mapProviderGoogle: - _removeEnumValue(mapTypeHybrid, enumStrings, enumValues); break; case mapProviderStarkart: _removeEnumValue(mapTypeStreet, enumStrings, enumValues);