MapboxMapProvider.h 5.11 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
/****************************************************************************
 *
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

#pragma once

#include "MapProvider.h"

static const quint32 AVERAGE_MAPBOX_SAT_MAP     = 15739;
static const quint32 AVERAGE_MAPBOX_STREET_MAP  = 5648;

class MapboxMapProvider : public MapProvider {
    Q_OBJECT

public:
    MapboxMapProvider(const QString& mapName, const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent = nullptr);

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

    QString _mapboxName;
};

class MapboxStreetMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxStreetMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.streets"), AVERAGE_MAPBOX_STREET_MAP,
                            QGeoMapType::StreetMap, parent) {}
};

class MapboxLightMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxLightMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.light"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxDarkMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxDarkMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.dark"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxSatelliteMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxSatelliteMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.satellite"), AVERAGE_MAPBOX_SAT_MAP,
                            QGeoMapType::SatelliteMapDay, parent) {}
};

class MapboxHybridMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxHybridMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.streets-satellite"), AVERAGE_MAPBOX_SAT_MAP,
                            QGeoMapType::HybridMap, parent) {}
};

class MapboxWheatPasteMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxWheatPasteMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.wheatpaste"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxStreetsBasicMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxStreetsBasicMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.streets-basic"), AVERAGE_TILE_SIZE,
                            QGeoMapType::StreetMap, parent) {}
};

class MapboxComicMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxComicMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.comic"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxOutdoorsMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxOutdoorsMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.outdoors"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxRunBikeHikeMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxRunBikeHikeMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.run-bike-hike"), AVERAGE_MAPBOX_STREET_MAP,
                            QGeoMapType::CycleMap, parent) {}
};

class MapboxPencilMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxPencilMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.pencil"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxPiratesMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxPiratesMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.pirates"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxEmeraldMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxEmeraldMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.emerald"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxHighContrastMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxHighContrastMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.high-contrast"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};

class MapboxCustomMapProvider : public MapboxMapProvider {
    Q_OBJECT

public:
    MapboxCustomMapProvider(QObject* parent = nullptr)
        : MapboxMapProvider(QStringLiteral("mapbox.custom"), AVERAGE_TILE_SIZE,
                            QGeoMapType::CustomMap, parent) {}
};