GenericMapProvider.h 5 KB
Newer Older
Cosmin Marc's avatar
Cosmin Marc committed
1 2
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
3
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
Cosmin Marc's avatar
Cosmin Marc committed
4 5 6 7 8
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/
9 10 11 12
#pragma once

#include "MapProvider.h"

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
class JapanStdMapProvider : public MapProvider {
    Q_OBJECT
  public:
    JapanStdMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://cyberjapandata.gsi.go.jp/xyz/std"), QStringLiteral("png"),
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};

class JapanSeamlessMapProvider : public MapProvider {
    Q_OBJECT
  public:
    JapanSeamlessMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://cyberjapandata.gsi.go.jp/xyz/seamlessphoto"), QStringLiteral("jpg"),
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};

class JapanAnaglyphMapProvider : public MapProvider {
    Q_OBJECT
  public:
    JapanAnaglyphMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://cyberjapandata.gsi.go.jp/xyz/anaglyphmap_color"), QStringLiteral("png"),
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};

class JapanSlopeMapProvider : public MapProvider {
    Q_OBJECT
  public:
    JapanSlopeMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://cyberjapandata.gsi.go.jp/xyz/slopemap"), QStringLiteral("png"),
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};

class JapanReliefMapProvider : public MapProvider {
    Q_OBJECT
  public:
    JapanReliefMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://cyberjapandata.gsi.go.jp/xyz/relief"), QStringLiteral("png"),
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};

63 64 65
class StatkartMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
66 67
    StatkartMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://www.norgeskart.no/"), QStringLiteral("png"),
68 69
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

Cosmin Marc's avatar
Cosmin Marc committed
70
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
71 72 73 74 75
};

class EniroMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
76 77
    EniroMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://www.eniro.se/"), QStringLiteral("png"),
78 79
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

Cosmin Marc's avatar
Cosmin Marc committed
80
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
81
};
82 83 84 85

class MapQuestMapMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
86 87
    MapQuestMapMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://mapquest.com"), QStringLiteral("jpg"),
88 89
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

Cosmin Marc's avatar
Cosmin Marc committed
90
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
91 92 93 94 95
};

class MapQuestSatMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
96 97 98
    MapQuestSatMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("https://mapquest.com"), QStringLiteral("jpg"),
                      AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
99

Cosmin Marc's avatar
Cosmin Marc committed
100
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
101 102 103 104 105
};

class VWorldStreetMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
106 107
    VWorldStreetMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("www.vworld.kr"), QStringLiteral("png"),
108 109
                      AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}

Cosmin Marc's avatar
Cosmin Marc committed
110
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
111 112

  private:
Cosmin Marc's avatar
Cosmin Marc committed
113
    const QString _versionBingMaps = QStringLiteral("563");
114 115 116 117 118
};

class VWorldSatMapProvider : public MapProvider {
    Q_OBJECT
  public:
Cosmin Marc's avatar
Cosmin Marc committed
119 120 121
    VWorldSatMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("www.vworld.kr"), QStringLiteral("jpg"),
                      AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
122

Cosmin Marc's avatar
Cosmin Marc committed
123
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
124 125

  private:
Cosmin Marc's avatar
Cosmin Marc committed
126
    const QString _versionBingMaps = QStringLiteral("563");
127
};