Browse Source

Re-add GoogleHybrid

QGC4.4
Pierre TILAK 6 years ago
parent
commit
eea5c549a6
  1. 24
      src/QtLocationPlugin/GoogleMapProvider.cpp
  2. 16
      src/QtLocationPlugin/GoogleMapProvider.h
  3. 1
      src/QtLocationPlugin/QGCMapUrlEngine.cpp

24
src/QtLocationPlugin/GoogleMapProvider.cpp

@ -17,6 +17,7 @@ GoogleMapProvider::GoogleMapProvider(QString imageFormat, quint32 averageSize, @@ -17,6 +17,7 @@ GoogleMapProvider::GoogleMapProvider(QString imageFormat, quint32 averageSize,
_versionGoogleSatellite = "692";
_versionGoogleLabels = "h@336";
_versionGoogleTerrain = "t@354,r@354000000";
_versionGoogleHybrid = "y";
_secGoogleWord = "Galileo";
}
@ -216,3 +217,26 @@ GoogleTerrainMapProvider::_getURL(int x, int y, int zoom, @@ -216,3 +217,26 @@ GoogleTerrainMapProvider::_getURL(int x, int y, int zoom,
.arg(zoom)
.arg(sec2);
}
QString
GoogleHybridMapProvider::_getURL(int x, int y, int zoom,
QNetworkAccessManager* networkManager) {
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);
}

16
src/QtLocationPlugin/GoogleMapProvider.h

@ -40,6 +40,7 @@ class GoogleMapProvider : public MapProvider { @@ -40,6 +40,7 @@ class GoogleMapProvider : public MapProvider {
QString _versionGoogleSatellite;
QString _versionGoogleLabels;
QString _versionGoogleTerrain;
QString _versionGoogleHybrid;
QString _secGoogleWord;
};
@ -119,3 +120,18 @@ class GoogleTerrainMapProvider : public GoogleMapProvider { @@ -119,3 +120,18 @@ class GoogleTerrainMapProvider : public GoogleMapProvider {
QString _getURL(int x, int y, int zoom,
QNetworkAccessManager* networkManager);
};
// -----------------------------------------------------------
// Google Hybrid Map
class GoogleHybridMapProvider : public GoogleMapProvider {
Q_OBJECT
public:
GoogleHybridMapProvider(QObject* parent)
: GoogleMapProvider(QString("png"), AVERAGE_GOOGLE_SAT_MAP,
QGeoMapType::HybridMap, parent) {}
protected:
QString _getURL(int x, int y, int zoom,
QNetworkAccessManager* networkManager);
};

1
src/QtLocationPlugin/QGCMapUrlEngine.cpp

@ -41,6 +41,7 @@ UrlFactory::UrlFactory() : _timeout(5 * 1000) { @@ -41,6 +41,7 @@ UrlFactory::UrlFactory() : _timeout(5 * 1000) {
_providersTable["Google Street Map"] = new GoogleStreetMapProvider(this);
_providersTable["Google Satellite"] = new GoogleSatelliteMapProvider(this);
_providersTable["Google Terrain"] = new GoogleTerrainMapProvider(this);
_providersTable["Google Hybrid"] = new GoogleHybridMapProvider(this);
_providersTable["Google Labels"] = new GoogleTerrainMapProvider(this);
#endif

Loading…
Cancel
Save