MapboxMapProvider.cpp 1.48 KB
Newer Older
Pierre TILAK's avatar
Pierre TILAK committed
1 2 3 4 5
#include "MapboxMapProvider.h"
#include "QGCApplication.h"
#include "QGCMapEngine.h"
#include "SettingsManager.h"

Cosmin Marc's avatar
Cosmin Marc committed
6
static const QString MapBoxUrl = QStringLiteral("https://api.mapbox.com/v4/%1/%2/%3/%4.jpg80?access_token=%5");
7
static const QString MapBoxUrlCustom = QStringLiteral("https://api.mapbox.com/styles/v1/%1/%2/tiles/256/%3/%4/%5?access_token=%6");
Cosmin Marc's avatar
Cosmin Marc committed
8 9 10 11 12

MapboxMapProvider::MapboxMapProvider(const QString &mapName, const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent)
    : MapProvider(QStringLiteral("https://www.mapbox.com/"), QStringLiteral("jpg"), averageSize, mapType, parent)
    , _mapboxName(mapName)
{
Pierre TILAK's avatar
Pierre TILAK committed
13 14
}

Cosmin Marc's avatar
Cosmin Marc committed
15 16 17
QString MapboxMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
    Q_UNUSED(networkManager)
    const QString mapBoxToken = qgcApp()->toolbox()->settingsManager()->appSettings()->mapboxToken()->rawValue().toString();
Pierre TILAK's avatar
Pierre TILAK committed
18
    if (!mapBoxToken.isEmpty()) {
19 20 21 22 23
        if (_mapboxName == QString("mapbox.custom")) {
            const QString mapBoxAccount = qgcApp()->toolbox()->settingsManager()->appSettings()->mapboxAccount()->rawValue().toString();
            const QString mapBoxStyle = qgcApp()->toolbox()->settingsManager()->appSettings()->mapboxStyle()->rawValue().toString();
            return MapBoxUrlCustom.arg(mapBoxAccount).arg(mapBoxStyle).arg(zoom).arg(x).arg(y).arg(mapBoxToken);
        }
Cosmin Marc's avatar
Cosmin Marc committed
24
        return MapBoxUrl.arg(_mapboxName).arg(zoom).arg(x).arg(y).arg(mapBoxToken);
Pierre TILAK's avatar
Pierre TILAK committed
25
    }
Cosmin Marc's avatar
Cosmin Marc committed
26
    return QString();
Pierre TILAK's avatar
Pierre TILAK committed
27
}