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
60 virtual bool isUserSelectable() const { return true; }
61
62 virtual QGCTileSet getTileCount(int zoom, double topleftLon,
63 double topleftLat, double bottomRightLon,
64 double bottomRightLat) const;
65
66protected:
67 QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) const;
68 int _getServerNum(int x, int y, int max) const;
69
70 virtual QString _getURL(int x, int y, int zoom) const = 0;
71
72 const QString _mapName;
73 const QString _referrer;
74 const QString _imageFormat;
75 const quint32 _averageSize;
77 const QString _language;
78 const int _mapId;
79
80private:
81 static int _mapIdIndex;
82};
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:73
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:75
const QString _imageFormat
Definition MapProvider.h:74
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:72
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:76
virtual double tileX2long(int x, int z) const
const QString _language
Definition MapProvider.h:77
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:78
virtual bool isUserSelectable() const
False hides the provider from user-facing provider selection lists.
Definition MapProvider.h:60
virtual QString _getURL(int x, int y, int zoom) const =0