5#ifndef QTILEPROVIDEROSM_H
6#define QTILEPROVIDEROSM_H
8#include <QtLocation/private/qgeomaptype_p.h>
9#include <QtLocation/private/qgeocameracapabilities_p.h>
11#include <QtCore/QList>
12#include <QtNetwork/QNetworkAccessManager>
13#include <QtNetwork/QNetworkReply>
14#include <QtCore/QPointer>
17#include <QtCore/QJsonDocument>
18#include <QtCore/QJsonObject>
23class TileProvider:
public QObject
34 TileProvider(
const QUrl &urlRedirector,
bool highDpi =
false);
36 TileProvider(
const QString &urlTemplate,
37 const QString &format,
38 const QString ©RightMap,
39 const QString ©RightData,
41 int minimumZoomLevel = 0,
42 int maximumZoomLevel = 19);
45 void setNetworkManager(QNetworkAccessManager *nm);
47 void resolveProvider();
48 void handleError(QNetworkReply::NetworkError error);
51 inline bool isValid()
const;
52 inline bool isInvalid()
const;
53 inline bool isResolved()
const;
54 inline Status status()
const;
56 inline QString mapCopyRight()
const;
57 inline QString dataCopyRight()
const;
58 inline QString styleCopyRight()
const;
59 inline QString format()
const;
60 inline int minimumZoomLevel()
const;
61 inline int maximumZoomLevel()
const;
62 inline const QDateTime ×tamp()
const;
63 inline bool isHighDpi()
const;
64 inline bool isHTTPS()
const;
65 QUrl tileAddress(
int x,
int y,
int z)
const;
68 void setStyleCopyRight(
const QString ©right);
69 void setTimestamp(
const QDateTime ×tamp);
73 QNetworkAccessManager *m_nm;
74 QString m_urlTemplate;
76 QString m_copyRightMap;
77 QString m_copyRightData;
78 QString m_copyRightStyle;
81 int m_minimumZoomLevel;
82 int m_maximumZoomLevel;
83 QDateTime m_timestamp;
90 void resolutionFinished(TileProvider *provider);
91 void resolutionError(TileProvider *provider);
94 void onNetworkReplyFinished();
95 void onNetworkReplyError(QNetworkReply::NetworkError error);
97friend class QGeoTileProviderOsm;
105 friend class QGeoMapReplyOsm;
113 const QList<TileProvider *> &providers,
114 const QGeoCameraCapabilities &cameraCapabilities);
void onProviderResolutionError(const QGeoTileProviderOsm *provider, QNetworkReply::NetworkError error)
QList< QDateTime > m_maxMapIdTimestamps
QSharedPointer< QGeoTileTexture > getFromOfflineStorage(const QGeoTileSpec &spec)
QList< QGeoTileProviderOsm * > m_providers
QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const override
void dropTiles(int mapId)
QGeoTileSpec filenameToTileSpec(const QString &filename) const override
QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, int providerId) const
void loadTiles(int mapId)
QSharedPointer< QGeoTileTexture > get(const QGeoTileSpec &spec) override
void clearObsoleteTiles(const QGeoTileProviderOsm *p)
QGeoTileProviderOsm(QNetworkAccessManager *nm, const QGeoMapType &mapType, const QList< TileProvider * > &providers, const QGeoCameraCapabilities &cameraCapabilities)
QNetworkAccessManager * m_nm
void disableRedirection()
void resolutionRequired()
QString dataCopyRight() const
const QGeoMapType & mapType() const
QString mapCopyRight() const
QGeoCameraCapabilities m_cameraCapabilities
QGeoCameraCapabilities cameraCapabilities() const
QDateTime timestamp() const
void onResolutionError(TileProvider *provider)
void updateCameraCapabilities()
int maximumZoomLevel() const
QList< TileProvider * > m_providerList
void addProvider(TileProvider *provider)
QString styleCopyRight() const
void resolutionError(const QGeoTileProviderOsm *provider)
TileProvider * m_provider
int minimumZoomLevel() const
QUrl tileAddress(int x, int y, int z) const
Combined button and popup list for selecting options.