QGCMapUrlEngine.h 3.05 KB
Newer Older
1 2 3 4 5 6 7 8
/****************************************************************************
 *
 *   (c) 2009-2016 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.
 *
 ****************************************************************************/
dogmaphobic's avatar
dogmaphobic committed
9 10 11 12 13 14 15 16 17 18


/**
 *  @file
 *  @author Gus Grubba <mavlink@grubba.com>
 */

#ifndef QGC_MAP_URL_ENGINE_H
#define QGC_MAP_URL_ENGINE_H

19
#include "GoogleMapProvider.h"
dogmaphobic's avatar
dogmaphobic committed
20

Don Gagne's avatar
Don Gagne committed
21
#define MAX_MAP_ZOOM (20.0)
dogmaphobic's avatar
dogmaphobic committed
22 23 24 25

class UrlFactory : public QObject {
    Q_OBJECT
public:
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
//
//    enum QString
//    {
//        Invalid                 = -1,
//
//        GoogleMap               = 1,
//        GoogleSatellite         = 4,
//        GoogleLabels            = 8,
//        GoogleTerrain           = 16,
//        GoogleHybrid            = 20,
//
//        OpenStreetMap           = 32,
//        OpenStreetOsm           = 33,
//        OpenStreetMapSurfer     = 34,
//        OpenStreetMapSurferTerrain=35,
//
//        StatkartTopo            = 100,
//        EniroTopo               = 110,
//
//        BingMap                 = 444,
//        BingSatellite           = 555,
//        BingHybrid              = 666,
//
//        /*
//        MapQuestMap             = 700,
//        MapQuestSat             = 701,
//        */
//
//        VWorldMap                = 800,
//        VWorldSatellite          = 801,
//        VWorldStreet             = 802,
//
//        MapboxStreets           = 6000,
//        MapboxLight             = 6001,
//        MapboxDark              = 6002,
//        MapboxSatellite         = 6003,
//        MapboxHybrid            = 6004,
//        MapboxWheatPaste        = 6005,
//        MapboxStreetsBasic      = 6006,
//        MapboxComic             = 6007,
//        MapboxOutdoors          = 6008,
//        MapboxRunBikeHike       = 6009,
//        MapboxPencil            = 6010,
//        MapboxPirates           = 6011,
//        MapboxEmerald           = 6012,
//        MapboxHighContrast      = 6013,
//
//        EsriWorldStreet         = 7000,
//        EsriWorldSatellite      = 7001,
//        EsriTerrain             = 7002,
//
//        AirmapElevation         = 8001
//    };
dogmaphobic's avatar
dogmaphobic committed
79 80 81 82

    UrlFactory      ();
    ~UrlFactory     ();

83 84 85 86 87
    QNetworkRequest getTileURL          (QString type, int x, int y, int zoom, QNetworkAccessManager* networkManager);
    QNetworkRequest getTileURL          (int id, int x, int y, int zoom, QNetworkAccessManager* networkManager);

    QString         getImageFormat      (QString type, const QByteArray& image);
    QString         getImageFormat      (int id , const QByteArray& image);
dogmaphobic's avatar
dogmaphobic committed
88

89
    quint32  averageSizeForType  (QString type);
dogmaphobic's avatar
dogmaphobic committed
90

91
    QHash<QString, MapProvider*> getProviderTable(){return _providersTable;}
dogmaphobic's avatar
dogmaphobic committed
92

93 94 95
    int getIdFromType(QString type);
    QString getTypeFromId(int id);

96
private:
dogmaphobic's avatar
dogmaphobic committed
97
    int             _timeout;
98
    QHash<QString, MapProvider*> _providersTable;
99
    void registerProvider(QString Name, MapProvider* provider);
100

dogmaphobic's avatar
dogmaphobic committed
101
    // BingMaps
102
    //QString         _versionBingMaps;
Pierre TILAK's avatar
Pierre TILAK committed
103

dogmaphobic's avatar
dogmaphobic committed
104 105 106 107

};

#endif