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 <QtCore/QByteArray>
4#include <QtCore/QString>
5#include <QtCore/QUrl>
6
7#include "QGCTileSet.h"
8
9#define QGC_MAX_MAP_ZOOM 23
10static constexpr const quint32 QGC_AVERAGE_TILE_SIZE = 13652;
11
12// TODO: Inherit from QGeoMapType
14{
15public:
16 // Mirror of QGeoMapType::MapStyle (kept in sync manually so this header
17 // doesn't need to pull QtLocation/private/qgeomaptype_p.h). Converted at
18 // the boundary in QGeoTiledMappingManagerEngineQGC.cpp.
33
34 MapProvider(const QString &mapName, const QString &referrer, const QString &imageFormat, quint32 averageSize = QGC_AVERAGE_TILE_SIZE,
35 MapStyle mapStyle = CustomMap);
36 virtual ~MapProvider();
37
38 QUrl getTileURL(int x, int y, int zoom) const;
39
40 QString getImageFormat(QByteArrayView image) const;
41
42 // TODO: Download Random Tile And Use That Size Instead?
43 quint32 getAverageSize() const { return _averageSize; }
44
45 MapStyle getMapStyle() const { return _mapStyle; }
46 const QString& getMapName() const { return _mapName; }
47 int getMapId() const { return _mapId; }
48 const QString& getReferrer() const { return _referrer; }
49 virtual QByteArray getToken() const { return QByteArray(); }
50
51 virtual int long2tileX(double lon, int z) const;
52 virtual int lat2tileY(double lat, int z) const;
53 virtual double tileX2long(int x, int z) const;
54 virtual double tileY2lat(int y, int z) const;
55
56 virtual bool isElevationProvider() const { return false; }
57 virtual bool isBingProvider() const { return false; }
58
59 virtual QGCTileSet getTileCount(int zoom, double topleftLon,
60 double topleftLat, double bottomRightLon,
61 double bottomRightLat) const;
62
63protected:
64 QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) const;
65 int _getServerNum(int x, int y, int max) const;
66
67 virtual QString _getURL(int x, int y, int zoom) const = 0;
68
69 const QString _mapName;
70 const QString _referrer;
71 const QString _imageFormat;
72 const quint32 _averageSize;
74 const QString _language;
75 const int _mapId;
76
77private:
78 static int _mapIdIndex;
79};
static constexpr const quint32 QGC_AVERAGE_TILE_SIZE
Definition MapProvider.h:10
int _getServerNum(int x, int y, int max) const
const QString _referrer
Definition MapProvider.h:70
virtual QByteArray getToken() const
Definition MapProvider.h:49
QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) const
virtual bool isBingProvider() const
Definition MapProvider.h:57
int getMapId() const
Definition MapProvider.h:47
const QString & getMapName() const
Definition MapProvider.h:46
const quint32 _averageSize
Definition MapProvider.h:72
const QString _imageFormat
Definition MapProvider.h:71
MapStyle getMapStyle() const
Definition MapProvider.h:45
const QString & getReferrer() const
Definition MapProvider.h:48
virtual double tileY2lat(int y, int z) const
virtual ~MapProvider()
const QString _mapName
Definition MapProvider.h:69
virtual QGCTileSet getTileCount(int zoom, double topleftLon, double topleftLat, double bottomRightLon, double bottomRightLat) const
quint32 getAverageSize() const
Definition MapProvider.h:43
virtual int long2tileX(double lon, int z) const
QString getImageFormat(QByteArrayView image) const
const MapStyle _mapStyle
Definition MapProvider.h:73
virtual double tileX2long(int x, int z) const
const QString _language
Definition MapProvider.h:74
QUrl getTileURL(int x, int y, int zoom) const
virtual bool isElevationProvider() const
Definition MapProvider.h:56
virtual int lat2tileY(double lat, int z) const
const int _mapId
Definition MapProvider.h:75
virtual QString _getURL(int x, int y, int zoom) const =0