QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MapProvider.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtLocation/private/qgeomaptype_p.h>
4#include <QtCore/QByteArray>
5#include <QtCore/QString>
6#include <QtCore/QLoggingCategory>
7
8#include "QGCTileSet.h"
9
10Q_DECLARE_LOGGING_CATEGORY(MapProviderLog)
11
12// qgeomaptype_p.h
13/*enum MapStyle {
14 NoMap = 0,
15 StreetMap,
16 SatelliteMapDay,
17 SatelliteMapNight,
18 TerrainMap,
19 HybridMap,
20 TransitMap,
21 GrayStreetMap,
22 PedestrianMap,
23 CarNavigationMap,
24 CycleMap,
25 CustomMap = 100
26};*/
27
28#define QGC_MAX_MAP_ZOOM 23
29static constexpr const quint32 QGC_AVERAGE_TILE_SIZE = 13652;
30
31// TODO: Inherit from QGeoMapType
33{
34public:
35 MapProvider(const QString &mapName, const QString &referrer, const QString &imageFormat, quint32 averageSize = QGC_AVERAGE_TILE_SIZE,
36 QGeoMapType::MapStyle mapStyle = QGeoMapType::CustomMap);
37 virtual ~MapProvider();
38
39 QUrl getTileURL(int x, int y, int zoom) const;
40
41 QString getImageFormat(QByteArrayView image) const;
42
43 // TODO: Download Random Tile And Use That Size Instead?
44 quint32 getAverageSize() const { return _averageSize; }
45
46 QGeoMapType::MapStyle getMapStyle() const { return _mapStyle; }
47 const QString& getMapName() const { return _mapName; }
48 int getMapId() const { return _mapId; }
49 const QString& getReferrer() const { return _referrer; }
50 virtual QByteArray getToken() const { return QByteArray(); }
51
52 virtual int long2tileX(double lon, int z) const;
53 virtual int lat2tileY(double lat, int z) const;
54 virtual double tileX2long(int x, int z) const;
55 virtual double tileY2lat(int y, int z) const;
56
57 virtual bool isElevationProvider() const { return false; }
58 virtual bool isBingProvider() const { return false; }
59
60 virtual QGCTileSet getTileCount(int zoom, double topleftLon,
61 double topleftLat, double bottomRightLon,
62 double bottomRightLat) const;
63
64protected:
65 QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) const;
66 int _getServerNum(int x, int y, int max) const;
67
68 virtual QString _getURL(int x, int y, int zoom) const = 0;
69
70 const QString _mapName;
71 const QString _referrer;
72 const QString _imageFormat;
73 const quint32 _averageSize;
74 const QGeoMapType::MapStyle _mapStyle;
75 const QString _language;
76 const int _mapId;
77
78private:
79 static int _mapIdIndex;
80};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
static constexpr const quint32 QGC_AVERAGE_TILE_SIZE
Definition MapProvider.h:29
int _getServerNum(int x, int y, int max) const
const QString _referrer
Definition MapProvider.h:71
virtual QByteArray getToken() const
Definition MapProvider.h:50
QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) const
virtual bool isBingProvider() const
Definition MapProvider.h:58
int getMapId() const
Definition MapProvider.h:48
const QString & getMapName() const
Definition MapProvider.h:47
const quint32 _averageSize
Definition MapProvider.h:73
const QString _imageFormat
Definition MapProvider.h:72
const QString & getReferrer() const
Definition MapProvider.h:49
virtual double tileY2lat(int y, int z) const
virtual ~MapProvider()
const QGeoMapType::MapStyle _mapStyle
Definition MapProvider.h:74
const QString _mapName
Definition MapProvider.h:70
virtual QGCTileSet getTileCount(int zoom, double topleftLon, double topleftLat, double bottomRightLon, double bottomRightLat) const
quint32 getAverageSize() const
Definition MapProvider.h:44
virtual int long2tileX(double lon, int z) const
QString getImageFormat(QByteArrayView image) const
virtual double tileX2long(int x, int z) const
const QString _language
Definition MapProvider.h:75
QUrl getTileURL(int x, int y, int zoom) const
virtual bool isElevationProvider() const
Definition MapProvider.h:57
virtual int lat2tileY(double lat, int z) const
QGeoMapType::MapStyle getMapStyle() const
Definition MapProvider.h:46
const int _mapId
Definition MapProvider.h:76
virtual QString _getURL(int x, int y, int zoom) const =0