10 changed files with 197 additions and 74 deletions
@ -0,0 +1,61 @@
@@ -0,0 +1,61 @@
|
||||
#include "EsriMapProvider.h" |
||||
#include "QGCApplication.h" |
||||
#include "QGCMapEngine.h" |
||||
#include "SettingsManager.h" |
||||
|
||||
QNetworkRequest |
||||
EsriMapProvider::getTileURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager) { |
||||
//-- Build URL
|
||||
QNetworkRequest request; |
||||
QString url = _getURL(x, y, zoom, networkManager); |
||||
if (url.isEmpty()) { |
||||
return request; |
||||
} |
||||
request.setUrl(QUrl(url)); |
||||
request.setRawHeader("Accept", "*/*"); |
||||
QByteArray token = qgcApp() |
||||
->toolbox() |
||||
->settingsManager() |
||||
->appSettings() |
||||
->esriToken() |
||||
->rawValue() |
||||
.toString() |
||||
.toLatin1(); |
||||
request.setRawHeader("User-Agent", |
||||
QByteArrayLiteral("Qt Location based application")); |
||||
request.setRawHeader("User-Token", token); |
||||
return request; |
||||
} |
||||
|
||||
QString |
||||
EsriWorldStreetMapProvider::_getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager) { |
||||
Q_UNUSED(networkManager); |
||||
return QString("http://services.arcgisonline.com/ArcGIS/rest/services/" |
||||
"World_Street_Map/MapServer/tile/%1/%2/%3") |
||||
.arg(zoom) |
||||
.arg(y) |
||||
.arg(x); |
||||
} |
||||
|
||||
QString |
||||
EsriWorldSatelliteMapProvider::_getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager) { |
||||
Q_UNUSED(networkManager); |
||||
return QString("http://server.arcgisonline.com/ArcGIS/rest/" |
||||
"services/World_Imagery/MapServer/tile/%1/%2/%3") |
||||
.arg(zoom) |
||||
.arg(y) |
||||
.arg(x); |
||||
} |
||||
|
||||
QString EsriTerrainMapProvider::_getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager) { |
||||
Q_UNUSED(networkManager); |
||||
return QString("http://server.arcgisonline.com/ArcGIS/rest/services/" |
||||
"World_Terrain_Base/MapServer/tile/%1/%2/%3") |
||||
.arg(zoom) |
||||
.arg(y) |
||||
.arg(x); |
||||
} |
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
#pragma once |
||||
|
||||
#include "MapProvider.h" |
||||
|
||||
#include <QByteArray> |
||||
#include <QMutex> |
||||
#include <QNetworkProxy> |
||||
#include <QNetworkReply> |
||||
#include <QPoint> |
||||
#include <QString> |
||||
|
||||
class EsriMapProvider : public MapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
using MapProvider::MapProvider; |
||||
|
||||
QNetworkRequest getTileURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
||||
|
||||
class EsriWorldStreetMapProvider : public EsriMapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
EsriWorldStreetMapProvider(QObject* parent) |
||||
: EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE, |
||||
QGeoMapType::StreetMap, parent) {} |
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
||||
|
||||
class EsriWorldSatelliteMapProvider : public EsriMapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
EsriWorldSatelliteMapProvider(QObject* parent) |
||||
: EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE, |
||||
QGeoMapType::SatelliteMapDay, parent) {} |
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
||||
|
||||
class EsriTerrainMapProvider : public EsriMapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
EsriTerrainMapProvider(QObject* parent) |
||||
: EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE, |
||||
QGeoMapType::TerrainMap, parent) {} |
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
#pragma once |
||||
|
||||
#include "MapProvider.h" |
||||
|
||||
#include <QByteArray> |
||||
#include <QMutex> |
||||
#include <QNetworkProxy> |
||||
#include <QNetworkReply> |
||||
#include <QPoint> |
||||
#include <QString> |
||||
|
||||
class StatkartMapProvider : public MapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
StatkartMapProvider(QObject* parent) |
||||
: MapProvider(QString("https://www.norgeskart.no/"), QString("png"), |
||||
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {} |
||||
|
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
||||
|
||||
class EniroMapProvider : public MapProvider { |
||||
Q_OBJECT |
||||
public: |
||||
EniroMapProvider(QObject* parent) |
||||
: MapProvider(QString("https://www.eniro.se/"), QString("png"), |
||||
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {} |
||||
|
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
#pragma once |
||||
|
||||
#include "MapProvider.h" |
||||
|
||||
#include <QByteArray> |
||||
#include <QMutex> |
||||
#include <QNetworkProxy> |
||||
#include <QNetworkReply> |
||||
#include <QPoint> |
||||
#include <QString> |
||||
|
||||
class StatkartMapProvider : public MapProvider { |
||||
|
||||
Q_OBJECT |
||||
public: |
||||
StatkartMapProvider(QObject* parent); |
||||
~StatkartMapProvider(); |
||||
|
||||
protected: |
||||
QString _getURL(int x, int y, int zoom, |
||||
QNetworkAccessManager* networkManager); |
||||
}; |
||||
|
Loading…
Reference in new issue